> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# アプリケーションの付与タイプ

> 付与タイプと、アプリケーションとの関連についてご説明します。

アプリケーションの付与タイプ（またはフロー）は、アプリケーションが[アクセストークン](/docs/ja-JP/ja-jp/secure/tokens/access-tokens)を取得する方法であり、また、資格情報を公開することなく、他のエンティティにリソースへの限定的なアクセスを付与する方法です。[OAuth 2.0プロトコル](/docs/ja-JP/ja-jp/get-started/authentication-and-authorization-flow/which-oauth-2-0-flow-should-i-use)では、複数の付与タイプをサポートしているため、さまざまな種類のアクセスを実現できます。

付与タイプの中には、アプリケーションのニーズによって、適したものとそうでないものがあります。Auth0にはさまざまな認証・許可フローが用意されていますが、どれが最も適しているかは、アプリケーションの`grant_types`プロパティに基づいて示すことができます。

たとえば、モバイルアプリケーションをセキュリティ保護したい場合は、[Proof Key for Code Exchange（PKCE）を使用した認可コードフロー](/docs/ja-JP/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)が最も適切です。

また、シングルページアプリケーション（SPA）のようなクライアント側アプリケーションを保護する場合は、サーバー間でトークンをやり取りしていないなら、[フォームポストを使用した暗黙的フロー](/docs/ja-JP/ja-jp/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post)が最も適切です。

アプリケーションを登録する際に有効な各種付与タイプは、次のようなカテゴリに分かれます。

* **標準準拠型付与** ：<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=openid" tip="OpenID: アプリケーションがログイン情報を収集および保存することなくにユーザーのIDを検証できるようにする認証用のオープン標準。" cta="用語集の表示">OpenID</Tooltip> Connect（OIDC）などの外部標準に適合する付与。
* **Auth0拡張機能型付与** ：追加のクライアントをサポートしたり、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=oath2" tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集の表示">OAuth</Tooltip>と他の信頼フレームワーク間の橋渡しをしたりするために、[OAuth拡張メカニズム](https://tools.ietf.org/html/rfc6749#section-4.5)に準拠しているAuth0固有の付与。
* **Auth0レガシー付与** :従来型の付与タイプで、以前からのお客様の方のみご利用いただけます。この付与をご利用のお客様には、より安全なオプションへの移行を強くお勧めします。

<div id="available-grant-types">
  ## 利用可能な付与タイプ
</div>

<div id="specification-conforming-grants">
  ### 標準準拠型付与
</div>

| 付与タイプ                                          | 説明                                                                                                                 |
| :--------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
| `implicit`                                     | [暗黙的な付与](https://auth0.com/docs/ja-jp/flows/implicit-flow-with-form-post "Implicit Flow with Form Post")           |
| `authorization_code`                           | [認可コードの付与](https://auth0.com/docs/ja-jp/flows/authorization-code-flow "Authorization Code Flow")                   |
| `client_credentials`                           | [クライアントの資格情報の付与](https://auth0.com/docs/ja-jp/flows/client-credentials-flow "Client Credentials Flow")             |
| `password`                                     | [リソース所有者のパスワードの付与](https://auth0.com/docs/ja-jp/flows/resource-owner-password-flow "Resource Owner Password Flow") |
| `refresh_token`                                | [リフレッシュトークンを使用する](https://auth0.com/docs/ja-jp/tokens/refresh-tokens/use-refresh-tokens "Use Refresh Tokens")      |
| `urn:ietf:params:oauth:grant-type:device_code` | [デバイス認可の付与](https://auth0.com/docs/ja-jp/flows/device-authorization-flow "Device Authorization Flow")              |

<div id="auth0-extension-grants">
  ### Auth0拡張機能型付与
</div>

| 付与タイプ                                                 | 説明                                              |
| :---------------------------------------------------- | :---------------------------------------------- |
| `http://auth0.com/oauth/grant-type/password-realm`    | 特別なレルムを示すことができるリソース所有者のパスワード付与に類似する拡張機能型付与を使用する |
| `http://auth0.com/oauth/grant-type/mfa-oob`           | 多要素認証を使ったOOBの付与要求                               |
| `http://auth0.com/oauth/grant-type/mfa-otp`           | 多要素認証を使ったOTPの付与要求                               |
| `http://auth0.com/oauth/grant-type/mfa-recovery-code` | 多要素認証を使ったリカバリ付与要求                               |
| `http://auth0.com/oauth/grant-type/passwordless/otp`  | 埋め込み型パスワードレスログインの付与要求                           |

<div id="auth0-legacy-grants">
  ### Auth0レガシー付与
</div>

レガシー付与には次のものが含まれます：

* `http://auth0.com/oauth/legacy/grant-type/ro`
* `http://auth0.com/oauth/legacy/grant-type/ro/jwt-bearer`
* `http://auth0.com/oauth/legacy/grant-type/delegation/refresh_token`
* `http://auth0.com/oauth/legacy/grant-type/delegation/id_token`
* `http://auth0.com/oauth/legacy/grant-type/access_token`

レガシー付与タイプは、従来型の付与タイプで、以前からの顧客の方のみご利用いただけます。この付与をご利用のお客様には、より安全なオプションへの移行を強くお勧めします。

2017年6月8日時点で、すべてのアプリケーションには、必ず記入しなければならない`grant_types`プロパティが付与されました。その当時のAuth0のお客様に対して機能変更が生じないようにするため、すべての既存アプリケーションの`grant_types`プロパティに対して、Auth0レガシー、Auth0拡張機能、および仕様に準拠したすべての付与タイプが設定されました。

現在、新規顧客の方は、アプリケーションにレガシーの付与タイプを追加できません。レガシーの付与タイプは、新しいフローへの移行をスムーズに実施できるようにするため、従来からの顧客のみを対象に提供されています。2017年6月8日以前のお客様は、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>またはAuth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を使用して[レガシー付与タイプを有効にする](/docs/ja-JP/ja-jp/get-started/applications/update-grant-types)ことができます。

現在、レガシーの付与タイプを使っている場合は、下のチャートで、今後どのセキュリティ対策を使用すべきかご確認ください。たとえば、パスワードレス認証を実装している場合は、

`oauth/ro`エンドポイントの代わりに[ユニバーサルログイン](/docs/ja-JP/ja-jp/authenticate/login/auth0-universal-login)を使用してください。

<div id="grant-type-mapping">
  ## 付与タイプのマッピング
</div>

アプリケーションを登録すると、その種類（特にアプリケーションが機密か公開か）に応じて、異なる付与タイプが利用できるようになります。さらに、信頼できるファーストパーティのアプリケーションに対しては、さらに多くの付与タイプが用意されています。

<div id="public-applications">
  ### 公開アプリケーションは資格情報を安全に保持
</div>

ネイティブアプリケーションやシングルページアプリケーション（SPA）をDashboardで登録すると、自動的に公開アプリケーションのフラグが付きます。具体的には、`token_endpoint_auth_method`フラグが`none`に設定されます。デフォルトでは、Auth0で作成される公開アプリケーションでは、以下の`grant_types`が有効になっています。

* `implicit`
* `code_verifier`
* `refresh_token`

ネイティブアプリでは、`device_code`付与タイプも使用できます。

公開アプリケーションで`client_credentials`付与タイプを使用することはできません。この付与タイプを使用したい場合は、アプリケーションを公開ではなく機密として設定してください。Auth0 Management APIの[クライアント更新](https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id)エンドポイントを使用して、`token_endpoint_auth_method`を`client_secret_post`、`client_secret_basic`、または`private_key_jwt`に設定します。詳細については、「[アプリケーションの資格情報](/docs/ja-JP/ja-jp/secure/application-credentials)」をお読みください。

<div id="confidential-applications">
  ### 機密アプリケーション
</div>

通常のWebアプリケーションやマシンツーマシン（M2M）アプリケーションをAuth0 Dashboardで登録すると、自動的に機密アプリケーションのフラグが付きます。具体的には、これは`token_endpoint_auth_method`フラグが`none`以外の値に設定されていることで示されます。デフォルトでは、Auth0で作成される機密アプリケーションでは、以下の`grant_types`が有効になっています。

* `implicit`
* `code_verifier`
* `refresh_token`
* `client_credentials`

<div id="trusted-first-party-applications">
  ### 信頼できるファーストパーティのアプリケーション
</div>

信頼できるファーストパーティーアプリケーションは、機密アプリケーションと同じ`grant_types`が有効になっており、さらに以下のものも含まれます。

* `パスワード`
* `http://auth0.com/oauth/grant-type/password-realm`
* `http://auth0.com/oauth/grant-type/mfa-oob`
* `http://auth0.com/oauth/grant-type/mfa-otp`
* `http://auth0.com/oauth/grant-type/mfa-recovery-code`

Dashboardを使ってこれらの付与タイプを有効・無効にする場合は、`Password`または`MFA`付与タイプをアプリケーションに追加すると、すべてのパスワードおよび<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=multifactor-authentication" tip="多要素認証（MFA）: ユーザー名とパスワードに加えて、SMS経由のコードなどの要素を使用するユーザー認証プロセス。" cta="用語集の表示">MFA</Tooltip>付与タイプが有効になることに注意してください。個別に選択することはできません。

<div id="learn-more">
  ## もっと詳しく
</div>

* [機密アプリケーションと公開アプリケーション](/docs/ja-JP/ja-jp/get-started/applications/confidential-and-public-applications)
* [サードパーティアプリケーションを有効にする](/docs/ja-JP/ja-jp/get-started/applications/confidential-and-public-applications/enable-third-party-applications)
* [ファーストパーティーアプリケーションとサードパーティーアプリケーション](/docs/ja-JP/ja-jp/get-started/applications/confidential-and-public-applications/first-party-and-third-party-applications)
* [サブドメインURLプレースホルダー](/docs/ja-JP/ja-jp/get-started/applications/wildcards-for-subdomains)
