OAuth 2.0とOpenID Connect

🔥 Vibe プロンプト

「PKCEとOIDCを使用したOAuth 2.0 Authorization Codeフローを実装。」

OAuth 2.0フロー

Authorization Code (PKCE): [Web/モバイル推奨]
  ユーザー → アプリ → 認証サーバー → ログインページ → コード → トークン

Client Credentials: [M2M]
  アプリ → 認証サーバー → アクセストークン

Implicit (非推奨): [使用禁止 - セキュリティ問題]

Authorization Code + PKCE

import requests, hashlib, base64, secrets

code_verifier = secrets.token_urlsafe(64)
code_challenge = base64.urlsafe_b64encode(
    hashlib.sha256(code_verifier.encode()).digest()
).decode()

auth_url = f"https://auth.example.com/authorize?response_type=code&client_id={CLIENT_ID}&code_challenge={code_challenge}"

token_resp = requests.post("https://auth.example.com/token", data={
    "grant_type": "authorization_code",
    "code": authorization_code,
    "code_verifier": code_verifier
})
access_token = token_resp.json()["access_token"]

スコープ

scope: "openid profile email orders:read"
- openid: OIDC必須
- profile: 名前、画像
- email: メールアドレス

ベストプラクティス

  • 常にPKCEを使用
  • Implicitフローは使用禁止
  • トークンを安全に保存(httpOnly cookie)
  • id_tokenの署名とクレームを検証
  • 短命アクセストークン(15-60分)

重要なポイント

  • コアコンセプトをしっかり理解する
  • ハンズオンコード例で実践する
  • 実世界の問題に応用する
  • 演習で知識を強化する

さらに学ぶ

  • 公式ドキュメント
  • GitHubのオープンソースプロジェクト
  • コミュニティフォーラムとディスカッション
  • 関連コースとチュートリアル

完全なチュートリアルをロック解除

このチャプターは有料コンテンツです。プロジェクトに参加して、10以上の神レベルのPromptや実際のソースコード例を含む、5000字以上の深い分析をロック解除してください!