PingFederate OAuth 2.0 トークン適用

ポリシー名

PingFederate OAuth 2.0 トークン適用

概要

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

カテゴリ

セキュリティ

最小 Mule バージョン

3.8.0

返される状況コード

400 - 無効なトークン

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

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

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

このポリシーは、クライアント管理ソリューションとして PingFederate を使用するように設定されているフェデレーション組織でのみ使用できます。

PingFederate OAuth 2.0 トークン適用ポリシーは、HTTP 要求で提供されたトークンが有効である場合、また必要な OAuth スコープが満たされた場合 (省略可能) に、その HTTP 要求のみを許可することで、保護されたリソースへのアクセスを制限します。 このポリシーは、PingFederate 認証サーバに接続してトークンを検証します。トークンは、​OAuth ダンス​の実行時に、​認証されたクライアントアプリケーション​のログイン情報を指定することで取得されます。

このポリシーを適用する前に、​前提条件​をよく理解しておいてください。

ポリシーの適用時、必要に応じて、適用対象となる OAuth 2.0 スコープのスペース区切りリストを定義できます。 OAuth 2.スコープは、OAuth によって保護されているリソースへのアクセスをさらに制限する手段です。READ、WRITE のような語や、組織のコンテキストで意味のあるその他の語 (例: CONTRACTOR、PUBLIC、​EMPLOYEES_ONLY​ など) を定義できます。

サポートされる許可種別

PingFederate フェデレーション組織で作成されたクライアントアプリケーションでは、次の ​OAuth 許可種別​の組み合わせを使用できます。暗黙的、クライアントログイン情報、リソース所有者のパスワードログイン情報、認証コード。 PingFederate 側では、許可種別の組み合わせを有効または無効にできます。Oauth ダンスが正常に行われるには、使用される許可種別が PingFederate とクライアントアプリケーションの両方で有効になっている必要があります。

パフォーマンス

パフォーマンス向上のために、トークンが検証されると、デフォルトでは、システムによってトークンが有効期限までキャッシュされます。たとえば、トークンが失効するシナリオを考慮するときなど、このキャッシュメカニズムの制限や無効化が必要になる場合があります。

トークンキャッシュ時間 (OAuth プロバイダに対して検証を再試行するまでのトークンキャッシュ時間) を制御する場合、次のプロパティを指定できます。

anypoint.platform.max_federation_expiration_time=<a number equal or greater than 0>

プロキシを介した OAuth プロバイダへの接続

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

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

上記のプロパティを true に設定すると、ポリシーがランタイムプロキシ設定を使用します (指定されている場合)。次に例を示します。

anypoint.platform.proxy_host=localhost
nypoint.platform.proxy_port=8080

OAuth プロバイダ情報の利用

トークンが OAuth プロバイダによって正常に検証されると、プロバイダはトークン検証を要求したポリシーに、PingFederate 側で設定可能な項目を含む追加の情報を返送します。

認証サーバからのトークン検証応答:

{
    "uid":"john.doe",
    "mail":"john.doe@example.com",
    "scope":["uid","mail","cn","givenName"],
    "grant_type":"password",
    "cn":"John Doe",
    "realm":"/",
    "token_type":"Bearer",
    "expires_in":3600,
    "givenName":"John",
    "access_token":"fa017a0e-1bd5-214c-b19d-03efe9f9847e"
}

OAuth プロバイダから返された項目はポリシーで処理され、さらに次のように処理されます。

  • 項目ごとに、元の保護されたリソースへの要求が「​X-AGW-​ + キー = 値」形式の HTTP ヘッダーで強化されます。

    • [Mule 4] ポリシー設定の一部として、[Expose Headers (ヘッダーを公開)] をオフにすることもできます。その場合、要求は ​X-AGW​ ヘッダーで強化​されません​。

  • フロー内の以降の処理では、プロバイダからの元の解析していない応答を使用できます。

    • [Mule 3] フロー変数 ​['_agwUser']​ がセットアップされます。マップ内の特定の値にアクセスするには、MEL 式を使用して直接指定します。次に例を示します。

      #[flowVars['_agwUser']['mail']]
    • [Mule 4] 情報は ​authentication​ オブジェクトに保存されます。mail (メール) 項目が返されるとすると、その値には次の DataWeave 2.0 式を使用してアクセスできます。

      #[authentication.properties.userProperties.mail]
追加情報を使用してビジネスロジックをさらに調整できます。

Was this article helpful?

💙 Thanks for your feedback!