> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ハイブリッドフロー

> アクセストークンとリフレッシュトークンの安全な取得に認可コードフローを活用しながら、IDトークンへのアクセスを最適化するために、ハイブリッドフローがどのように機能するのかを説明します。

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

## 仕組み

ハイブリッドフローは、[フォームPOSTを使った暗黙フロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post)と[認可コードフロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow)のステップを組み合わせます。

1. ユーザーはアプリケーション内で **［Login（ログイン）］** を選択します。
2. アプリケーションは、ユーザーをAuth0の認可サーバー（[`/authorize`エンドポイント](https://auth0.com/docs/api/authentication#authorization-code-flow)）にリダイレクトし、要求された資格情報のタイプ（IDトークンと認可コード）を示す`response_type`パラメーターと、セキュリティを確保するための`form_post`の`response_mode`パラメーターを渡します。
3. Auth0の認可サーバーがユーザーをログインにリダイレクトして、認可を促します。
4. ユーザーが構成されたログインオプションの1つを使用して認証を行い、Auth0がアプリケーションに付与する許可をリストした同意画面が表示されることもあります。
5. Auth0の認可サーバーは、提供された`response_type`に応じて、1回限り有効の認可コードとIDトークン、アクセストークン、またはその両方を使用してユーザーをアプリケーションにリダイレクトします。
6. アプリケーションは、認可コード、アプリケーションのクライアントID、およびアプリケーションの資格情報（クライアントシークレットや秘密鍵JWTなど）をAuth0の認可サーバー（[`/oauth/token`エンドポイント](/docs/ja-jp/api/authentication?http#authorization-code-flow43)）に送信します。
7. Auth0の認可サーバーは認可コード、アプリケーションのクライアントID、アプリケーションの資格情報を検証します。
8. Auth0の認可サーバーが、2つ目のIDトークンとアクセストークン（リフレッシュトークンは任意）で応答します。
9. アプリケーションが2つ目のアクセストークンを使ってAPIを呼び出し、ユーザーについての情報にアクセスします。
10. APIが要求データで応答します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  アプリケーションがハイブリッドフローをサインオンのためだけに使用する場合は、リフレッシュトークンやアクセストークンは不要で、クレームを含んだIDトークンのみ必要です。
</Callout>

## 実装方法

Authentication APIを使用して[ハイブリッドフローでAPIを呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/hybrid-flow/call-api-hybrid-flow)方法については、チュートリアルをご覧ください。

## もっと詳しく

* [Auth0ルール](/docs/ja-jp/customize/rules)
* [Auth0のフック](/docs/ja-jp/customize/hooks)
* [トークン](/docs/ja-jp/secure/tokens)
* [トークンのベストプラクティス](/docs/ja-jp/secure/tokens/token-best-practices)
* [どちらのOAuth 2.0フローを使用するべきですか？](/docs/ja-jp/get-started/authentication-and-authorization-flow/which-oauth-2-0-flow-should-i-use)
* [アプリケーションの資格情報](/docs/ja-jp/secure/application-credentials)
