---
schema_version: "1"
id: 80438d59f8fb4979fe811cca27b1de969e8a57ae784684a7e6392763b51c65ea
title: PingFederate OAuth 2.0 トークン適用ポリシー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-gateway/policies-included-pingfederate-oauth-token-enforcement.md
canonical_url: https://docs.mulesoft.com/jp/mule-gateway/policies-included-pingfederate-oauth-token-enforcement
source_site: docs.mulesoft.com
content_type: documentation
content_hash: b6599b9b78153eec8872f3a2653492853b28da4a42a68cdcc92d2a36eac668c3
description: MuleSoft Documentation Site
latest: true
---
# PingFederate OAuth 2.0 トークン適用ポリシー

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>ポリシー名</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PingFederate OAuth 2.0 トークン適用</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>概要</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">承認されたクライアントアプリケーションへのアクセスのみを許可する</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>カテゴリ</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">セキュリティ</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>使用可能な最小 Mule バージョン</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">v4.1.1</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-middle" rowspan="4"><p class="tableblock"><strong>返される状況コード</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">400 - 無効なトークン</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">401 - 未承認または認証サーバーへの接続時にエラー</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">403 - アクセス拒否、無効なクライアントアプリケーションログイン情報</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">500 - 認証サーバーからの不正応答、または WSDL SOAP 失敗エラー。</p></td>
</tr>
</tbody>
</table>

## [](#概要)概要

PingFederate OAuth 2.0 トークン適用ポリシーは、保護されたリソースへのアクセスを、API アクセス権を持つクライアントアプリケーションに属する有効な OAuth2 トークンを提供する HTTP 要求に制限します。このポリシーはトークンを生成せず、トークンを検証するだけです。

このポリシーは、​[クライアント管理ソリューションとして PingFederate を使用](https://docs.mulesoft.com/jp/access-management/conf-client-mgmt-pf-task)​するように設定されている組織でのみ使用できます。

## [](#ポリシーのパラメーターの設定)ポリシーのパラメーターの設定

### [](#mule-ゲートウェイ)Mule ゲートウェイ

UI からポリシーを API に適用するときに、パラメーターのリストが表示されます。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">要素</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">例</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">スコープ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サポートされるスコープのカンマ区切りリストを表示します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>READ</code>​、​<code>WRITE</code>​、​<code>READ and WRITE</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Scope Validation Criteria (スコープ検証条件)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">トークンにすべての定義済みスコープを含める必要があるのか、1 つのみを含める必要があるのかを決定します。
この値は、​<code>Contains all scopes</code>​ と ​<code>Contains any scope</code>​ です。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">[Contains all scopes (すべてのスコープを含む)] 値が選択されている場合、スコープ ​<code>READ</code>​ と ​<code>WRITE</code>​ を持つトークンが受け入れられます。[Contains any scopes (いずれかのスコープを含む)] 値が選択されている場合、スコープ ​<code>READ</code>​、​<code>WRITE</code>​、​<code>READ AND WRITE</code>​ を持つトークンが受け入れられます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Validate TLS Certificate (TLS 証明書の検証)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サードパーティ認証サーバーの TLS 検証を有効にします。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">選択した場合、トークン検証エンドポイントとの通信には TLS プロトコルが使用されます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Expose Headers (ヘッダーを公開)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">プロキシのシナリオで、バックエンドへの要求でヘッダーを公開する必要があるかどうかを指定します。統合サーバーによって返されるユーザープロパティは、「X-AGW-」というプレフィックスが付けられ、ヘッダーとしてバックエンドに送信されます。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">この要素についての詳細は、​<a href="#leveraging-TVE-information">「Mule アプリケーションのトークン検証エンドポイント情報の活用」</a>​を参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Skip Client Id Validation (クライアント ID 検証をスキップ)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クライアントアプリケーションの API コントラクト検証をスキップします。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">選択した場合、​<a href="#how-this-policy-works">「ポリシーのしくみ」</a>​セクションの図のステップ 4 がスキップされます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Authentication request timeout (認証要求タイムアウト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アクセストークン検証エンドポイントを認証するときに、応答を待機する最大時間 (ミリ秒単位) を設定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>10000</code></p></td>
</tr>
</tbody>
</table>

## [](#how-this-policy-works)ポリシーのしくみ

次の図は、PingFederate OAuth 2.0 トークン適用ポリシーワークフローを示しています。

![PingFederate ポリシーを介して API とやり取りするユーザーのプロセスを示すフローチャート](/mulesoft/current/ja-jp/mule-gateway/_images/open-id-policy-workflow.png)

この図には次の動作が示されています。

1. ユーザーが最初にポリシーで保護された API に HTTP 要求を送信します。
2. ポリシーは要求からトークンを抽出し、それを検証エンドポイントに送信して、トークンの整合性を検証します。
3. トークン検証エンドポイントは、クライアントアプリケーションのクライアント ID を含むトークンメタデータを返します。
4. ポリシーは Anypoint Platform から以前に取得したコントラクトで更新されたローカルデータベースを使用して、クライアント ID が API にアクセスできるかどうかを検証します。
5. すべての検証が正常に完了すると、要求はバックエンドに到達できます。

### [](#leveraging-TVE-information)Mule アプリケーションのトークン検証エンドポイント情報の活用

トークン検証エンドポイントで正常にトークンが検証されると、特定の情報 (PingFederate の設定可能な項目など) がポリシーに返されます。

次の例は、認証サーバーからのトークン検証応答を示しています:

```text
---
{
    "uid":"john.doe",
    "mail":"john.doe@example.com"
    "token_type":"Bearer",
    "expires_in":3600
    "alias" : ["Jhon", "Jhonny", "Mr Doe"],
    "address" : {
        "city": "london",
        "road": “abbey road"
    }
}
---
```

OAuth プロバイダーによって返された項目はポリシーによって処理され、Mule フロー全体に伝播され、アクセスを要求しているアプリケーションが HTTP リクエスターを使用している場合は最終的にバックエンドに公開されます。

### [](#トークンキャッシュ)トークンキャッシュ

システムがトークンを検証すると、そのトークンは (デフォルトで) 期限切れになるまでキャッシュされるため、ポリシーのパフォーマンスが向上します。失効したトークンなどの特定のケースでは、キャッシュを最小限に抑えたり無効にしたりできます。

検証エンドポイントは、トークンの有効期限などの複数のプロパティをポリシーに送信します。有効期限情報がない場合、トークンはキャッシュされません。

トークンのキャッシュにかかる時間を制御するには、トークン検証エンドポイントに対して再検証を試みる前に、Mule Runtime Engine を起動するときに次のプロパティを指定します。

`anypoint.platform.max_federation_expiration_time=<expiration time in seconds>`

または、​`wrapper.conf`​ ファイルでこのパラメーターを指定できます。このプロパティを設定すると、指定された時間、またはトークンが期限切れになるまでのいずれか早い方でトークンがキャッシュされます。このプロパティが有効で、検証エンドポイントが有効期限情報を送信しない場合、トークンはキャッシュされません。

同時にキャッシュできるトークンの数を制御するには、Mule Runtime Engine を起動するときに次のプロパティを指定します。

`anypoint.platform.ping_federate_cache_max_size=<amount of tokens to be cached; default value is 10.000; specify 0 to disable caching>`

または、​`wrapper.conf`​ ファイルでこのパラメーターを指定できます。

## [](#expose-headers-ヘッダーを公開-オプションの設定)Expose Headers (ヘッダーを公開) オプションの設定

ポリシーで ​`Expose Headers`​ オプションを設定し、アプリケーション (標準のプロキシなど) が HTTP リクエスターを使用している場合、プロパティはヘッダーとしてバックエンドにリダイレクトされます。

項目ごとに、元の保護されたリソースへの要求が「​`X-AGW- + <key>=<value>`​」形式を使用する HTTP ヘッダーで強化されます。前のセクションの応答例では、次のヘッダーが追加されています。

```text
---
X-AGW-uid=john.doe
X-AGW-mail=john.doe@example.com
X-AGW-token_type=Bearer
---
```

伝播されたプロパティには、​`scope`​、​`expires_in`​ オブジェクトおよび配列は含まれません。

フロー内の以降の処理では、検証エンドポイントからの元の解析していない応答を使用できます。情報は認証オブジェクトに保存されます。

たとえば、​`mail`​ 項目がポリシーに返される場合、次の DataWeave 2.0 式を使用して項目の値にアクセスできます。

`#[authentication.properties.userProperties.mail]`

次の DataWeave 2.0 式を使用して、OAuth2 トークンのクライアント ID を取得できます。

`#[authentication.principal]`

## [](#プロキシを使用したトークン検証エンドポイントとの通信)プロキシを使用したトークン検証エンドポイントとの通信

PingFederate OAuth 2.0 トークン適用ポリシーでゲートウェイプロキシ設定を使用できるようにするには、Mule Runtime Engine の開始時に次のプロパティを指定します。

`anypoint.platform.external_authentication_provider_enable_proxy_settings=<true|false(default)>`

次のパラメーターを指定している場合、このプロパティを有効にすると、ポリシーは Mule プロキシ設定を使用します。

- `anypoint.platform.proxy_host=localhost`
- `anypoint.platform.proxy_port=8080`

## [](#faqs)FAQs

**API に適用するポリシーのリストに PingFederate OAuth 2.0 トークン適用ポリシーが表示されないのはなぜですか?**

ポリシーリストにポリシーが表示されない場合、アクセス管理で PingFederate クライアントプロバイダーを設定していることを確認します。詳細は、​[「PingFederate クライアント管理を設定する」](https://docs.mulesoft.com/jp/access-management/conf-client-mgmt-pf-task)​を参照してください。​[複数の IDP](https://docs.mulesoft.com/jp/api-manager/latest/configure-multiple-credential-providers)​ を使用している場合、API で PingFederate クライアントが正しく設定されていることを確認します。

**ポリシーで OAuth2 トークンを生成できますか?**

番号ポリシーはトークンの検証のみを行います。

**ポリシーは検証エンドポイントと通信するためのログイン情報をどのように管理しますか?**

この情報は、ポリシー設定に含まれており、ディスクに保存されます。この情報を暗号化して保存する場合、​[ランタイムでゲートウェイ暗号化を設定します](https://docs.mulesoft.com/jp/mule-gateway/mule-gateway-encryption-mule4)​。

**OAuth トークンがキャッシュされる場所は?**

OAuth2 トークンはメモリにのみキャッシュされ、ディスクに書き込まれることはありません。

**ポリシーは要求ごとに Anypoint Platform と通信しますか?**

いいえ。ポリシーは以前に Mule Runtime Engine によって取得されたクライアントアプリケーションを使用します。 これにより、コントロールプレーンとの接続が失われても、ポリシーは引き続き機能することができます。ディスクに書き込まれるクライアントアプリケーション情報を暗号化する場合は、​[ランタイムでゲートウェイ暗号化を設定します](https://docs.mulesoft.com/jp/mule-gateway/mule-gateway-encryption-mule4)​。

**PingFederate アクセストークン適用ポリシーを設定した後にレート制限 SLA ポリシーを設定できますか?**

はい、できます。PingFederate アクセストークン適用ポリシーの後にレート制限 SLA ポリシーを適用し、次の DataWeave 2.0 式を使用して \[​`Client ID Expression`​ (クライアント ID 式)\] の値を指定します。

`#[authentication.principal]`

リクエスターの ID はすでに PingFederate アクセストークン適用ポリシーで検証されているため、\[​`Client Secret Expression`​ (クライアントシークレット式)\] 項目は空のままにできます。

**トークンが検証された後に、トークンに関連付けられた情報をどこで確認できますか?**​ この情報は認証オブジェクトにあります。詳細は、​[「Mule アプリケーションのトークン検証エンドポイント情報」](#leveraging-TVE-information)​を参照してください。

## [](#関連情報)関連情報

- [PingFederate](https://www.pingidentity.com/en/products/pingfederate.html)​ ID プロバイダー
- [SAML 2.0](https://docs.mulesoft.com/jp/access-management/external-identity#instructions-for-saml-configuration)