OAuth 2.0 トークンイントロスペクションポリシー

ポリシー名

OAuth 2.0 トークンイントロスペクションポリシー

概要

承認されたクライアントアプリケーションへのアクセスのみを許可する

カテゴリ

セキュリティ

使用可能な最小 Flex Gateway バージョン

v1.3.0

返される状況コード

400 - 無効なトークン

401 - 未承認または認証サーバーへの接続時にエラー

403 - アクセス拒否、無効なクライアントアプリケーションログイン情報

500 - 認証サーバーからの不正応答、または WSDL SOAP 失敗エラー

概要

OAuth 2.0 トークンイントロスペクションポリシーを使用すると、Okta、AWS、Azure、Google Cloud Platform などのサードパーティの ID プロバイダー (IdP) を使用して OAuth 2.0 を設定できます。このポリシーでは、Anypoint Platform に外部 IdP サーバーを登録しなくても、OAuth 2.0 認証フレームワークに基づくトークンを認証できます。

このポリシーは、クライアントから保護された API に送信されたトークンを検証し、イントロスペクションエンドポイントがトークンを認証した場合にのみ、バックエンドサーバーへのアクセスを許可します。

ポリシーのパラメーターの設定

Flex Gateway

Flex Gateway をランタイムとして使用するときに OAuth 2.0 トークンイントロスペクションを適用するには、YAML 設定ファイルでポリシーを手動で設定する必要があります。以下のポリシー定義とパラメーターの表を参照してください。

- policyRef:
    name: oauth2-token-introspection-flex
  config:
    introspectionURL: <string> // REQUIRED
    authorizationValue: <string> // REQUIRED
    validatedTokenTTL: <number> // OPTIONAL
    authenticationTimeout: <number> // OPTIONAL
    skipClientIdValidation: <boolean> // REQUIRED
    consumerBy: <string> // REQUIRED
    exposeHeaders: <boolean> // OPTIONAL
    scopes: <string> // OPTIONAL
    scopeValidationCriteria: <string> // OPTIONAL
    maxCacheEntries: <number> // OPTIONAL
パラメーター 必須または省略可能 デフォルト値 説明

introspectionURL

必須

サードパーティトークンイントロスペクション URL。

authorizationValue

必須

認証サービスから認証を要求する方法。​client_id​ と ​client_secret​ を使用する基本認証文字列、またはベアラートークンを指定します。

validatedTokenTTL

省略可能

600

検証済みトークンのキャッシュ制限。

authenticationTimeout

省略可能

10000

認証サービスへのデータ送信時のタイムアウト。

skipClientIdValidation

必須

false

クライアント ID 適用サポートを有効/無効にします。

consumerBy

必須

ID プロバイダーの ​username​ または ​client_id​ 応答を登録済みプラットフォームの ​client_id​ に関連付けます。​skip_client_id_validation​ が ​true​ の場合は必須です。

exposeHeaders

省略可能

false

scopes

省略可能

""

スペース区切りリスト。

scopeValidationCriteria

省略可能

"AND"

scopes​ 値に適用する条件。有効なパラメーター値は、「AND」または「OR」です。

maxCacheEntries

省略可能

1000

リソースの設定例

- policyRef:
    name: oauth2-token-introspection-flex
  config:
    introspectionURL: https://my-introspection.com/introspect
    authorizationValue: Basic am9obkBleGFtcGxlLmNvbTphYmMxMjM=
    validatedTokenTTL: 600
    authenticationTimeout: 10000
    skipClientIdValidation: false
    consumerBy: "client_id"
    exposeHeaders: true
    scopes: "profile email shopping"
    scopeValidationCriteria: "AND"
    maxCacheEntries: 1000