認可コードフロー
[更新: 2025年10月2日]
概要
認可コードフローでは、クライアントからのアクセスに対し、IdP(Identity Provider)を用いた認証・認可を経て、セッションを確立し、安全にサービスへアクセスします。
ユーザーは最初にIdPで認証され、認可コードを通じてトークンが取得されます。その後、APIゲートウェイがセッションを管理し、認証済みリクエストをサービスへ中継します。
セッションの有効化
を有効にしている場合、トークン検証成功時に認証情報(トークン等)がセッション情報として、APIゲートウェイに保管され、
保管されたセッション情報と紐づくセッションクッキーが sakura-apigw-oidc-session
という名前でレスポンスに付与されます。
2度目以降のアクセスでは、セッションクッキーを付与してアクセスすることで、IdPの認証を行わず APIゲートウェイ に保管されたトークンを用いてサービスにリクエストを送信します。
処理フロー(セッションクッキーなし)
初回アクセスと認証開始
クライアントがAPIゲートウェイにアクセスをすると、APIゲートウェイは未認証のためIdPへの認証画面へリダイレクトします。ユーザー認証と認可コード取得
クライアントはIdPに必要なクライアント情報を付けてアクセスし、ユーザーがログインします。その後、IdPから認可コードを含むリダイレクトが返されます。トークン取得
クライアントは認可コードをAPIゲートウェイに送信。APIゲートウェイは認可コードを検証し、IdPからIDトークン、アクセストークン、リフレッシュトークンを取得します。セッション確立
トークンの検証が完了すると、APIゲートウェイはセッションID(SID)を含むセッションクッキーをクライアントに設定してリダイレクトします。認証済みアクセスとサービス連携
以後、クライアントはセッションクッキー付きでリクエストを送信。APIゲートウェイはセッションを検証し、アクセストークンを使用してサービスにリクエストを転送します。レスポンス返却
サービスからのレスポンスをAPIゲートウェイ経由でクライアントに返却します。

処理フロー(セッションクッキーあり)
セッションクッキー付与アクセス
クライアントがAPIゲートウェイで生成されたセッションクッキーを付与してアクセスをすると、APIゲートウェイは付与されたセッションクッキーの読み込み・検証を行います。認証情報取得
APIゲートウェイは、付与されたセッション情報と紐づく認証情報(トークン)を取得します。サービスリクエスト
取得した認証情報(トークン)を付与してサービスにリクエストします。レスポンス返却
サービスからのレスポンスをAPIゲートウェイ経由でクライアントに返却します。
