OAuthとOpenID Connect入門(動画・スライド)
概要¶
Authlete 共同創業者 @darutk による OAuth と OpenID Connect(OIDC)の基礎解説動画・スライド。基礎学習・社内研修の参考資料として公開されている。
詳細¶
OAuth 2.0 とは¶
リソースへのアクセス権限を「委譲」するためのプロトコル。
主要な概念:
- アクセストークン: リソースへのアクセス許可証
- スコープ: 許可する権限の範囲(read:profile など)
- 認可コードフロー: 最も安全な標準フロー
1. クライアント → 認可エンドポイント(認可コード要求)
2. ユーザー同意 → 認可コード発行
3. クライアント → トークンエンドポイント(認可コード + クライアント認証)
4. アクセストークン + リフレッシュトークン発行
OpenID Connect(OIDC)とは¶
OAuth 2.0 の上に「認証」レイヤーを追加したプロトコル。アクセストークンに加えて ID トークン(JWT) を発行する。
// ID トークンのペイロード例
{
"iss": "https://accounts.google.com",
"sub": "110169484474386276334",
"aud": "812741506391.apps.googleusercontent.com",
"email": "user@example.com",
"exp": 1353601026,
"iat": 1353597426
}
OAuth vs OIDC の使い分け¶
| 目的 | 使うもの |
|---|---|
| 外部サービスへの API アクセス権限委譲 | OAuth 2.0 |
| ソーシャルログイン(誰であるかの確認) | OIDC |
| 社内 SSO | OIDC |
よくある誤解¶
- OAuth は認証プロトコルではない — アクセス権限の委譲のみ。「Google でログイン」は OIDC
- アクセストークンは不透明 — クライアントは中身を解釈しない(ID トークンは JWT で解釈可能)
なぜ重要か / いつ使うか¶
- 認証・認可機能を実装する前の基礎知識として
- 「なぜ JWT を直接使ってはダメなのか」を理解するために
- セキュリティレビューで OAuth フローを説明するときの根拠として