コンテンツにスキップ

OAuthとOpenID Connect入門(動画・スライド)

概要

Authlete 共同創業者 @darutk による OAuth と OpenID Connect(OIDC)の基礎解説動画・スライド。基礎学習・社内研修の参考資料として公開されている。

詳細

OAuth 2.0 とは

リソースへのアクセス権限を「委譲」するためのプロトコル。

ユーザー → クライアントアプリ → 認可サーバー → アクセストークン発行
                               リソースサーバー ← アクセストークンで保護されたAPI

主要な概念: - アクセストークン: リソースへのアクセス許可証 - スコープ: 許可する権限の範囲(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 フローを説明するときの根拠として