OAuth 2.0
OAuth 2.0とは、あるサービスの権限の一部を、利用者のパスワードを渡さずに、別のアプリやサービスに限定して渡すための標準的な手順です。 オーオースと読みます。
別表記:OAuth/OAuth 2.0/オーオース/認可プロトコル/認可の仕組み
どんな場面で使われているか
「このアプリにカレンダーへのアクセスを許可しますか」という確認画面を見たことがあると思います。あの仕組みです。
スケジュール管理のアプリに自分のカレンダーを読ませたいとき、カレンダーのIDとパスワードをアプリに教えるのは危険です。アプリがパスワードを持てば、カレンダーだけでなくメールも読めますし、パスワードを変えないかぎり、いつまでも使えてしまいます。
OAuth 2.0では、パスワードの代わりに「カレンダーの閲覧だけ、一定期間だけ」という限定された許可証を発行して、アプリに渡します。アプリはその許可証を使ってカレンダーを読みます。メールは読めません。期限が来れば使えなくなります。
登場するもの
利用者がいます。カレンダーの持ち主です。
アプリがあります。利用者の代わりにカレンダーを読みたい側です。
カレンダーを提供しているサービスがあります。ここが許可証を発行し、許可証を見て操作を受け付けます。
利用者がアプリに「カレンダーを読んでいい」と言うと、サービスが確認画面を出し、利用者が承諾すると、サービスがアプリに許可証を渡す。この流れ全体を定めたのがOAuth 2.0です。
許可証の中身
この許可証をアクセストークンと呼びます。トークンには、何ができるのか(範囲、スコープと呼ばれます)と、いつまで有効なのかが含まれます。「カレンダーの閲覧」「ファイルの読み取り」といった範囲が指定され、指定されていない操作は実行できません。
重要なのは、トークンは「持っていれば使える」札だということです。トークンを提示した側が本当にそのアプリなのかを、サービス側は基本的に確かめません。だから、トークンが漏れれば、誰でもその範囲の操作ができます。期限を短くするのは、漏れたときの影響を小さくするためです。
OpenID Connectとの関係
OAuth 2.0は「この操作を許可するか」を扱う仕組みで、「この人が誰であるか」を確かめる仕組みではありません。
ログインに使われる「Googleでログイン」「Microsoftでログイン」は、OAuth 2.0の上に本人確認の手順を足した、OpenID Connectという別の規格です。見た目の流れは似ていますが、OAuthは権限を渡し、OpenID Connectは本人であることを伝える、と役割が分かれています。
AIエージェントとの関係
AIエージェントを社内システムや外部サービスにつなぐとき、この仕組みが使われることが多くあります。すでに広く普及しており、実績のある方法です。社内のファイル共有、カレンダー、チャット、顧客管理など、主要なサービスはOAuth 2.0で接続を受け付けます。AIエージェントは、それらのサービスからトークンをもらい、トークンを添えて操作を要求します。
ただ、OAuth 2.0のトークンで表現できるのは「このアプリはこの範囲にアクセスしてよい」というところまでです。「誰の委任に基づくのか」「どの業務のためなのか」「誰がいつ承認したのか」といった情報は、標準の範囲では表現しません。トークンは、委任の経緯を持たない札です。
トークンは発行したサービスの中でしか通用しません。社内のファイル共有が発行したトークンを、取引先のシステムに見せても意味がありません。AIが組織をまたいで動く場面では、別の仕組みが要ります。
VCとの関係
VC(Verifiable Credentials)は、OAuth 2.0の代わりになるものではありません。AIエージェントがサービスに接続する手順としては、OAuth 2.0がそのまま使われます。
VCが足すのは、OAuthのトークンが持っていない「誰の委任で、何をどこまで、いつまで」という情報です。委任の内容を証明書として持ち、それを根拠にトークンを発行してもらう。あるいは、受け付ける側が証明書を直接確認する。こうした組み合わせで、OAuthの接続の上に委任の層を乗せます。
トークンは「持っていれば使える」札でしたが、VCは「持ち主本人が提示している」ことを確認できる証明です。証明書を盗んで別のAIが使う、ということを防げる点も違いです。
よくある誤解
OAuthは認証の仕組みか。 違います。「この操作を許可するか」を扱う仕組みで、本人確認は別の規格が担います。
OAuthで権限を絞っていれば、AIエージェントも安全か。 範囲を絞ることはできます。それ自体は正しい対策です。ただし、誰の委任かは表せず、トークンは漏れれば誰でも使え、発行したサービスの外には持ち運べません。社内で完結する用途であれば足りることも多く、足りなくなるのは委任の経緯を示す必要があるときと、組織をまたぐときです。
トークンとVCは同じものか。 役割が違います。トークンは接続のための札で、VCは委任の内容を示す証明書です。VCを根拠にトークンを発行する、という形で組み合わせます。
