プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護のユース・ケース
12c (12.2.1)
E72707-01
  目次へ移動
目次

前
 
次
 

7 OpenSSO STSでのWS-Trustを使用したSAML HOKの構成

この章では、OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAML鍵所有者(HOK)を構成する方法について説明します。

この章には、次のセクションがあります。

7.1 ユース・ケース・サマリー

ユース・ケース・サマリーは、この章の情報が自分のニーズに合致するかどうかを迅速に判断するのに役立ちます。

次の表は、ユース・ケースの目標、ソリューションおよびコンポーネントをまとめたものです。必要なドキュメントへのリンクも提供されます。

ユース・ケース OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAML鍵所有者(HOK)を構成します。
解決策 WS-Trustポリシーを使用してメッセージ保護付きでOracle Web Services Manager (OWSM) SAML HOKをWebサービスおよびクライアントにアタッチし、OpenSSO STSを構成します。
コンポーネント
  • Oracle WebLogic Server
  • Oracle Web Services Manager(OWSM)

  • OpenSSO STS

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


7.2 ユース・ケースの概要

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

  • OpenSSO STSでWS-Trustを使用してメッセージ・レベルの保護付きでSAML HOKを実行するため、適切な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/wss11_sts_issued_saml_hok_with_message_protection_client_policy

    • oracle/wss11_sts_issued_saml_hok_with_message_protection_service_policyおよびoracle/sts_trust_config_service_policy

  • OpenSSO STSを構成します。

このユース・ケースは、Java EE WebサービスおよびSOAコンポジット・クライアントで構成されます。

7.3 ユース・ケースの実装

このユース・ケースでは、OpenSSO STSでWS-Trustを使用してSAML HOKメッセージ保護を実装する次のタスクについて説明します。

7.3.1 タスク1: OpenSSO STSの構成

OpenSSO STSを構成するには

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    表7-1 メッセージ保護構成を含むOpenSSO STS 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を再起動します。

7.3.2 タスク2: OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAML鍵所有者を構成

OpenSSO STSでWS-Trustを使用してメッセージ保護付きでSAML鍵所有者を構成するには:

  1. STSサービス・ポリシーを構成します。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の自動ポリシー構成のポリシーの構成に関する項を参照してください。

    後述するように、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_hok_with_message_protection_service_policyをJava EE Webサービスにアタッチします。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のFusion Middleware Controlを使用した単一サブジェクトへのポリシーの直接アタッチに関する項を参照してください。


    注意:

    デフォルトでは、oracle/wss11_sts_issued_saml_hok_with_message_protection_service_policyポリシーはトークン・タイプSAML 1.1により構成されています。トークン・タイプをSAML 2.0に構成する場合、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のWebサービス・ポリシーのクローニングに関する項の説明に従って、ポリシーをコピーして編集する必要があります。(この値はクライアント・ポリシーに一致する必要があります。)

  3. Webサービス・クライアント・ポリシーを構成します。完全な手順は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の自動ポリシー構成のWebサービス・クライアントの構成に関する項を参照してください。

    SOAコンポジット・クライアントにoracle/wss11_sts_issued_saml_hok_with_message_protection_client_policyポリシーをアタッチし、要求者トークンの必要に応じて、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のoracle/ws11_sts_issued_saml_hok_with_message_protection_client_templateに関する項に記載されているクライアント構成プロパティをオーバーライドします。

    sts.auth.user.csf.keyには、デフォルトのOpenSSO STS構成で使用可能なユーザー資格証明を設定する必要があります。つまり、ユーザー名test、パスワードtestです。ただし、X509要求者トークンでは設定する必要はありません。

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


    注意:

    デフォルトでは、oracle/wss11_sts_issued_saml_hok_with_message_protection_client_policyポリシーはトークン・タイプSAML 1.1により構成されています。トークン・タイプをSAML 2.0に構成する場合、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のWebサービス・ポリシーのクローニングに関する項の説明に従って、ポリシーをコピーして編集する必要があります。

7.4 その他の情報源

この章のソリューションが実装されているその他のテクノロジおよびツールの詳細は、次の参考資料を参照してください。

  • Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理

  • Oracle Web Services Managerの理解

  • http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.htmlkeytool Javadoc