OAuth と OIDC の違い - ログインと権限委譲を分けて理解する

初級 | 9分 で読める | 2026.06.14

公式ドキュメント

OAuth と OIDC は別の目的

OAuth と OIDC はよく一緒に出てきます。しかし目的が違います。

仕組み目的
OAuth 2.0権限委譲
OIDCログイン認証

OAuth は「このアプリに、私のGoogleカレンダーを読む権限を与える」のような仕組みです。

OIDC は「このユーザーは誰か」を確認するログインの仕組みです。

OAuth は権限を渡す

OAuthの中心は、第三者アプリに権限を渡すことです。

たとえば、あるカレンダーアプリがGoogleカレンダーを読みたいとします。

ユーザーはGoogleの画面で「このアプリにカレンダー読み取りを許可しますか」と確認されます。

許可すると、アプリはaccess tokenを受け取ります。このトークンを使って、Google Calendar APIを呼びます。

GET /calendar/v3/users/me/calendarList HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer access_token

このとき重要なのは、「アプリがユーザーのGoogleパスワードを受け取らない」ことです。

OIDC はログインした人を確認する

OIDC は OpenID Connect の略です。OAuth 2.0 の上に、ログイン認証のための仕組みを追加したものです。

OIDCでは、ID Token が登場します。

ID Token には、ログインしたユーザーを表す情報が含まれます。

{
  "sub": "google-user-123",
  "email": "user@example.com",
  "iss": "https://accounts.google.com",
  "aud": "client_id"
}

アプリはID Tokenを検証し、「この人はGoogleで認証された user@example.com だ」と判断します。

ポイント: OAuth はAPIを使う権限、OIDC はログインした人の確認です。Googleログインは多くの場合 OIDC を使っています。

access token と ID token の違い

トークン用途受け取る相手
access tokenAPIを呼ぶAPIサーバ
ID tokenログインユーザーを確認するクライアントアプリ
refresh tokenaccess tokenを更新するOAuthクライアント

ID Token を外部API呼び出しに使うものではありません。外部APIを呼ぶのは access token です。

BFF 構成での扱い

BFF構成では、OAuth / OIDC のやり取りをBFF側で担当します。

Browser -> BFF -> IdP
Browser <- Cookie <- BFF
BFF -> API with access token

ブラウザには、BFF用の HttpOnly Cookie だけを渡します。外部IdPのaccess tokenやrefresh tokenは、BFF側またはサーバ側ストアで管理します。

これにより、ブラウザのJavaScriptから高価値なトークンを読めない構成にできます。

よくある混乱

Googleログインは OAuth なのか OIDC なのか

ログイン目的ならOIDCです。ただし、OIDCはOAuth 2.0の上に構築されているため、OAuthの用語も出てきます。

access token でログインユーザーを判断してよいか

基本的にはID TokenやUserInfo endpointなど、ログイン認証のための情報を使います。access tokenはAPI利用のためのトークンです。

refresh token をブラウザに置いてよいか

長期的に強い権限を持つため慎重に扱います。BFFやサーバ側ストアで管理する構成が安全側です。

まとめ

OAuth と OIDC は目的が違います。

  • OAuth は権限委譲
  • OIDC はログイン認証
  • access token はAPIを呼ぶためのトークン
  • ID token はログインした人を確認するためのトークン
  • refresh token はaccess tokenを更新するためのトークン
  • BFF構成ではトークンをブラウザに出さずサーバ側で扱う

既存の詳しい解説は OAuth 2.0 / OpenID Connect - 認証・認可の仕組み も参照してください。

参考リソース

  • 公式ドキュメント - OAuth と OIDC の違い - ログインと権限委譲を分けて理解する を確認するための一次情報

次に読む記事

← 一覧に戻る
PR
PR
PR
PR