認可コードフロー

[更新: 2025年10月2日]

概要

認可コードフローでは、クライアントからのアクセスに対し、IdP(Identity Provider)を用いた認証・認可を経て、セッションを確立し、安全にサービスへアクセスします。
ユーザーは最初にIdPで認証され、認可コードを通じてトークンが取得されます。その後、APIゲートウェイがセッションを管理し、認証済みリクエストをサービスへ中継します。

セッションの有効化 を有効にしている場合、トークン検証成功時に認証情報(トークン等)がセッション情報として、APIゲートウェイに保管され、 保管されたセッション情報と紐づくセッションクッキーが sakura-apigw-oidc-session という名前でレスポンスに付与されます。
2度目以降のアクセスでは、セッションクッキーを付与してアクセスすることで、IdPの認証を行わず APIゲートウェイ に保管されたトークンを用いてサービスにリクエストを送信します。

処理フロー(セッションクッキーなし)

  1. 初回アクセスと認証開始
    クライアントがAPIゲートウェイにアクセスをすると、APIゲートウェイは未認証のためIdPへの認証画面へリダイレクトします。

  2. ユーザー認証と認可コード取得
    クライアントはIdPに必要なクライアント情報を付けてアクセスし、ユーザーがログインします。その後、IdPから認可コードを含むリダイレクトが返されます。

  3. トークン取得
    クライアントは認可コードをAPIゲートウェイに送信。APIゲートウェイは認可コードを検証し、IdPからIDトークン、アクセストークン、リフレッシュトークンを取得します。

  4. セッション確立
    トークンの検証が完了すると、APIゲートウェイはセッションID(SID)を含むセッションクッキーをクライアントに設定してリダイレクトします。

  5. 認証済みアクセスとサービス連携
    以後、クライアントはセッションクッキー付きでリクエストを送信。APIゲートウェイはセッションを検証し、アクセストークンを使用してサービスにリクエストを転送します。

  6. レスポンス返却
    サービスからのレスポンスをAPIゲートウェイ経由でクライアントに返却します。

認可コードフロー


処理フロー(セッションクッキーあり)

  1. セッションクッキー付与アクセス
    クライアントがAPIゲートウェイで生成されたセッションクッキーを付与してアクセスをすると、APIゲートウェイは付与されたセッションクッキーの読み込み・検証を行います。

  2. 認証情報取得
    APIゲートウェイは、付与されたセッション情報と紐づく認証情報(トークン)を取得します。

  3. サービスリクエスト
    取得した認証情報(トークン)を付与してサービスにリクエストします。

  4. レスポンス返却
    サービスからのレスポンスをAPIゲートウェイ経由でクライアントに返却します。

セッション有効認可コードフロー