audienceまたは一意の識別子で識別される APIclient_idで識別されるアプリケーション- 指定された audience に対してアプリケーションがリクエストできる、スコープや
authorization_details_typesなどの権限の一覧
アプリケーションのAPIアクセスポリシーとクライアントグラント
require_client_grantに設定すると、クライアントグラントが定義されているアプリケーションのみが、そのAPIのアクセストークンを取得できます。クライアントグラントは、最小権限の原則に基づき、アプリケーションがそのAPIに対して要求できる最大の権限を定めます。そのため、Auth0では、APIのアプリケーションアクセスポリシーを設定する際にrequire_client_grantを使用することを推奨しています。
クライアントグラントが最小権限の原則にどのように従うかを示す例として、read:posts、write:posts、read:friends、delete:posts という権限を持つ Social Media API があるとします。そこで、アプリケーションを作成し、read:posts と write:posts の権限を持つクライアントグラントを定義します。
このクライアントグラントは、厳格な上限として機能します。Social Media API にほかの権限があっても、アプリケーションが read:friends や delete:posts をリクエストしたり、それらの権限を付与されたりすることはありません。
ユーザー委譲アクセスとクライアントアクセスの違い
subject_type 属性によって、API に対して許可されるアプリケーションアクセスの種類が決まります。
1 つの API に対して、1 つのアプリケーションに最大 2 つのクライアントグラントを設定できます。
subject_typeをclientに設定すると、マシンツーマシンの権限を定義します。subject_typeをuserに設定すると、ユーザーに代わって動作するための権限を定義します。
Actions を使用すると、認可サーバーがアプリケーションまたはユーザーに付与する最終的なスコープを変更できます。
クライアントグラントの属性
クライアントグラントを作成する
- アプリケーションごとの権限: テナント内の各アプリケーションにきめ細かな権限を適用します。
- サードパーティアプリケーションのデフォルト権限: テナント内のすべてのサードパーティアプリケーションにデフォルト権限を適用します。
アプリケーションごとの権限
- Auth0 Dashboard
- Management API
Auth0 Dashboard を使用してアプリケーションごとの権限を設定するには、次の手順に従います。
アプリケーションごとの権限では、各アプリケーションに対して API アクセスを個別に許可する必要があります。
- Auth0 Dashboard > アプリケーション > APIs に移動し、アプリケーションアクセスを設定する API を選択します。
- 設定 タブを開き、Application Access Policy までスクロールします。
- User-Delegated Access を No apps allowed、Per-app authorization、または All apps allowed に設定します。
- No apps allowed: どのアプリケーションも API のアクセストークンを取得できません。
- Per-app authorization: クライアントグラントが定義されているアプリケーションのみ、その API のアクセストークンを取得できます。
- All apps allowed: テナント内の任意のアプリケーションが、その API のアクセストークンを取得できます。
- Client Access を Per-app authorization または All apps allowed に設定します。
- Per-app authorization: クライアントグラントが定義されているアプリケーションのみ、その API のアクセストークンを取得できます。
- All apps allowed: テナント内の任意のアプリケーションが、その API のアクセストークンを取得できます。
- User-Delegated Access を No apps allowed、Per-app authorization、または All apps allowed に設定します。
- Application Access Policy の設定を保存するには、Save を選択します。

- アプリケーション > APIs に移動し、API を選択します。
- Application Access タブを開きます。
- 対象のアプリケーションまでスクロールし、Edit を選択してから、User-Delegated Access および/または Client Access の Grant Access を選択します。次に、必要な権限を選択します。
- Save を選択します。

サードパーティアプリケーションのデフォルト権限
client_id の代わりに default_for 属性を使用します。特定の client_id を指定したクライアントグラントを作成して、アプリケーションごとの権限を定義することもできます。同じ API に対して両方が存在する場合は、アプリケーションごとの権限が優先されます。
システム API (Management API、My Account API など) は、デフォルトのサードパーティクライアントグラントをサポートしていません。サードパーティアプリケーションにシステム API へのアクセスを付与することはできません。
default_for 属性と client_id 属性は相互排他的です。各クライアントグラントでは、このいずれか一方のみを指定する必要があります。
サードパーティアプリケーション向けの API アクセスポリシーの設定方法については、Configure Third-Party Applicationsを参照してください。
- Auth0 Dashboard
- Management API
Auth0 Dashboard を使用してサードパーティアプリケーションのデフォルト権限を設定するには、次の手順に従います。
- Auth0 Dashboard > アプリケーション > APIs に移動し、アプリケーションアクセスを設定する API を選択します。
- 設定 タブに移動し、サードパーティアプリケーションのデフォルト権限 までスクロールします。
- User-Delegated Access および/または Client Access を Unauthorized、Authorized、または All に設定します。
- Unauthorized: 権限は許可されません。
- Authorized: 権限を個別に選択します。
- All: 現在ある権限と今後追加される権限がすべて含まれます。
- User-Delegated Access および/または Client Access を Unauthorized、Authorized、または All に設定します。
- Save を選択します。

クライアントグラントを更新する
/client-grants/{id} に PATCH リクエストを送信します。
クライアントグラントを削除する
/client-grants/{id} に DELETE リクエストを送信します。
クライアントグラントを取得する
client_id、audience、subject_type などのパラメータを使用して、client-grants コレクションを検索したり、ページ単位で取得したりすることもできます。