ハイブリッドフロー

クライアント資格情報を安全に保存できるアプリケーションは、ハイブリッドフロー(「OpenID Connect仕様、セクション3.3」で定義)を使用すると望ましい場合もあります。ハイブリッドフローを使用すると、アクセストークンとリフレッシュトークンを安全に取得できる一方で、アプリケーションはIDトークンに即座にアクセスできるようになります。これは、アプリケーションがユーザー情報に対して即時アクセスを必要とする場合には便利ですが、何らかの処理を行わないと、保護されたリソースに長期間アクセスすることはできません。

仕組み

ハイブリッドフローは、フォームPOSTを使った暗黙フロー認可コードフローのステップを組み合わせます。

  1. ユーザーはアプリケーション内で[Login(ログイン)]を選択します。

  2. アプリケーションは、ユーザーをAuth0の認可サーバー(/authorizeエンドポイント)にリダイレクトし、要求された資格情報のタイプ(IDトークンと認可コード)を示すresponse_typeパラメーターと、セキュリティを確保するためのform_postresponse_modeパラメーターを渡します。

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

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

  5. Auth0の認可サーバーは、提供されたresponse_typeに応じて、1回限り有効の認可コードとIDトークン、アクセストークン、またはその両方を使用してユーザーをアプリケーションにリダイレクトします。

  6. アプリケーションは、認可コード、アプリケーションのクライアントID、およびアプリケーションの資格情報(クライアントシークレットや秘密鍵JWTなど)をAuth0の認可サーバー(/oauth/tokenエンドポイント)に送信します。

  7. Auth0の認可サーバーは認可コード、アプリケーションのクライアントID、アプリケーションの資格情報を検証します。

  8. Auth0の認可サーバーが、2つ目のIDトークンとアクセストークン(リフレッシュトークンは任意)で応答します。

  9. アプリケーションが2つ目のアクセストークンを使ってAPIを呼び出し、ユーザーについての情報にアクセスします。

  10. APIが要求データで応答します。

実装方法

Authentication APIを使用してハイブリッドフローでAPIを呼び出す方法については、チュートリアルをご覧ください。

もっと詳しく