---
schema_version: "1"
id: ac5399fa19a4861fd96e0fde6554bf6dc67a70bccaf0d1ab821cb0474f0f6eff
title: Mule OAuth 2.0 プロバイダー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/api-manager/latest/mule-oauth-provider-landing-page.md
canonical_url: https://docs.mulesoft.com/jp/api-manager/latest/mule-oauth-provider-landing-page
source_site: docs.mulesoft.com
content_type: documentation
content_hash: ba052e31c6812df8513e2d9853060b82d16d214a1dab34bda44ea380f66c2559
description: MuleSoft Documentation Site
release: 2.x
latest: true
---
# Mule OAuth 2.0 プロバイダー

Mule OAuth 2.0 プロバイダーは、MuleSoft が開発した代替の OAuth 2.0 プロバイダーで、どの MuleSoft API プラットフォーム組織 (統合組織を含む) でも使用できます。

対応する組織のログイン情報を使用して、Mule OAuth 2.0 プロバイダーを API ゲートウェイ機能のあるランタイム (Mule Runtime Engine (Mule) 3.x、4.2.0、またはそれ以降など) にデプロイする必要があります。次のサードパーティ OAuth 2.0 プロバイダーがサポートされています。

- PingFederate
- OpenAM
- Open ID Connect をサポートしている OAuth 2.0 プロバイダー

[Mule OAuth 2.0 アクセストークン適用ポリシー](#external-oauth-2.0-token-validation-policy.adoc)​は、Mule OAuth 2.0 プロバイダーと連携するように設計されています。

## [](#mule-oauth-2-0-プロバイダーのダウンロード)Mule OAuth 2.0 プロバイダーのダウンロード

Mule OAuth 2.0 プロバイダーは Anypoint Exchange からダウンロードできます。

- Mule 3.x: [Anypoint Platform 用外部 OAuth 2.0 サーバー](https://anypoint.mulesoft.com/exchange/org.mule.templates/api-gateway-external-oauth2-provider/)​を参照してください。
- Mule 4.x: [Anypoint Platform 用 Mule OAuth 2.0 サーバー](https://anypoint.mulesoft.com/exchange/org.mule.templates/api-gateway-oauth2-provider/)​を参照してください。
    
    この機能は、Mule 4.2.0 以降で使用できます。

## [](#oauth-2-0-ダンス)OAuth 2.0 ダンス

OAuth 2.0 プロバイダー、API、およびクライアントアプリケーションによって実行される認証は、RFC 6749 に準拠しています。この認証プロセスは ​[OAuth 2.0 ダンス](https://docs.mulesoft.com/jp/api-manager/latest/oauth-dance-about)​と呼ばれます。

Mule OAuth 2.0 プロバイダーでは、すべての​[許可種別](https://docs.mulesoft.com/jp/api-manager/latest/oauth-grant-types-about)​がサポートされています。Mule OAuth 2.0 アクセストークン適用ポリシーによって保護されているリソースへのアクセスを要求するエンティティは ​`Client`​ です。

### [](#エンドポイント)エンドポイント

API 実装で次の Mule OAuth 2.0 プロバイダーエンドポイントをコールできます。

![mule oauth provider](/mulesoft/current/ja-jp/api-manager/latest/_images/mule-oauth-provider.png)

<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"><div class="content"><div class="paragraph">
<p>トークンの検証</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>/validate</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>トークンの有効性 (トークンの有効期限が切れていないか、トークンが失効していないか、トークンが偽物でないか) を検証するために使用します。複数の検証エンドポイントを定義し、それぞれで異なるスコープを適用できます。詳細は、「&lt;Scopes&gt;」を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>認証</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>/authorize</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>スクリプト言語を使用するブラウザーでクライアントが実行されている場合や、クライアントが Web サーバーである場合にトークンを取得するために使用します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>アクセス</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>/access_token</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>クライアントが Mule OAuth 2.0 プロバイダーと同じエンティティによって所有されている場合や、クライアントが保護されたリソースのオーナーと同じエンティティである場合に使用します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>トークンの失効</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>/revoke</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>[省略可能] 有効なトークンを失効させて、無効として表示します。</p>
</div></div></td>
</tr>
</tbody>
</table>

### [](#スコープの実装)スコープの実装

OAuth 2.0 [スコープ](https://tools.ietf.org/html/rfc6749#page-23)​を使用すると、OAuth によって保護されているリソースへのアクセスをさらに制限できます。​`READ`​、​`WRITE`​ などの語や、​`CONTRACTOR`​、​`PUBLIC`​、​`EMPLOYEES_ONLY`​ などの組織に固有の他の語を定義できます。

スコープは 3 つの異なる場所に定義できます。

- 有効なすべてのスコープを定義するユニバーサルセット定義 ​`defaultScopes`​。
    
    ```xml
    <oauth2-provider:config
      scopes="CONTRACTOR, PUBLIC_READ, EMPLOYEES_ONLY, WRITE"
      >
      ...
    </oauth2-provider:config>
    ```
- すでに定義されているスコープの特定のサブセットを適用するための ​`/validate`​ 検証エンドポイント。
- スペース区切りリストを指定してスコープを適用できる Mule OAuth 2.0 アクセストークン適用ポリシー。
    
    複数のスコープを指定すると、​`AND`​ ロジックが適用されます。検証されるトークンが、要求されたすべてのスコープに関連付けられている場合、ポリシーはトークンを正常に検証します。

Mule 4.2.x 以降のスコープの使用例:

```xml
...
    <oauth2-provider:config name="external-oauth2-provider"
    							resourceOwnerSecurityProvider="resourceOwnerSecurityProvider"
    							clientSecurityProvider="clientSecurityProvider"
    							supportedGrantTypes="AUTHORIZATION_CODE,IMPLICIT,RESOURCE_OWNER_PASSWORD_CREDENTIALS,CLIENT_CREDENTIALS"
    							listenerConfig="https.listener"
    							scopes="CONTRACTOR, PUBLIC_READ, EMPLOYEES_ONLY, WRITE"
                                defaultScopes="CONTRACTOR, PUBLIC_READ, EMPLOYEES_ONLY, WRITE"
                                clientStore="clientObjectStore">
    		<oauth2-provider:token-config path="/access-token" tokenTtl="5" tokenTtlTimeUnit="SECONDS" tokenStore="tokenObjectStore">
                <oauth2-provider:refresh-token-strategy>
                    <oauth2-provider:single-refresh-token objectStore="refreshTokenObjectStore"/>
                </oauth2-provider:refresh-token-strategy>
            </oauth2-provider:token-config>
    		<oauth2-provider:authorization-config path="/authorize" authorizationCodeStore="authorizationCodeObjectStore"/>
    	</oauth2-provider:config>

        <flow name="validateToken">
            <http:listener path="/validate" config-ref="https.listener"/>
            <oauth2-provider:validate-token scopes="#[['PUBLIC_READ']]" config-ref="external-oauth2-provider" accessToken="#[attributes.queryParams.access_token]"/>
            <error-handler>
                <on-error-continue type="OAUTH2-PROVIDER:TOKEN_UNAUTHORIZED">
                    <set-payload value="UNAUTHORIZED_TOKEN"/>
                </on-error-continue>
            </error-handler>
        </flow>
...
```

詳細は、​ [Anypoint Platform 用 Mule OAuth 2.0 サーバー](https://anypoint.mulesoft.com/exchange/org.mule.templates/api-gateway-oauth2-provider/)​を参照してください。

## [](#クライアントアプリケーションキャッシュ)クライアントアプリケーションキャッシュ

Anypoint Platform に接続するときのエラーが原因で Mule OAuth 2.0 プロバイダーがダウンするのを避けるために、Mule OAuth クライアントストアは、トークンが要求される有効なクライアントアプリケーションをそれぞれキャッシュします。

使用可能な接続がないときにプロバイダーが新しいトークンを要求した場合 (滅多にない)、クライアントストアはキャッシュにフォールバックします。エントリの有効期限は 30 日 (デフォルト設定) で切れます。再起動や Anypoint Platform への接続の切断の場合に備えてサービスの可用性を確保するために、ローカルにキャッシュを保持するようにこの範囲を設定できます。

すでにトークンがクライアントストアにあるクライアントアプリケーションが、Anypoint Platform から削除された場合、クライアントストアは次のトークン要求時にキャッシュからそのクライアントを削除して、プラットフォームの状況を反映します。​[Mule OAuth 2.0 アクセストークン適用ポリシー](#external-oauth-2.0-token-validation-policy.adoc)​には、正常に完了したトークンの検証の結果をキャッシュするメカニズムがあります。

### [](#クライアントアプリケーションキャッシュメカニズムのカスタマイズ)クライアントアプリケーションキャッシュメカニズムのカスタマイズ

Mule 4.2.0 以降では、キャッシュメカニズムのデフォルト値をカスタマイズできます。このオブジェクトストアには 2 つの設定可能なプロパティがあります。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<thead>
<tr>
<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"><div class="content"><div class="paragraph">
<p><code>anypoint.oauth_provider.cache_persistence_enabled</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>キャッシュメカニズムをローカルで保持する必要があるかどうかを定義します。このプロパティが設定されていないか、解析できない場合、デフォルト値は ​<code>true</code>​ です。
キャッシュ保持によって、接続なしで Anypoint Platform へのクライアント認証が許可されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>anypoint.oauth_provider.cache_ttl_days</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>各クライアントアプリケーションが OAuth サーバーによってキャッシュされる日数を表します。
この値には、任意の正の浮動小数点数を指定できます。デフォルト値は ​<code>30</code>​ (30 日) です。</p>
</div></div></td>
</tr>
</tbody>
</table>

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

- [Mule OAuth 2.0 アクセストークンポリシーの使用方法](#external-oauth-2.0-token-validation-policy.adoc)
- [OAuth 2.0 ダンスと OAuth 2.0 アクセストークン適用](https://docs.mulesoft.com/jp/api-manager/latest/oauth-dance-about)
- [OAuth 2.0 許可種別](https://docs.mulesoft.com/jp/api-manager/latest/oauth-grant-types-about)
- [起動時のログイン情報の設定](https://docs.mulesoft.com/jp/mule-gateway/mule-gateway-org-credentials-mule4)