この章では、Service Busのクライアントおよびサービス間で認証および認可情報を交換するためのSecurity Assertion Markup Language (SAML)ポリシーを使用する方法について説明します。
SAMLは、WLS 9ポリシー・フレームワークまたはOracle Web Services Managerのいずれかで使用できます。「Oracle Web Services Managerを使用したOracle Service Busのセキュリティ」の説明に従って、Oracle Web Services Managerをサービス・セキュリティに使用することをお薦めします。
この章の内容は次のとおりです。
ビジネス・サービスでSAMLトークンが要求されるが、クライアントから提供されない場合は、クライアントのIDをSAMLトークンにマップするようにプロキシ・サービスを構成できます。
SAML資格証明マッピングを構成するには:
Service BusでサポートされるOracle Web Services Manager SAMLポリシーのリストは、「事前定義済ポリシーとサポートされないアサーション」を参照してください。
注意:
この項の手順では、プロキシからビジネス・サービスを呼び出すことを前提としています。ビジネス・サービスを呼び出す前にプロキシからプロキシを呼び出す環境を使用する場合、Service Busによるセキュリティ・ヘッダーの処理方法を理解すると役立ちます。詳細は、「ローカル・プロキシ・サービスでのOWSMセキュリティの使用」を参照してください。
クライアントがパススルー・プロキシ・サービスへのSAMLトークンを提供する場合は、クライアントのSAMLトークンをビジネス・サービスに伝播できます。
この方法では、ビジネス・サービスが、SAMLトークンを使用した認証を要求するポリシー文を持つWebサービスであることが必要です。
SAMLパススルーIDの伝播を構成するには:
プロキシ・サービス - 「パススルー・プロキシ・サービスの作成: 主な手順」の説明のとおり、パススルー・プロキシ・サービスを構成します。
ビジネス・サービス - 「ビジネス・サービスのメッセージ・レベルのセキュリティの構成:主な手順」の説明のとおり、SAMLトークンを使用する認証を要求するポリシー文でSOAP-HTTPまたはSOAP-JMSのビジネス・サービスを構成します。
アクティブな仲介プロキシ・サービスへのSAMLトークンがクライアントから提供される場合は、クライアントのIDアサーションを行うようにプロキシ・サービスを構成できます。
SAMLトークンを使用してクライアントを認証するようにプロキシ・サービスを構成するには:
SBトランスポートでSAMLベースの認証を使用する場合は、次の構成要件に従ってください。
アサーション側で、URI http://openuri.org/sb_proxy_uriを使用して、SAML資格証明マッパーを構成します。sb_proxy_uriは、SBトランスポート・サービスのURIです。
Service Bus側(リライイング・パーティ)でIDアサーション・プロバイダを構成する場合は、アサーション側の対象URLをプロキシのエンドポイントURIとして使用します。プロトコルおよびホスト情報は含めないでください。例: /sb_proxy_uri。
Oracle Web Services Managerは、アイデンティティ切替えの実行を可能にするwss11_saml_token_identity_switch_with_message_protection_client_policyを提供します。ビジネス・サービスに付加する対象のポリシーは、プロキシ・サービスから認証されたサブジェクトに基づくアイデンティティではなく、異なるアイデンティティを伝播します。ポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のアイデンティティ切替えのためのSAML Webサービス・クライアントの構成に関する項を参照してください。
ポリシー・プロパティsubject.precedence = falseに設定し、切替え先のアイデンティティの資格証明ストア形式(CSF)キーを提供した場合、ビジネス・サービスは現在のサブジェクトを無視し、csf-keyの資格証明でSAMLトークンを作成します。
subject.precedence = trueに設定した場合、現在のサブジェクトがSAMLトークンの作成に使用されます。ただし、サブジェクトが匿名の場合、Oracle Web Services Managerはアイデンティティ切替えの実行にcsf-keyを使用しようとします。
CSFの使用に関する詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』の資格証明ストア・フレームワークの開発に関する項を参照してください。
アイデンティティ切替え機能への不正なアクセスを防ぐため、アイデンティティ切替えを実行するリソースに特別な権限を付与する必要があります。たとえば、Service Busで、アイデンティティ切替えビジネス・サービスが含まれるプロジェクトに権限を付与します。
Fusion Middleware Controlを使用して、Service Busプロジェクトに適切な権限を付与します。この内容をガイダンスとして、権限フィールドに次の情報を入力します。
権限クラス: oracle.wsm.security.WSIdentityPermission
リソース名: ビジネス・サービスが含まれるService Busプロジェクトの名前(パスではない)
権限アクション: assert
質問: プロキシ・サービスのトランスポートIDを宛先のビジネス・サービスに伝播しようとすると、必ず、「Unable to add security token for identity
」というエラーが表示されます。これはどういう意味ですか。
回答: このエラーには様々な原因があります。通常、これは次のいずれかの問題を意味します。
SAML資格証明マッパーが正しく構成されていません。構成が、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のSAMLの構成に関する項の指示に準じていることを再確認してください。
このエラーで一般的なもう1つの原因は、伝播するサブジェクト情報がないことです。SAMLトークンを生成するには、トランスポート・レベルまたはメッセージ・レベルのサブジェクトが必要です。クライアントにサブジェクトがあるか確認してください。これを行うには、$security
メッセージ・コンテキスト変数を検査します。
質問: SAML holder-of-keyを使用して、プロキシ・サービスのトランスポートIDを宛先のビジネス・サービスに伝播しようとすると、必ず「Failure to add signature
」というエラーが表示されます。これはどういう意味ですか。
回答: このエラーには様々な原因がありますが、最も可能性が高いのは、ビジネス・サービスのサービス・キー・プロバイダに対して資格証明が構成されていないことです。Service Busは、アウトバウンドholder-of-keyアサーションを生成するときに、メッセージ・コンテンツに対するデジタル署名も生成します。これにより、受信者はメッセージが特定のユーザーから送信されたものであることのみではなく、そのメッセージが改ざんされていないことも確認できます。署名を生成するには、ビジネス・サービスは関連付けられたデジタル署名資格証明を持つサービス・キー・プロバイダを持つ必要があります。
質問: SAML IDトークンを受信するアクティブな仲介プロキシ・サービスを構成しようとすると、必ず「The SAML token is not valid
」のようなエラーが表示されます。どのように修正すればよいですか。
回答: この問題は通常、そのプロキシ・サービスに対してSAML IDアサーション・プロバイダまたはSAML IDアサーション・プロバイダのアサーション側構成がないことが原因です。プロキシ・サービスがアクティブな仲介モードでSAMLアサーションを受信するには、SAML IDアサーション・プロバイダが構成されている必要があります。詳細は、『Oracle WebLogic Serverセキュリティの管理』の SAML IDアサーション・プロバイダの構成に関する項を参照してください。