12 OpenSSO STSでWS-Trustを使用したSAMLベアラーの構成

ユース・ケースの説明、ソリューションのサマリー、関連するコンポーネントおよびリンクされたドキュメント・リソースを参照して、OpenSSO STSでWS-Trustを使用したSAMLベアラーを構成できます。

ユース・ケース

OpenSSO STSでWS-Trustを使用して、SAMLベアラーを構成します。

解決策

WS-Trustポリシーを使用してメッセージ保護付きでOracle Web Services Manager (OWSM) SAMLベアラーをWebサービスとクライアントにアタッチし、OpenSSO STSを構成します。

コンポーネント
  • Oracle WebLogic Server

  • Oracle Web Services Manager(OWSM)

  • OpenSSO STS

  • 保護するWebサービスおよびクライアント・アプリケーション

Oracle Web Services Managerのその他のリソース

このユース・ケースは、次の操作に必要なステップを示します。

  • 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コンポジット・クライアントで構成されます。

このユース・ケースの実装方法の詳細は、「ユース・ケース: WS-TrustとOpenSSO STSを使用したSAMLベアラーの実装」を参照してください。

12.1 ユース・ケース: WS-TrustとOpenSSO STSを使用したSAMLベアラーの実装

ユース・ケースを実装するには、OpenSSO STSを構成し、次にOpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAMLベアラーを実装します。

12.1.1 SAMLベアラーを実装するためのOpenSSO STSの構成

OpenSSO STSでWS-Trustを使用したSAMLベアラーのユース・ケースを実装するには、最初にOpenSSO STSを構成します。

OpenSSO STSを構成するには:

  1. OpenSSO STSインスタンスにログインします。

  2. 「構成」→「グローバル」→「セキュリティ・トークン・サービス」に移動します。

  3. 「セキュリティ」→セキュリティ・メカニズム→STSサービスによって受け入れられるセキュリティ・トークンで、すべてのオプションを有効にします。

  4. ユーザー・トークンの資格証明セクションで、必要に応じてユーザー名とパスワードを設定して、トークンの新しい資格証明を追加します。

    この例の場合、ユーザー名とパスワードをpasswordに設定します。

  5. On Behalf ofトークン・セクションで、「On Behalf ofトークンの認証チェーン」ドロップダウンリストから「ldapService」eを選択します。

  6. 「署名」セクションで、次のオプションを有効にします。

    - リクエストの署名は検証済

    - レスポンスの署名は有効(「本文」および「タイムスタンプ」を選択します)

  7. 「暗号化」セクションで、次のオプションを有効にします。

    - 「リクエストは復号化されているか」(「本文」および「ヘッダー」を選択します)

    - レスポンスは暗号化されているか

  8. 「暗号化アルゴリズム」ドロップダウン・リストから「AES」を選択し、暗号化強度ドロップダウン・リストから128を選択します。

  9. メッセージ保護要求者トークンとともにWS-Security 1.1 Kerberosトークンをサポートするには、「Kerberosの構成」セクションで次の値を構成します。

    • Kerberosドメイン・サーバー

      ドメイン・サーバーの完全修飾ホスト名。

    • Kerberosドメイン

      ドメイン名。

    • Kerberosサービス・プリンシパル

      サービス・プリンシパル名(<ホスト>/<マシン名>@<REALM NAME>の形式)

    • Kerberosキー・タブ・ファイル

      STS用に作成されたキー・タブ・ファイルの場所。

    • Kerberos署名を検証する

      JDK6が使用されている場合にのみ有効です。

  10. SSLをサポートするには、次のステップを実行します。

    1. トークン発行属性セクションで、OpenSSOインスタンスに基づいてSSLエンドポイントを編集します。

    2. 「署名」で、トランスポートがSSLにより保護されている場合に署名の検証を無効にするオプションを有効にします。

    3. 「暗号化」で、トランスポートがSSLにより保護されている場合に復号化を無効にするオプションを有効にします。

  11. OpenSSO STSをホストするサーバー上でSSLをサポートするには:

    OpenSSO STSをホストするWebLogic Serverで、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』SSLのキーストアの構成に関する項で説明するステップを実行します。

    Open SSO STSをホストするGlassfishサーバーの場合は、次のステップを実行します。

    1. 次のコマンドを発行することによりアプリケーション・サーバーのための新しいキー・ペアを生成します。

      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

      氏名の入力を求めるプロンプトが表示されたら、証明書を生成する対象のマシンのホスト名を入力します。他のプロンプトで、該当する詳細を入力します。

    2. 次のコマンドを発行することにより証明書署名リクエスト(CSR)を生成します。

      keytool -certreq -alias owsm -file owsm.csr -keystore keystore.jks -storepass changeit

      有効な証明書を取得するために、生成後にowsm.csrファイルに書き込まれたリクエストを認証局に送信する必要があります。たとえば、OpenSSO QAチームによって維持されている証明書管理サーバー(https://mahogany.red.iplanet.com)に送信します。

    3. 証明書管理サーバー(https://mahogany.red.iplanet.com)にアクセスし、左側のペインでSSLサーバーをクリックし、.csrファイルの「BEGIN CERTIFICATE REQUEST」から「END CERTIFICATE REQUEST」までの内容をPKCS # 10リクエスト・フィールドに貼り付けます。

      必要に応じてその他のフィールドに入力し、リクエストを送信します。リクエストが承認されると、同じページの取得タブから証明書を取得できます。

    4. 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」を入力します。

    5. 認証局のSSL証明書にアクセスします。https://mahogany.red.iplanet.comにアクセスし、SSLサーバー→取得タブ→証明書のリスト→「検索」に移動します。ページの最初の「詳細」ボタンをクリックし、BASE64でエンコードされた証明書を別の.certファイルにコピーします例: mahogany.cert

    6. 次のコマンドを使用して、この証明書を別名rootcaとして<glassfish_install_dir>/domains/<sts_deploy_domain>/config/cacerts.jksファイルにインポートします。

      keytool -import -v -alias rootca -file mahogany.cert -keystore cacerts.jks -storepass changeit

    7. クライアント側のtruststore.jksファイルについても、前述のステップを繰り返すことが必要になる場合があります。該当ファイルから既存のrootca別名を削除し、前述のように新たにインポートします(キーストア・ファイルの場所を変更します)。

    8. 新しい証明書を使用してGlassFishを構成するには、http://hostname:admin-port/で管理コンソールにアクセスし、「構成」→HTTPサービス→http-listener2 (デフォルトのSSL有効ポート)→「SSL」に移動して、証明書のニックネームをs1as (自己署名証明書)からowsmに変更します。

    9. Glassfishを再起動します。

12.1.2 OpenSSO STSでWS-Trustを使用したメッセージ保護付きSAMLベアラーの構成

OpenSSO STSを構成したら、OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAMLベアラーを構成します。

OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAMLベアラーを構成するには:
  1. 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> (オプション)

  2. 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を使用した単一サブジェクトへのポリシーの直接アタッチに関する項を参照してください。

  3. 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、パスワードpasswordです。ただし、X509要求者トークンでは設定する必要はありません。

    ポリシーをアタッチする場合のクライアント構成プロパティのオーバーライドの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』Fusion Middleware Controlを使用したWebサービス・クライアントへのポリシーの直接アタッチに関する項を参照してください。