> ## 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.

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

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

アプリケーションの付与タイプ（またはフロー）は、アプリケーションが[アクセストークン](/docs/ja-jp/secure/tokens/access-tokens)を取得する方法であり、また、資格情報を公開することなく、他のエンティティにリソースへの限定的なアクセスを付与する方法です。[OAuth 2.0プロトコル](/docs/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/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)が最も適切です。

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

## 利用可能な付与タイプ

### 標準準拠型付与

| 付与タイプ                                          | 説明                                                                                                                 |
| :--------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
| `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")              |

### Auth0拡張機能型付与

| 付与タイプ                                                 | 説明                                              |
| :---------------------------------------------------- | :---------------------------------------------- |
| `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`  | 埋め込み型パスワードレスログインの付与要求                           |

### Auth0レガシー付与

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

* `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/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/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を使用して[レガシー付与タイプを有効にする](/docs/ja-jp/get-started/applications/update-grant-types)ことができます。

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

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

## 付与タイプのマッピング

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

### 公開アプリケーションは資格情報を安全に保持

ネイティブアプリケーションやシングルページアプリケーション（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/secure/application-credentials)」をお読みください。

### 機密アプリケーション

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

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

### 信頼できるファーストパーティのアプリケーション

信頼できるファーストパーティーアプリケーションは、機密アプリケーションと同じ`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/glossary?term=multifactor-authentication" tip="多要素認証（MFA）: ユーザー名とパスワードに加えて、SMS経由のコードなどの要素を使用するユーザー認証プロセス。" cta="用語集の表示">MFA</Tooltip>付与タイプが有効になることに注意してください。個別に選択することはできません。

## もっと詳しく

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