Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護のユース・ケース 12c (12.2.1) E72707-01 |
|
前 |
この章では、OpenSSO STSでWS-Trustを使用したSAMLベアラーの構成方法について説明します。
この章には、次のセクションがあります。
ユース・ケース・サマリーは、この章の情報が自分のニーズに合致するかどうかを迅速に判断するのに役立ちます。
次の表は、ユース・ケースの目標、ソリューションおよびコンポーネントをまとめたものです。必要なドキュメントへのリンクも提供されます。
ユース・ケース | OpenSSO STSでWS-Trustを使用して、SAMLベアラーを構成します。 |
解決策 | WS-Trustポリシーを使用してメッセージ保護付きでOracle Web Services Manager (OWSM) SAMLベアラーをWebサービスとクライアントにアタッチし、OpenSSO STSを構成します。 |
コンポーネント |
|
このユース・ケースは、次の操作に必要な手順を示します。
OpenSSO STSでWS-Trustを使用してメッセージ・レベルの保護付きでSAMLベアラーを実行するため、適切なOWSMセキュリティ・ポリシーをアタッチします。
WS-Trust 1.3仕様は、セキュリティ・トークンのリクエストおよび発行を行う際の枠組みを提供するWS-Securityへの拡張機能と、ブローカ・トラスト関係への拡張機能を定義します。WS-Trust拡張機能は、セキュリティ・トークンの発行、更新および検証を行う方法を提供しています。Webサービス・クライアントとWebサービスとの間の通信を保護するには、両者がセキュリティ資格証明を交換する必要があります。WS-Trust仕様で定義されているように、これらの資格証明は、信頼ブローカとして機能する信頼できるセキュリティ・トークン・サービス(STS)から取得できます。つまり、Webサービス・クライアントおよびWebサービスは、明示的に相互に信頼し合っていませんが、両方がSTSを信頼しているため、暗黙的に相互に信頼し合っています。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスWS-Trustの概要に関する項を参照してください。
特に、次のポリシーをクライアントおよびサービスにそれぞれアタッチします。
oracle/ws11_sts_issued_saml_bearer_token_over_ssl_client_policy
oracle/wss11_sts_issued_saml_bearer_token_over_ssl_service_policy
およびoracle/sts_trust_config_service_policy
OpenSSO STSを構成します。
このユース・ケースは、Java EE WebサービスおよびSOAコンポジット・クライアントで構成されます。
このユース・ケースは、OpenSSO STSでWS-Trustを使用したメッセージ保護付きのSAMLベアラーを実装する次のタスクについて説明します。
OpenSSO STSを構成するには
OpenSSO STSインスタンスにログインします。
「構成」→「グローバル」→「セキュリティ・トークン・サービス」に移動します。
「セキュリティ」→セキュリティ・メカニズム→STSサービスによって受け入れられるセキュリティ・トークンで、すべてのオプションを有効にします。
ユーザー・トークンの資格証明セクションで、必要に応じてユーザー名とパスワードを設定して、トークンの新しい資格証明を追加します。
この例の場合、ユーザー名とパスワードをtestに設定します。
On Behalf ofトークン・セクションで、「On Behalf ofトークンの認証チェーン」ドロップダウンリストから「ldapService」eを選択します。
「署名」セクションで、次のオプションを有効にします。
- リクエストの署名は検証済
- レスポンスの署名は有効(「本文」および「タイムスタンプ」を選択します)
「暗号化」セクションで、次のオプションを有効にします。
- 「リクエストは復号化されているか」(「本文」および「ヘッダー」を選択します)
- レスポンスは暗号化されているか
「暗号化アルゴリズム」ドロップダウン・リストから「AES」を選択し、暗号化強度ドロップダウン・リストから128を選択します。
メッセージ保護要求者トークンとともにWS-Security 1.1 Kerberosトークンをサポートするには、「Kerberosの構成」セクションで次の値を構成します。
SSLをサポートするには、次の手順を実行します。
トークン発行属性セクションで、OpenSSOインスタンスに基づいてSSLエンドポイントを編集します。
「署名」で、トランスポートがSSLにより保護されている場合に署名の検証を無効にするオプションを有効にします。
「暗号化」で、トランスポートがSSLにより保護されている場合に復号化を無効にするオプションを有効にします。
OpenSSO STSをホストするサーバー上でSSLをサポートするには:
OpenSSO STSをホストするWebLogic Serverで、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のSSLのキーストアの構成に関する項で説明する手順を実行します。
Open SSO STSをホストするGlassfishサーバーの場合は、次の手順を実行します。
次のコマンドを発行することによりアプリケーション・サーバーのための新しい鍵ペアを生成します。
keytool -genkey -keyalg <algorithm for generating the key pair> -keystore keystore.jks -validity <days> -alias <alias_name>
次に例を示します。
keytool -genkey -keyalg RSA -keystore <glassfish_install_dir>/domains/<sts_deploy_domain>/config/keystore.jks -validity 365 -alias owsm
氏名の入力を求めるプロンプトが表示されたら、証明書を生成する対象のマシンのホスト名を入力します。他のプロンプトで、該当する詳細を入力します。
次のコマンドを発行することにより証明書署名リクエスト(CSR)を生成します。
keytool -certreq -alias owsm -file owsm.csr -keystore keystore.jks -storepass changeit
有効な証明書を取得するために、生成後にowsm.csr
ファイルに書き込まれたリクエストを認証局に送信する必要があります。たとえば、OpenSSO QAチームによって維持されている証明書管理サーバー(https://mahogany.red.iplanet.com
)に送信します。
証明書管理サーバー(https://mahogany.red.iplanet.com
)にアクセスし、左側のペインでSSLサーバーをクリックし、.csr
ファイルの「BEGIN CERTIFICATE REQUEST
」から「END CERTIFICATE REQUEST
」までの内容をPKCS # 10リクエスト・フィールドに貼り付けます。
必要に応じてその他のフィールドに入力し、リクエストを送信します。リクエストが承認されると、同じページの取得タブから証明書を取得できます。
BEGIN CERTIFICATE
からEND CERTIFICATE
の証明書の内容(PKCS # 7形式)を.cert
拡張子のファイルにコピーし、次のkeytoolコマンドを使用することによりサーバー証明書を<glassfish_install_dir>/domains/<sts_deploy_domain>/config/keystore.jks
ファイルにインポートします。
keytool -import -v -alias owsm -file owsm.cert -keystore keystore.jks -storepass changeit
証明書を信頼する場合は、プロンプトが表示されたら「YES」を入力します。
認証局のSSL証明書にアクセスします。https://mahogany.red.iplanet.com
にアクセスし、SSLサーバー→取得タブ→証明書のリスト→「検索」に移動します。ページの最初の「詳細」ボタンをクリックし、BASE64でエンコードされた証明書を別の.cert
ファイルにコピーします例: mahogany.cert
次のコマンドを使用して、この証明書を別名rootca
として<glassfish_install_dir>/domains/<sts_deploy_domain>/config/cacerts.jks
ファイルにインポートします。
keytool -import -v -alias rootca -file mahogany.cert -keystore cacerts.jks -storepass changeit
クライアント側のtruststore.jks
ファイルについても、前述の手順を繰り返すことが必要になる場合があります。該当ファイルから既存のrootca
別名を削除し、前述のように新たにインポートします(キーストア・ファイルの場所を変更します)。
新しい証明書を使用してGlassFishを構成するには、http://hostname:admin-port/
で管理コンソールにアクセスし、「構成」→HTTPサービス→http-listener2 (デフォルトのSSL有効ポート)→「SSL」に移動して、証明書のニックネームをs1as
(自己署名証明書)からowsm
に変更します。
Glassfishを再起動します。
OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAMLベアラーを構成するには:
STSサービス・ポリシーを構成します。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のSTS用の自動ポリシー構成の設定に関する項を参照してください。
後述するように、oracle/sts_trust_config_service_policy
をコピーし、要求者トークン・タイプに基づいてポリシー構成を編集します。
メッセージ保護要求者トークンでWS-Security 1.0ユーザー名トークンをサポートするには:
orasp:port-uri="http://
<host>:<port>
/openssosts/sts/wss10un"
orasp:wsdl-uri="http://
<host>:<port>
/openssosts/sts/wss10un?wsdl"
(オプション)
メッセージ保護要求者トークンでSSL経由でWS-Security 1.0ユーザー名トークンをサポートするには:
orasp:port-uri="https://
<host>:<sslport>
/openssosts/sts/tlswss10un"
orasp:wsdl-uri="https://
<host>:<sslport>
/openssosts/sts/tlswss10un?wsdl"
(オプション)
メッセージ保護要求者トークンでWS-Security 1.0 X509トークンをサポートするには:
orasp:port-uri="http://
<host>:<port>
/openssosts/sts/wss10x509"
orasp:wsdl-uri="http://
<host>:<port>
/openssosts/sts/wss10x509?wsdl"
(オプション)
メッセージ保護要求者トークンでWS-Security 1.1 Kerberosトークンをサポートするには:
orasp:port-uri="http://
<host>:<port>
/openssosts/sts/wss11kerberos"
orasp:wsdl-uri="http://
<host>:<port>
(オプション)
Webサービスを構成します。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の自動ポリシー構成のWebサービスの構成に関する項を参照してください。
手順1で作成したポリシー、その後でoracle/wss11_sts_issued_saml_bearer_token_over_ssl_service_policy
をアタッチします。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のFusion Middleware Controlを使用した単一サブジェクトへのポリシーの直接アタッチに関する項を参照してください。
Webサービス・クライアントを構成します。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の自動ポリシー構成のWebサービス・クライアントの構成に関する項を参照してください。
SOAコンポジット・クライアントにoracle/ws11_sts_issued_saml_bearer_token_over_ssl_client_policy
ポリシーをアタッチし、要求者トークンの必要に応じて、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のoracle/ws11_sts_issued_saml_bearer_token_over_ssl_client_templateに記載されているクライアント構成プロパティをオーバーライドします。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のFusion Middleware Controlを使用した単一サブジェクトへのポリシーの直接アタッチに関する項を参照してください。
sts.auth.user.csf.key
には、デフォルトのOpenSSO STS構成で使用可能なユーザー資格証明を設定する必要があります。つまり、ユーザー名test
、パスワードtest
です。ただし、X509要求者トークンでは設定する必要はありません。
ポリシーをアタッチする場合のクライアント構成プロパティのオーバーライドの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のFusion Middleware Controlを使用したWebサービス・クライアントへのポリシーの直接アタッチに関する項を参照してください。
この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。
Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
Oracle Web Services Managerの理解
http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
のkeytool
Javadoc