audienceまたは一意の識別子で識別される API。client_idで識別されるアプリケーション。- 指定したオーディエンスに対して、そのアプリケーションがリクエストを許可されている、スコープや
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 つのアプリケーションに対して、1 つの API には最大 2 つのクライアントグラントを設定できます。
subject_typeをclientに設定すると、マシン間の権限を定義します。subject_typeをuserに設定すると、ユーザーに代わって動作するための権限を定義します。
Actions を使用すると、認可サーバーがアプリケーションまたはユーザーに付与する最終的なスコープを変更できます。
クライアントグラントの属性
クライアントグラントを作成する
- アプリケーションごとの権限: テナント内の各アプリケーションにきめ細かな権限を適用します。
- サードパーティアプリケーションのデフォルト権限: テナント内のすべてのサードパーティアプリケーションにデフォルト権限を適用します。
アプリケーションごとの権限
- Auth0 Dashboard
- Management API
Auth0 Dashboard を使用してアプリケーションごとの権限を設定するには、次の手順に従います。
アプリケーションごとの権限を使用する場合は、各アプリケーションに対して API アクセスを個別に認可する必要があります。
- Dashboard > Applications > APIs に移動し、アプリケーションアクセスを設定する API を選択します。
- Settings タブに移動し、下にスクロールして 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 を選択します。

- Applications > 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 を使用してサードパーティアプリケーションのデフォルト権限を設定するには、次の手順に従います。
- Dashboard > Applications > APIs に移動し、アプリケーションアクセスを設定する API を選択します。
- Settings タブに移動し、Default Permissions for Third-Party Applications までスクロールします。
- 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 コレクションを検索し、ページネーションすることもできます。