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

# 認可コードフロー

> 認可コードフローの動作と、通常のWebアプリでそれを使用するべき理由について理解します。

認可コードフロー（[OAuth 2.0 RFC 6749のセクション4.1](https://tools.ietf.org/html/rfc6749#section-4.1)で定義）では、認可コードがトークンと交換されます。

アプリケーションの認証方法が交換され、セキュリティ保護が必要であるため、このフローは機密アプリケーション（通常のWebアプリケーションなど）専用です。

## 認可コードフローの動作

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-event-stream-action-templates/9Vac8_IYDB9MGlmx/docs/images/ja-jp/cdy7uua7fh8z/7mWk9No612EefC8uBidCqr/5355d1cfd75d0fa6a58da58f768e6c1e/Auth-code-flow-diagram.png?fit=max&auto=format&n=9Vac8_IYDB9MGlmx&q=85&s=ed0956db31e2e455790f4ff04eb168b9" alt="認可 - 認可コードフロー - 認可シーケンス図" width="1400" height="877" data-path="docs/images/ja-jp/cdy7uua7fh8z/7mWk9No612EefC8uBidCqr/5355d1cfd75d0fa6a58da58f768e6c1e/Auth-code-flow-diagram.png" />
</Frame>

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

## 認可コードフローの実装方法

認可コードフローを手軽に実装するには、[通常のWebアプリのクイックスタート](/docs/ja-jp/quickstart/webapp)を使用します。

別の方法として、Authentication APIを使用して認可コードフローを実装することもできます。詳細については、「[認可コードフローを使用してログインを追加する](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow/add-login-auth-code-flow)」または「[認可コードフローを使用してAPIを呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-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)
