フォームPOSTを使った暗黙フロー

従来型のWebアプリにWebサインインを実装するために、OpenID Connect(OIDC)を多くの異なるフローで使用することができます。典型的なフローでは、アプリのバックエンドで認可コードフローを実行することにより、IDトークンが取得されます。この方法は効果的で安定性も高い反面、アプリがシークレットを取得して管理する必要があります。目的がサインインを実装することだけで、APIの実行にアクセストークンを取得する必要がない場合には、この負荷を避けることができます。

フォームPOSTを使った暗黙フローはOIDCを使用して、SAMLやWS-Federationに類似したWebサインインを実装します。Webアプリは、フロントチャネルを介してトークンを要求し、取得します。シークレットや追加でバックエンドを呼び出す必要はありません。この方法では、アプリケーションでシークレットの取得や管理、使用、保護を必要としません。

仕組み

フロー - フォームPOSTフローで暗黙的モード - 認可シーケンスの図
  1. ユーザーはアプリで [Login(ログイン)] をクリックします。

  2. Auth0の SDKは、ユーザーをAuth0認可サーバー (/authorize endpoint)にリダイレクトし、要求された資格情報の種類を示すid_tokenresponse_typeパラメータを渡します。また、セキュリティを確保するために form_postresponse_modeパラメータも渡します。

  3. Auth0の認可サーバーがユーザーをログインにリダイレクトして、認可を促します。

  4. ユーザーは構成されたログインオプションの1つを使用して認証を行い、Auth0がアプリに与える許可をリストした同意ページが表示されることもあります。

  5. Auth0認可サーバーは、IDトークンを添えて、ユーザーをリダイレクトでアプリへ戻します。

実装方法

OktaのExpress OpenID Connect SDKを使用して、フォームポストを使用した暗黙フローを安全に実装することができます。

最後に、チュートリアルに従って、APIエンドポイントを使用して、フォームポストを使用した暗黙フローでのログインを追加することができます。

もっと詳しく