OAuth2
OAuth 2.0は、サードパーティアプリケーションが、リソース所有者(ユーザー)の代わりにリソースにアクセスするための認可フレームワーク。
基本概念
- リソース所有者: ユーザー
- クライアント: サードパーティアプリケーション
- 認可サーバー: トークンを発行
- リソースサーバー: 保護されたリソースを提供
認可コードフロー
最も一般的なフロー。セキュアに認可を行う。
- クライアントが認可サーバーにリダイレクト
- ユーザーがログインして許可
- 認可コードを取得
- 認可コードをアクセストークンと交換
- アクセストークンでリソースにアクセス
ユースケース
- Google/GitHub/Facebookでログイン
- APIへのアクセス権限委譲
- モバイルアプリの認証
OpenID Connectとの関係
OAuth 2.0は認可のみ。認証(ユーザーが誰かを確認)にはOpenID Connect(OIDC)を使う。
OAuth 2.1
OAuth 2.0の後継仕様。主な変更点:
- PKCEがすべてのクライアントで必須に
- Implicit Grantの廃止
- セキュリティベストプラクティスの統合
MCPのHTTPベースサーバーはOAuth 2.1に準拠している。