OIDC / OAuth 2.0
実践

各エンドポイント

OAuth 2.0 / OIDC では、複数のエンドポイントが連携して動作します。 それぞれの役割とパラメータを理解しましょう。

エンドポイントの全体像

# 認可コードフローにおける各エンドポイントの出番

1. [ディスカバリ] プロバイダーの設定情報を取得

2. [認可] ユーザーの認証と同意取得

3. [トークン] 認可コードをトークンに交換

4. [JWKS] IDトークンの署名を検証

5. [ユーザー情報] 追加のプロフィール情報を取得

6. [失効] ログアウト時にトークンを無効化

認可エンドポイント/authorize
GET

ユーザーの認証と認可を行うエンドポイント。ブラウザでアクセスし、ログイン画面と同意画面を表示する。

主要なパラメータ

response_typecode (認可コードフロー)
client_idクライアントの識別子
redirect_uri認可後のリダイレクト先
scope要求する権限の範囲
stateCSRF対策のランダム値
トークンエンドポイント/token
POST

認可コードをトークンに交換するエンドポイント。サーバー間通信で使用し、ブラウザからは直接アクセスしない。

主要なパラメータ

grant_typeauthorization_code / refresh_token
code認可コード(初回取得時)
redirect_uri認可リクエスト時と同じ値
client_idクライアントの識別子
client_secretクライアントの秘密鍵(機密クライアント)
ユーザー情報エンドポイント/userinfo
GET / POST

アクセストークンを使ってユーザーのプロフィール情報を取得するエンドポイント。IDトークンの補完として使える。

主要なパラメータ

AuthorizationBearer {access_token}(ヘッダーで送信)
JWKS エンドポイント/.well-known/jwks.json
GET

トークンの署名を検証するための公開鍵情報 (JSON Web Key Set) を提供するエンドポイント。

主要なパラメータ

(パラメータなし)公開鍵セットをJSON形式で返す
ディスカバリエンドポイント/.well-known/openid-configuration
GET

OIDCプロバイダーの設定情報を提供するエンドポイント。各エンドポイントのURL、対応するスコープ、署名アルゴリズムなどが含まれる。

主要なパラメータ

(パラメータなし)プロバイダーのメタデータをJSON形式で返す
失効エンドポイント/revoke
POST

発行済みのトークンを無効化するエンドポイント。ログアウト時やセキュリティインシデント時に使用する。

主要なパラメータ

token無効化するトークン
token_type_hintaccess_token / refresh_token

ディスカバリレスポンスの例

ディスカバリエンドポイントのレスポンスには、そのプロバイダーが提供する すべてのエンドポイントのURLが含まれます。クライアントはまずこの情報を取得して、 各エンドポイントのURLを把握します。

// GET /.well-known/openid-configuration

{

"issuer": "https://auth.example.com",

"authorization_endpoint": "https://auth.example.com/authorize",

"token_endpoint": "https://auth.example.com/token",

"userinfo_endpoint": "https://auth.example.com/userinfo",

"jwks_uri": "https://auth.example.com/.well-known/jwks.json",

"revocation_endpoint": "https://auth.example.com/revoke",

"scopes_supported": ["openid", "profile", "email"],

"response_types_supported": ["code"],

"grant_types_supported": ["authorization_code", "refresh_token"]

}

← 前へ

次のステップ

クライアントタイプ

次へ →