Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 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 アクセストークン適用ポリシーは、Mule OAuth 2.0 プロバイダーと連携するように設計されています。
Mule OAuth 2.0 プロバイダーは Anypoint Exchange からダウンロードできます。
Mule 3.x: Anypoint Platform 用外部 OAuth 2.0 サーバーを参照してください。
Mule 4.x: Anypoint Platform 用 Mule OAuth 2.0 サーバーを参照してください。
この機能は、Mule 4.2.0 以降で使用できます。
OAuth 2.0 プロバイダー、API、およびクライアントアプリケーションによって実行される認証は、RFC 6749 に準拠しています。この認証プロセスは OAuth 2.0 ダンスと呼ばれます。
Mule OAuth 2.0 プロバイダーでは、すべての許可種別がサポートされています。Mule OAuth 2.0 アクセストークン適用ポリシーによって保護されているリソースへのアクセスを要求するエンティティは Client
です。
API 実装で次の Mule OAuth 2.0 プロバイダーエンドポイントをコールできます。
目的 | デフォルトパス | 説明 |
---|---|---|
トークンの検証 |
/validate |
トークンの有効性 (トークンの有効期限が切れていないか、トークンが失効していないか、トークンが偽物でないか) を検証するために使用します。複数の検証エンドポイントを定義し、それぞれで異なるスコープを適用できます。詳細は、「<Scopes>」を参照してください。 |
認証 |
/authorize |
スクリプト言語を使用するブラウザーでクライアントが実行されている場合や、クライアントが Web サーバーである場合にトークンを取得するために使用します。 |
アクセス |
/access_token |
クライアントが Mule OAuth 2.0 プロバイダーと同じエンティティによって所有されている場合や、クライアントが保護されたリソースのオーナーと同じエンティティである場合に使用します。 |
トークンの失効 |
/revoke |
[省略可能] 有効なトークンを失効させて、無効として表示します。 |
OAuth 2.0 スコープを使用すると、OAuth によって保護されているリソースへのアクセスをさらに制限できます。READ
、WRITE
などの語や、CONTRACTOR
、PUBLIC
、EMPLOYEES_ONLY
などの組織に固有の他の語を定義できます。
スコープは 3 つの異なる場所に定義できます。
有効なすべてのスコープを定義するユニバーサルセット定義 defaultScopes
。
<oauth2-provider:config
scopes="CONTRACTOR, PUBLIC_READ, EMPLOYEES_ONLY, WRITE"
>
...
</oauth2-provider:config>
すでに定義されているスコープの特定のサブセットを適用するための /validate
検証エンドポイント。
スペース区切りリストを指定してスコープを適用できる Mule OAuth 2.0 アクセストークン適用ポリシー。
複数のスコープを指定すると、AND
ロジックが適用されます。検証されるトークンが、要求されたすべてのスコープに関連付けられている場合、ポリシーはトークンを正常に検証します。
Mule 4.2.x 以降のスコープの使用例:
...
<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 サーバーを参照してください。
Anypoint Platform に接続するときのエラーが原因で Mule OAuth 2.0 プロバイダーがダウンするのを避けるために、Mule OAuth クライアントストアは、トークンが要求される有効なクライアントアプリケーションをそれぞれキャッシュします。
使用可能な接続がないときにプロバイダーが新しいトークンを要求した場合 (滅多にない)、クライアントストアはキャッシュにフォールバックします。エントリの有効期限は 30 日 (デフォルト設定) で切れます。再起動や Anypoint Platform への接続の切断の場合に備えてサービスの可用性を確保するために、ローカルにキャッシュを保持するようにこの範囲を設定できます。
すでにトークンがクライアントストアにあるクライアントアプリケーションが、Anypoint Platform から削除された場合、クライアントストアは次のトークン要求時にキャッシュからそのクライアントを削除して、プラットフォームの状況を反映します。Mule OAuth 2.0 アクセストークン適用ポリシーには、正常に完了したトークンの検証の結果をキャッシュするメカニズムがあります。
Mule 4.2.0 以降では、キャッシュメカニズムのデフォルト値をカスタマイズできます。このオブジェクトストアには 2 つの設定可能なプロパティがあります。
プロパティ名 | 定義 |
---|---|
|
キャッシュメカニズムをローカルで保持する必要があるかどうかを定義します。このプロパティが設定されていないか、解析できない場合、デフォルト値は |
|
各クライアントアプリケーションが OAuth サーバーによってキャッシュされる日数を表します。
この値には、任意の正の浮動小数点数を指定できます。デフォルト値は |