Security Assertion Markup Language (SAML)は、オンライン・ビジネス・パートナ間で認証および認可情報を交換するためのフレームワークを定義します。Oracle Service Busでは、SAMLを使用するために次の方法が可能です。
ビジネス・サービスでSAMLトークンが要求されるが、クライアントから提供されない場合は、クライアントのIDをSAMLトークンにマップするようにプロキシ・サービスを構成できます。53.1項「SAML資格証明マッピングの構成:主な手順」を参照してください。
クライアントがパススルー・プロキシ・サービスへのSAMLトークンを提供する場合は、クライアントのSAMLトークンをビジネス・サービスに伝播できます。53.2項「SAMLパススルーIDの伝播の構成」を参照してください。
アクティブな仲介プロキシ・サービスへのSAMLトークンがクライアントから提供される場合は、クライアントのIDアサーションを行うようにプロキシ・サービスを構成できます。53.3項「プロキシ・サービス・リクエストでのSAMLトークンの認証」を参照してください。
SAMLの概要については、次のURLのOASISにある技術概要を参照してください。
http://www.oasis-open.org/committees/download.php/6837/sstc-saml-tech-overview-1.1-cd.pdf
SAML仕様のドキュメント一式は次のURLから入手できます。
http://www.oasis-open.org/committees/download.php/3400/oasis-sstc-saml-1.1-pdf-xsd.zip
ビジネス・サービスでSAMLトークンが要求されるが、クライアントから提供されない場合は、クライアントのIDをSAMLトークンにマップするようにプロキシ・サービスを構成できます。
この方法では、ビジネス・サービスが、SAMLトークンを使用した認証を要求するWS-Policy文を持つWebサービスであることが必要です。
SAML資格証明マッピングを構成するには
Oracle Service Busおよびビジネス・サービスで表すシステム(メッセージ・コンシューマ)間の信頼関係を構成します。
メッセージ・コンシューマはリライイング・パーティとして動作し、Oracle Service Busとの信頼関係を持つ必要があります。
『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「ドメイン間セキュリティ・サポートの重要事項」を参照してください。
SAMLプロバイダを構成します。
Oracle Web Services Managerポリシーの場合: 『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「SAMLの構成」(WSSEC2376)を参照してください。
WLS 9.2ポリシーの場合: WebLogic SAML IDアサーション・プロバイダV2とWebLogic SAML資格証明マッピング・プロバイダV2を各自のセキュリティ・ドメインで構成します。『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「SAML IDアサーション・プロバイダの構成」および「SAML資格証明マッピング・プロバイダの構成」を参照してください。
次のいずれかの方法を使用してクライアントを認証するようにプロキシ・サービスを構成します。
HTTPまたはHTTPS基本認証(クライアントがリクエスト内でユーザー名とパスワードを提供)
HTTPSクライアント証明書
メッセージ・レベルの認証(サポートされるトークン・プロファイルのいずれかを使用)
クライアント・リクエストにWS-Securityセキュリティ・ヘッダーが含まれる場合は、メッセージのプロキシ・サービス側でこのヘッダーを処理するようにプロキシ・サービスを構成する必要があります。Oracle Service Busでは、すでにWS-Securityヘッダーが含まれるSOAPエンベロープにSAMLヘッダー(または他のWS-Securityヘッダー)を追加したり、既存のセキュリティ・ヘッダーにSAML (または他の)セキュリティ・トークンを追加したりすることはできません。
サード・パーティ認証
アウトバウンド・リクエストのWS-SecurityヘッダーにSAMLトークンを含めるようにプロキシ・サービスを構成します。
注意: 動的なルーティング用にプロキシ・サービスを構成した場合、メッセージ・コンテキストによってリクエストのターゲットURLが決まります。アサーションが署名されている場合、証明書を構成する必要があります。 |
プロキシ・サービスは、アウトバウンド・リクエストを送信するときに、クライアントにかわってSAMLアサーションを生成します。ビジネス・サービスは、WS-Securityヘッダーを処理するときに、SAMLアサーションの検証、そのSAMLアサーションのIDに対するセキュリティ・コンテキストの作成、およびこのセキュリティ・コンテキストを使用したWebサービスの呼出しを行います。
クライアントがパススルー・プロキシ・サービスへのSAMLトークンを提供する場合は、クライアントのSAMLトークンをビジネス・サービスに伝播できます。
この方法では、ビジネス・サービスが、SAMLトークンを使用した認証を要求するWS-Policy文を持つWebサービスであることが必要です。
SAMLパススルーIDの伝播を構成するには
Oracle Service Busとバックエンド・サービス間の信頼関係を構成します。
『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「ドメイン間セキュリティ・サポートの重要事項」を参照してください。
SAMLの依存側として動作するバックエンド・サービスを構成します。
Oracle Web Services Managerポリシーの場合: 『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「SAMLポリシーのためのOracle Platform Security Services (OPSS)の構成」を参照してください。
WLS 9.2ポリシーの場合: 『Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・オンライン・ヘルプ』の「SAMLの依存側の作成」を参照してください。
パススルー・プロキシ・サービスを構成します。
52.3.2項「パススルー・プロキシ・サービスの作成:主な手順」を参照してください。
SAMLトークンを使用した認証を要求するWS-Policy文でSOAP-HTTPまたはSOAP-JMSビジネス・サービスを構成します。
アクティブな仲介プロキシ・サービスへのSAMLトークンがクライアントから提供される場合は、クライアントのIDアサーションを行うようにプロキシ・サービスを構成できます。
SAMLトークンを使用してクライアントを認証するようにプロキシ・サービスを構成するには
クライアント・ソフトウェアとOracle Service Bus間の信頼関係を構成します。
Oracle Service Busは、クライアントによって、またはクライアントのかわりに発行されたSAMLアサーションを信頼します。
『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「ドメイン間セキュリティ・サポートの重要事項」を参照してください。
SAMLを構成します。
Oracle Web Services Managerポリシーの場合: 『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「SAMLの構成」(WSSEC2376)を参照してください。
WLS 9.2ポリシーの場合: WebLogic SAML IDアサーション・プロバイダV2を構成して、クライアントのSAML認証局によって発行されたトークンを検証します。『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「SAML IDアサーション・プロバイダの構成」を参照してください。
IDアサーション・プロバイダの構成時は、次の要件に注意してください。
ポリシーの確認方法がSAMLアサーション側のSAMLプロファイルと一致する必要があります。
アサーション側の対象URLをプロキシの相対URLとして指定します(プロトコルとホスト情報は含めません)。
署名されたアサーションの場合は、IDアサーション・プロバイダ・レジストリに証明書を追加します。
SAML資格証明マッピング・プロバイダを構成します。
Oracle Web Services Managerポリシーの場合: 『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「SAMLの構成」(WSSEC2376)を参照してください。
WLS 9.2ポリシーの場合: セキュリティ・ドメインでWebLogic SAML ID資格証明マッピング・プロバイダV2を構成します。『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「SAML資格証明マッピング・プロバイダの構成」を参照してください。
HTTP、HTTPS、またはJMSプロトコル経由で通信するアクティブな仲介プロキシ・サービスを作成します。プロキシ・サービスは、認証を要求し、SAMLトークンを受け取るWS-Policy文を持つWebサービスであることが必要です。
「ローカルな」トランスポート・タイプで通信するプロキシ・サービスは、SAMLトークン・プロファイルを使用して認証を行うことはできません。
SBトランスポートでSAMLベースの認証を使用する場合は、以下の構成要件に従ってください。
アサーション側で、URI http://openuri.org/
<OSBProxyServiceURI>
を使用して、SAML資格証明マッパーを構成します。<OSBProxyServiceURI>
は、SBトランスポート・サービスのURIです。
Oracle Service Bus側(依存側)でIDアサーション・プロバイダを構成する場合は、アサーション側の対象URLをプロキシのエンドポイントURIとして使用します。プロトコルおよびホスト情報は含めないでください。例: /
<OSBProxyServiceURL>
。
質問: プロキシ・サービスのトランスポートIDを宛先のビジネス・サービスに伝播しようとすると、必ず、「Unable to add security token for identity
」というエラーが表示されます。これはどういう意味ですか。
回答: このエラーには様々な原因があります。通常、これは次のいずれかの問題を意味します。
SAML資格証明マッパーが正しく構成されていません。構成が以下の指示どおりになっているか再確認してください。
Oracle Web Services Managerポリシーの場合: 『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の「SAMLの構成」(WSSEC2376)を参照してください。
WLS 9.2ポリシーの場合: 『Oracle Fusion Middleware Oracle WebLogic Serverの保護』の「SAML資格証明マッピング・プロバイダの構成」。
このエラーで一般的なもう1つの原因は、伝播するサブジェクト情報がないことです。SAMLトークンを生成するには、トランスポート・レベルまたはメッセージ・レベルのサブジェクトが必要です。クライアントにサブジェクトがあるか確認してください。これを行うには、$security
メッセージ・コンテキスト変数を検査します。
質問: 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アサーション・プロバイダの構成」を参照してください。