仕組み
ハイブリッドフローは、フォームPOSTを使った暗黙フローと認可コードフローのステップを組み合わせます。- ユーザーはアプリケーション内で [Login(ログイン)] を選択します。
- アプリケーションは、ユーザーをAuth0の認可サーバー(
/authorize
エンドポイント)にリダイレクトし、要求された資格情報のタイプ(IDトークンと認可コード)を示すresponse_type
パラメーターと、セキュリティを確保するためのform_post
のresponse_mode
パラメーターを渡します。 - Auth0の認可サーバーがユーザーをログインにリダイレクトして、認可を促します。
- ユーザーが構成されたログインオプションの1つを使用して認証を行い、Auth0がアプリケーションに付与する許可をリストした同意画面が表示されることもあります。
- Auth0の認可サーバーは、提供された
response_type
に応じて、1回限り有効の認可コードとIDトークン、アクセストークン、またはその両方を使用してユーザーをアプリケーションにリダイレクトします。 - アプリケーションは、認可コード、アプリケーションのクライアントID、およびアプリケーションの資格情報(クライアントシークレットや秘密鍵JWTなど)をAuth0の認可サーバー(
/oauth/token
エンドポイント)に送信します。 - Auth0の認可サーバーは認可コード、アプリケーションのクライアントID、アプリケーションの資格情報を検証します。
- Auth0の認可サーバーが、2つ目のIDトークンとアクセストークン(リフレッシュトークンは任意)で応答します。
- アプリケーションが2つ目のアクセストークンを使ってAPIを呼び出し、ユーザーについての情報にアクセスします。
- APIが要求データで応答します。
アプリケーションがハイブリッドフローをサインオンのためだけに使用する場合は、リフレッシュトークンやアクセストークンは不要で、クレームを含んだIDトークンのみ必要です。