メインコンテンツへスキップ
アプリケーション向けAPIアクセスポリシーでは、Auth0 に登録した API にアプリケーションがどのようにアクセスできるかを制御できます。これらのポリシーは、アプリケーションが API とどのようにやり取りするかを定義します。たとえば、API のリソースにアクセスするためのアクセストークンを正常に取得できるかどうかなどです。 Auth0 Dashboard では、登録されている各 API ごとにアプリケーションの APIアクセスポリシーを設定できます。詳しくは、API のアプリケーションアクセスポリシーを設定する を参照してください。

ユーザー委任アクセスとクライアントアクセス

ユーザー委任アクセスとクライアント (マシン間) アクセスでは、それぞれ別個のアプリケーション API アクセスポリシーを設定できます。
  • クライアントアクセス: マシン間アクセスに使用され、Client Credentials フロー に対応します。
  • ユーザー委任アクセス: エンドユーザーに関連付けられたアクセストークンを生成する、すべてのアクセスフローに使用されます。これにより、アプリケーションはユーザーに代わって API にアクセスできます。ユーザー委任アクセスフローには Client Credentials フローは含まれません。ユーザー委任アクセスフローの詳細については、Authentication and Authorization Flows を参照してください。

アプリケーションのAPIアクセスポリシー

アプリケーションのAPIアクセスポリシーは次のとおりです。
ポリシー説明アクセスフロー
All apps allowedAPI に対してこのポリシーを設定すると、テナント内の任意のアプリケーションがそのAPIのアクセストークンを取得できます。特定のグラントは必要ありません。API 作成時のユーザー委任アクセスのデフォルトです。ユーザー委任アクセスでは、設定できるのは allow_all のみです。
Per-app authorizationAPI に対してこのポリシーを設定すると、クライアントグラントが定義されているアプリケーションのみがそのAPIのアクセストークンを取得できます。クライアントグラントにより、アプリケーションがそのAPIに対して要求できる最大の権限が定義されます。クライアントグラントの作成方法と管理方法の詳細については、Application Access to APIs: Client Grants を参照してください。API 作成時の Client Credentials フローのデフォルトです。
No apps allowedAPI に対してこのポリシーを設定すると、他の設定やグラントにかかわらず、どのアプリケーションもそのAPIのアクセストークンを取得できません。アクセスは完全に制限されます。ユーザーアクセスとクライアントアクセスの両方で deny_all を設定できます。
API のアプリケーションアクセスポリシーを設定する際、Auth0 は最小権限の原則に従う Per-app authorization の使用を推奨しています。詳細については、Application Access to APIs: Client Grants を参照してください。 API のアプリケーションアクセスポリシーを Per-app authorization に設定した場合は、必要なスコープをトークンリクエストに明示的に含める必要があります。これはリフレッシュトークンのリクエストには当てはまりません。リフレッシュトークンのリクエストでスコープを省略すると、認可サーバーは、アプリケーションが元のアクセストークンで付与されたすべてのスコープを要求しているものとみなします。その結果、認可サーバーは、リソース所有者が最初に付与したものと同じスコープを持つアクセストークンを返します。

API のアプリケーションアクセスポリシーを設定する

Auth0 Dashboard または Management API を使用して、API のアプリケーションアクセスポリシーを設定できます。
API のアプリケーションアクセスポリシーを設定するには、次の手順を実行します。
  1. Dashboard > Applications > APIs に移動し、対象の API を選択します。
  2. Settings タブを選択し、Application Access Policy までスクロールして、User-Delegated Access ポリシーと Client Access ポリシーを設定します。
    • User-Delegated Access ポリシーを All apps allowedPer-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 へのマシン間アクセスを制限します。
  3. Save を選択して、Application Access Policy を保存します。
API に設定されているポリシーが Per-app authorization の場合は、Application Access タブを選択し、次に Edit を選択して、各アプリケーションに対して User-Delegated AccessClient Access、またはその両方を認可します。
  • User-Delegated Access では、Grant Access を選択してから必要な権限を選択します。Always grant all permissions を選択することもできます。
  • Client Access では、Grant Access を選択してから必要な権限を選択します。Always grant all permissions を選択することもできます。Organization Support では、次のいずれかを選択します。
    • None: マシン間アクセスを組織にスコープ設定することはできません。
    • Optional: マシン間アクセスは組織にスコープ設定できます。
    • Required: マシン間アクセスは組織にスコープ設定する必要があります。

APIアクセスポリシーとサードパーティアプリケーション

サードパーティアプリケーションが API にアクセスするには、API に設定されているAPIアクセスポリシーにかかわらず、常に明示的なクライアントグラントが必要です。
APIアクセスポリシーファーストパーティアプリケーションサードパーティアプリケーション
Allow Allアクセス許可クライアントグラントが必要
Require Client Grantクライアントグラントが必要クライアントグラントが必要
Denyアクセス拒否アクセス拒否
すべてのサードパーティアプリケーションのデフォルト権限を設定することもできます。
  1. Applications > APIs に移動して、API を選択します。
  2. Settings タブで、Default Permissions for Third Party Applications に移動します。
  3. User-delegated Access または Client AccessAuthorized を選択し、付与するスコープを選択します。
  4. Save を選択します。
詳細については、Configure API Access Policies for Third-Party Applicationsを参照してください。
既存の一部のテナントでは、サードパーティアプリケーションに対するAPIアクセスポリシーの動作が異なる場合があります。詳しくは、Permissive Mode for Third-Party Applicationsを参照してください。

詳細情報