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を根拠にトークンを発行する、という形で組み合わせます。

一覧に戻る