ユーザー委任アクセスとクライアントアクセス
- クライアントアクセス: マシン間アクセスに使用され、Client Credentials フロー に対応します。
- ユーザー委任アクセス: エンドユーザーに関連付けられたアクセストークンを生成する、すべてのアクセスフローに使用されます。これにより、アプリケーションはユーザーに代わって API にアクセスできます。ユーザー委任アクセスフローには Client Credentials フローは含まれません。ユーザー委任アクセスフローの詳細については、Authentication and Authorization Flows を参照してください。
アプリケーションのAPIアクセスポリシー
| ポリシー | 説明 | アクセスフロー |
|---|---|---|
All apps allowed | API に対してこのポリシーを設定すると、テナント内の任意のアプリケーションがそのAPIのアクセストークンを取得できます。特定のグラントは必要ありません。 | API 作成時のユーザー委任アクセスのデフォルトです。ユーザー委任アクセスでは、設定できるのは allow_all のみです。 |
Per-app authorization | API に対してこのポリシーを設定すると、クライアントグラントが定義されているアプリケーションのみがそのAPIのアクセストークンを取得できます。クライアントグラントにより、アプリケーションがそのAPIに対して要求できる最大の権限が定義されます。クライアントグラントの作成方法と管理方法の詳細については、Application Access to APIs: Client Grants を参照してください。 | API 作成時の Client Credentials フローのデフォルトです。 |
No apps allowed | API に対してこのポリシーを設定すると、他の設定やグラントにかかわらず、どのアプリケーションもそのAPIのアクセストークンを取得できません。アクセスは完全に制限されます。 | ユーザーアクセスとクライアントアクセスの両方で deny_all を設定できます。 |
Per-app authorization の使用を推奨しています。詳細については、Application Access to APIs: Client Grants を参照してください。
API のアプリケーションアクセスポリシーを Per-app authorization に設定した場合は、必要なスコープをトークンリクエストに明示的に含める必要があります。これはリフレッシュトークンのリクエストには当てはまりません。リフレッシュトークンのリクエストでスコープを省略すると、認可サーバーは、アプリケーションが元のアクセストークンで付与されたすべてのスコープを要求しているものとみなします。その結果、認可サーバーは、リソース所有者が最初に付与したものと同じスコープを持つアクセストークンを返します。
API のアプリケーションアクセスポリシーを設定する
- Auth0 Dashboard
- Management API
API のアプリケーションアクセスポリシーを設定するには、次の手順を実行します。
- Dashboard > Applications > APIs に移動し、対象の API を選択します。
- Settings タブを選択し、Application Access Policy までスクロールして、User-Delegated Access ポリシーと Client Access ポリシーを設定します。
- User-Delegated Access ポリシーを All apps allowed、Per-app authorization、または No apps allowed に設定します。
- All apps allowed: アプリケーションはユーザーに代わって API にアクセスできます。
- Per-app authorization: アプリケーションがユーザーに代わって API にアクセスするには、クライアントグラントが必要です。
- No apps allowed: アプリケーションによるユーザーに代わっての API へのアクセスは拒否されます。
- Client Access ポリシーを Per-app authorization または No apps allowed に設定します。
- Per-app authorization: マシン間アプリケーションは、対応するクライアントグラントを持っていれば、この API にアクセスできます。
- No apps allowed: この API へのマシン間アクセスを制限します。
- User-Delegated Access ポリシーを All apps allowed、Per-app authorization、または No apps allowed に設定します。
- Save を選択して、Application Access Policy を保存します。
- User-Delegated Access では、Grant Access を選択してから必要な権限を選択します。Always grant all permissions を選択することもできます。
- Client Access では、Grant Access を選択してから必要な権限を選択します。Always grant all permissions を選択することもできます。Organization Support では、次のいずれかを選択します。
- None: マシン間アクセスを組織にスコープ設定することはできません。
- Optional: マシン間アクセスは組織にスコープ設定できます。
- Required: マシン間アクセスは組織にスコープ設定する必要があります。
APIアクセスポリシーとサードパーティアプリケーション
| APIアクセスポリシー | ファーストパーティアプリケーション | サードパーティアプリケーション |
|---|---|---|
| Allow All | アクセス許可 | クライアントグラントが必要 |
| Require Client Grant | クライアントグラントが必要 | クライアントグラントが必要 |
| Deny | アクセス拒否 | アクセス拒否 |
- Applications > APIs に移動して、API を選択します。
- Settings タブで、Default Permissions for Third Party Applications に移動します。
- User-delegated Access または Client Access で Authorized を選択し、付与するスコープを選択します。
- Save を選択します。
既存の一部のテナントでは、サードパーティアプリケーションに対するAPIアクセスポリシーの動作が異なる場合があります。詳しくは、Permissive Mode for Third-Party Applicationsを参照してください。