ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11gリリース1 (11.1.1.6.2)
B61435-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

53 Oracle Service BusでのSAMLの使用

この章では、Oracle Service Bus (OSB)のクライアントおよびサービス間で認証および認可情報を交換するためのSecurity Assertion Markup Language (SAML)ポリシーを使用する方法について説明します。

SAMLは、WLS 9ポリシー・フレームワークまたはOracle Web Services Managerのいずれかで使用できます。第50章「Oracle Web Services Managerを使用したOracle Service Busのセキュリティ」の説明に従って、Oracle Web Services Managerをサービス・セキュリティに使用することをお薦めします。

SAMLを使用する環境の設定の詳細な手順については、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のSAMLの構成に関する項と、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』のSAMLの構成のトピックを参照してください。これらのガイドにあるSAMLの構成手順は、Oracle Service BusでSAMLを使用するための前提条件です。

この章では、以下のトピックについて説明します。

53.1 IDのSAMLトークンへのマッピング

ビジネス・サービスでSAMLトークンが要求されるが、クライアントから提供されない場合は、クライアントのIDをSAMLトークンにマップするようにプロキシ・サービスを構成できます。

この方法では、ビジネス・サービスが、SAMLトークンを使用した認証を要求するWS-Policy文を持つWebサービスであることが必要です。

SAML資格証明マッピングを構成するには

  1. 次のいずれかの方法を使用してクライアントを認証するようにプロキシ・サービスを構成します。

    • HTTPまたはHTTPS基本認証(クライアントがリクエスト内でユーザー名とパスワードを提供)

    • HTTPSクライアント証明書

    • メッセージ・レベルの認証(サポートされるトークン・プロファイルのいずれかを使用)

      クライアント・リクエストにWS-Securityセキュリティ・ヘッダーが含まれる場合は、メッセージのプロキシ・サービス側でこのヘッダーを処理するようにプロキシ・サービスを構成する必要があります。Oracle Service Busでは、すでにWS-Securityヘッダーが含まれるSOAPエンベロープにSAMLヘッダー(または他のWS-Securityヘッダー)を追加したり、既存のセキュリティ・ヘッダーにSAML (または他の)セキュリティ・トークンを追加したりすることはできません。

    • サード・パーティ認証

    プロキシ・サービスがユーザーを認証する場合、プロキシでは、ビジネス・サービスにメッセージを転送する前にサブジェクトが自動的に生成されます。

  2. SAMLクライアント・ポリシーを含むようにビジネス・サービスを構成します。ポリシーによって、認証済ユーザーのためのSAMLトークンがサブジェクトに生成されます。

Oracle Service BusでサポートされるOracle Web Services Manager SAMLポリシーのリストは、50.2.8項「サポートされるシード・ポリシーとサポートされないアサーション」を参照してください。


注意:

この項の手順では、プロキシからビジネス・サービスを呼び出すことを前提としています。ビジネス・サービスを呼び出す前にプロキシからプロキシを呼び出す環境を使用する場合、Oracle Service Busによるセキュリティ・ヘッダーの処理方法を理解すると役立ちます。この詳細は、31.5項「ローカル・プロキシでのOWSMセキュリティの使用」を参照してください。


53.2 SAMLパススルーIDの伝播の構成

クライアントがパススルー・プロキシ・サービスへのSAMLトークンを提供する場合は、クライアントのSAMLトークンをビジネス・サービスに伝播できます。

この方法では、ビジネス・サービスが、SAMLトークンを使用した認証を要求するポリシー文を持つWebサービスであることが必要です。

SAMLパススルーIDの伝播を構成するには

53.3 プロキシ・サービス・リクエストでのSAMLトークンの認証

アクティブな仲介プロキシ・サービスへのSAMLトークンがクライアントから提供される場合は、クライアントのIDアサーションを行うようにプロキシ・サービスを構成できます。

SAMLトークンを使用してクライアントを認証するようにプロキシ・サービスを構成するには

  1. IDアサーション・プロバイダの構成時は、次の要件に注意してください。

    • ポリシーの確認方法がSAMLアサーション側のSAMLプロファイルと一致する必要があります。

    • アサーション側のターゲットURLをプロキシ・サービスの相対URLとして指定します(プロトコルとホスト情報は省略します)。

    • 署名されたアサーションの場合は、IDアサーション・プロバイダ・レジストリに証明書を追加します。

  2. HTTP、HTTPS、またはJMSプロトコル経由で通信するアクティブな仲介プロキシ・サービスを作成します。プロキシ・サービスは、認証を要求し、SAMLトークンを受け取るポリシー文を持つWebサービスであることが必要です。

    「ローカルな」トランスポート・タイプで通信するプロキシ・サービスは、SAMLトークン・プロファイルを使用して認証を行うことはできません。

53.4 サービス・バス(SB)トランスポートを使用したSAML認証の構成

SBトランスポートでSAMLベースの認証を使用する場合は、以下の構成要件に従ってください。

53.5 SAMLのアイデンティティ切替えの使用

Oracle Web Services Managerは、アイデンティティ切替えの実行を可能にするwss11_saml_token_identity_switch_with_message_protection_client_policyを提供します。ビジネス・サービスにアタッチする対象のポリシーは、プロキシ・サービスから認証されたサブジェクトに基づくアイデンティティではなく、異なるアイデンティティを伝播します。ポリシーの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のアイデンティティ切替えのためのSAML Webサービス・クライアントの構成に関する項を参照してください。

ポリシー・プロパティsubject.precedence = falseに設定し、切替え先のアイデンティティの資格証明ストア形式(CSF)キーを提供した場合、ビジネス・サービスは現在のサブジェクトを無視し、csf-keyの資格証明でSAMLトークンを作成します。

subject.precedence = trueに設定した場合、現在のサブジェクトがSAMLトークンの作成に使用されます。ただし、サブジェクトが匿名の場合、Oracle Web Services Managerはアイデンティティ切替えの実行にcsf-keyを使用しようとします。

CSFの操作の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』のCSFによるアプリケーション開発の概要に関する項を参照してください。

53.5.1 アイデンティティ切替えリソースの保護

アイデンティティ切替え機能への不正なアクセスを防ぐため、アイデンティティ切替えを実行するリソースに特別な権限を付与する必要があります。たとえば、Oracle Service Busで、アイデンティティ切替えビジネス・サービスが含まれるプロジェクトに権限を付与します。

Oracle Service Busプロジェクトに適切な権限を付与するには、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWSIdentityPermission権限の設定に関する項の説明のとおり、Oracle Enterprise Manager Fusion Middleware Controlを使用します。このトピックをガイダンスとして、権限フィールドに次の情報を入力します。

  • 権限クラス - oracle.wsm.security.WSIdentityPermission

  • リソース名 - ビジネス・サービスが含まれるOracle Service Busプロジェクトの名前(パスではない)

  • 権限アクション - assert

53.6 Oracle Service BusにおけるSAMLのトラブルシューティング

質問: プロキシ・サービスのトランスポートIDを宛先のビジネス・サービスに伝播しようとすると、必ず、「Unable to add security token for identity」というエラーが表示されます。これはどういう意味ですか。

回答: このエラーには様々な原因があります。通常、これは次のいずれかの問題を意味します。

質問: SAML holder-of-keyを使用して、プロキシ・サービスのトランスポートIDを宛先のビジネス・サービスに伝播しようとすると、必ず「Failure to add signature」というエラーが表示されます。これはどういう意味ですか。

回答: このエラーには様々な原因がありますが、最も可能性が高いのは、ビジネス・サービスのサービス・キー・プロバイダに対して資格証明が構成されていないことです。Oracle Service Busは、アウトバウンドholder-of-keyアサーションを生成するときに、メッセージ・コンテンツに対するデジタル署名も生成します。これにより、受信者はメッセージが特定のユーザーから送信されたものであることだけではなく、そのメッセージが改ざんされていないことを確認できます。署名を生成するには、ビジネス・サービスは関連付けられたデジタル署名資格証明を持つサービス・キー・プロバイダを持つ必要があります。

質問: SAML IDトークンを受信するアクティブな仲介プロキシ・サービスを構成しようとすると、必ず「The SAML token is not valid」のようなエラーが表示されます。どのように修正すればよいですか。

回答: この問題は通常、そのプロキシ・サービスに対してSAML IDアサーション・プロバイダまたはSAML IDアサーション・プロバイダのアサーション側構成がないことが原因です。プロキシ・サービスがアクティブな仲介モードでSAMLアサーションを受信するには、SAML IDアサーション・プロバイダが構成されている必要があります。詳細については、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』のSAML IDアサーション・プロバイダの構成に関する項を参照してください。