Mule OAuth 2.0 クライアントストア設定

Mule OAuth 2.0 クライアントストアは、Mule OAuth 2.0 プロバイダが Anypoint クライアントアプリケーションをトークン生成に使用できるようにします。

この機能は、Mule 4.2.0 以降で使用できます。

前提条件

Mule OAuth 2.0 プロバイダをホストする Mule Runtime エンジンは、次の 2 つの要件を満たす必要があります。

OAuth 2.0 クライアントストアのプロパティ

このオブジェクトストアには 2 つの設定可能なプロパティがあります。

anypoint.oauth_provider.cache_persistence_enabled キャッシュメカニズムをローカルで保持する必要があるかどうかを定義します。このプロパティが設定されていないか、解析できない場合、デフォルト値は ​true​ です。キャッシュ保持によって、接続なしで Anypoint Platform へのクライアント認証が許可されます。

anypoint.oauth_provider.cache_ttl_days

各クライアントアプリケーションが OAuth サーバによってキャッシュされる日数を表します。この値は、任意の正の浮動小数点値にできます。デフォルト値は ​30​ (30 日) です。

使い方

OAuth プロバイダに Mule OAuth クライアントストアを設定するには、​oauth-provider:config​ 要素の ​clientStore​ パラメータで次のオブジェクトストアを使用します。

...
    <mule xmlns:os="http://www.mulesoft.org/schema/mule/os"
      xmlns:agw-client-store="http://www.mulesoft.org/schema/mule/agw-client-store"
      xsi:schemaLocation="
        http://www.mulesoft.org/schema/mule/agw-client-store http://www.mulesoft.org/schema/mule/agw-client-store/current/mule-agw-client-store.xsd
        http://www.mulesoft.org/schema/mule/os http://www.mulesoft.org/schema/mule/os/current/mule-os.xsd">

    <os:config name="agwConfig">
        <agw-client-store:connection/>
    </os:config>

    <os:object-store name="clientObjectStore" config-ref="agwConfig"/>
...

次の連動関係をプロジェクトに追加する必要があります。また、アプリケーションの Mule バージョンは 4.2.0 以上である必要があります。

...
    <dependency>
        <groupId>com.mulesoft.anypoint</groupId>
        <artifactId>api-gateway-oauth2-client-store</artifactId>
        <version>1.0.0</version>
        <classifier>mule-plugin</classifier>
    </dependency>
...

トークンキャッシュ

プラットフォームに接続するときのエラーが原因で Mule OAuth 2.0 プロバイダがダウンするのを避けるために、Mule OAuth クライアントストアは、トークンが要求される有効なクライアントアプリケーションをそれぞれキャッシュします。接続がないときに Mule OAuth 2.0 プロバイダが新しいトークンを要求した場合、OAuth 2.0 クライアントストアはキャッシュにフォールバックします。エントリの有効期限は、デフォルトで 30 日です。さらに、この範囲を設定できます。再起動やプラットフォームへの接続の切断の場合に備え、ローカルにキャッシュを保持するように設定してサービスの可用性を確保することさえ可能です。すでにトークンがクライアントストアにあるクライアントアプリケーションが、Anypoint Platform から削除された場合、次のトークン要求時にクライアントストアはキャッシュからそのクライアントを削除して、プラットフォームの状況を反映します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub