9 Oracle GlassFish Serverリリース3.0.1との相互運用性

Oracle Web Services Manager (OWSM)は、Oracle GlassFish Serverリリース3.0.1と相互運用できます。OWSMとOracle GlassFish Serverとの間の相互運用性を実現するため、WS-Security 1.1標準に準拠するポリシーがWebサービスにアタッチされます。

この章の内容は次のとおりです。

9.1 Oracle GlassFishのセキュリティ環境の相互運用性の理解

Oracle GlassFish Serverリリース3.0.1は、Java EEプラットフォーム用のオープン・ソース・アプリケーション・サーバーです。Metroは、Oracle GlassFish Serverを構成するオープンソースWebサービス・スタックの1つです。

OWSMポリシーおよび相互運用性シナリオの詳細は、次の各トピックで説明します。

9.1.1 Oracle GlassFishのOWSMポリシー

OWSM 12cでは、ポリシーをWebサービス・エンドポイントにアタッチします。ポリシーはドメインレベルで定義された1つ以上のアサーションで構成されています。アサーションはセキュリティ要件の定義です。そのまま使用できる事前定義のポリシーとアサーションのセットが用意されています。

詳細は、次を参照してください。

9.1.2 GlassFishサービス・ポリシーの相互運用性シナリオ

OWSM 11gとGlassFishサーバーとの間の相互運用性には様々なシナリオがあります。

次の表に、OWSM 11gサービス・ポリシーとGlassFishクライアント・ポリシーの相互運用性シナリオを示します。

表9-1 OWSM 11gサービス・ポリシーとGlassFishクライアントの相互運用性

アイデンティティ・トークン WS-Securityバージョン メッセージ保護 トランスポート・セキュリティ サービス・ポリシー クライアント・ポリシー

SAML

1.1

はい

いいえ

oracle/wss11_saml_token_with_message_protection_service_policy

OWSM 12c WebサービスおよびGlassFishクライアントの構成

次の表に、GlassFishサービス・ポリシーとOWSM 11gクライアント・ポリシーの相互運用性シナリオを示します。

表9-2 GlassFishサービスとOWSM 11gクライアント・ポリシーの相互運用性

アイデンティティ・トークン WS-Securityバージョン メッセージ保護 トランスポート・セキュリティ サービス・ポリシー クライアント・ポリシー

SAML

1.1

はい

いいえ

GlassFish WebサービスおよびOWSM 12cクライアントの構成

oracle/wss11_saml_token_with_message_protection_client_policy

9.2 GlassFishクライアント向けのメッセージ保護付きユーザー名トークン(WS-Security 1.1)の実装

メッセージ保護付きユーザー名トークン・ポリシーは、WS-Security 1.1標準に準拠します。このポリシーは、OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性およびGlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性を実現するために実装されます。

次の各トピックでは、様々な相互運用性シナリオにおいて、WS-Security 1.1標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。

9.2.1 OWSM 12c WebサービスおよびGlassFishクライアントの構成(メッセージ保護付きユーザー名トークン)

OWSM 12c WebサービスおよびGlassFishクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きユーザー名トークンを実装できます。

相互運用性のための前提条件を構成するには、次のようにします。

  1. 次のコマンドを使用して、default-keystore.jksファイルを作成します。

    $JAVA_HOME/bin/keytool -genkeypair -alias orakey -keypass welcome -keyalg RSA
     -dname "CN=orakey, O=oracle C=us" -keystore default-keystore.jks -storepass
     password
  2. default-keystore.jksをドメインのfmwconfigディレクトリにコピーします。

  3. 次のコマンドを使用して、GlassFish内にファイル・ユーザーを作成します。

    $<GLASSFISHV3_HOME>/glassfish/bin/asadmin create-file-user

    詳細は、次の章を参照してください。

    http://download.oracle.com/docs/cd/E18930_01/html/821-2433/create-file-user-1.html

  4. default-keystore.jksからorakeyをGlassFishのキーストアおよび信頼ストアにインポートします。これらは<domain-dir>/configディレクトリ内にあります

    $JAVA_HOME/bin/keytool -importkeystore -srckeystore
     <path-to>/default-keystore.jks -destkeystore
     <path-to-gf-domain>/config/cacerts.jks -srcalias  orakey -destalias orakey
     -srckeypass password -destkeypass changeit
  5. ドメインのfmwconfigディレクトリからjps-config.xmlおよびdefault-keystore.jksをローカル・フォルダにコピーします。

OWSM 12c Webサービスを構成するには、次のようにします。

  1. Webサービスを作成します。

  2. oracle/wss11_username_token_with_message_protection_service_policyポリシーをWebサービスにアタッチします。

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』ポリシーのアタッチに関する説明を参照してください。

GlassFish/Metroクライアントを構成するには、次のようにします。

  1. NetBeansを使用して、「新規プロジェクト」→「Java」→「Javaアプリケーション」を選択することにより、Metroクライアントを作成します。プロジェクトの名前と場所を指定し、「終了」を選択します。

  2. プロジェクトを右クリックします。「New」→「Web service Client」を選択します。ウィザードに従って、WebLogic内にデプロイされるサービスのWSDL URLを入力します。

  3. 「Edit Web Services Attributes」を選択します。

  4. 「Use Development Defaults」を選択して、Metroライブラリをプロジェクトに組み込みます。

  5. 「Use Development Defaults」を選択解除します。ユーザー名のサブジェクトおよびパスワードを指定します。

  6. Metro SEクライアントの場合:

    1. 信頼ストア構成を編集します。ステップ5で作成したものと同じdefault-keystore.jksを選択します。

    2. Webサービス操作をmainクラスのmainメソッドにドラッグ・アンド・ドロップします。

    3. プロジェクトを右クリックし、「run」を選択してプロジェクトを実行します。

  7. Metro Java EEクライアントの場合:

    1. Webサービス操作を、起動するEJBまたはサーブレットにドラッグ・アンド・ドロップします。

    2. アプリケーションをGlassFishにデプロイし、Webサービスを起動します。

9.2.2 GlassFish WebサービスおよびOWSM 12cクライアントの構成(メッセージ保護付きユーザー名トークン)

GlassFish WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きユーザー名トークンを実装できます。

相互運用性のための前提条件を構成するには、次のようにします。

  1. 次のコマンドを使用して、default-keystore.jksファイルを作成します。

    $JAVA_HOME/bin/keytool -genkeypair -alias orakey -keypass password -keyalg RSA
     -dname "CN=orakey, O=oracle C=us" -keystore default-keystore.jks -storepass
     password
  2. default-keystore.jksをドメインのfmwconfigディレクトリにコピーします。

  3. WLSTコマンドを使用して、資格証明を資格証明ストアに保存します。次に例を示します。

    $<ORACLE_HOME>/common/bin/wlst.sh
    > connect()
    > createCred(map="oracle.wsm.security", key="keystore-csf-key",
     user="keystore", password="password")
    > createCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey",
     password="password")
    > createCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey",
     password="password")
    >createCred(map="oracle.wsm.security", key="glassfish.credentials" ,
     user="wlsUser" , password="password" , description="Glassfish user
     credentials");

    cwallet.ssoというファイルがDOMAIN_HOME/config/fmwconfigディレクトリ内に作成されます。

  4. 次のコマンドを使用して、GlassFish内にファイル・ユーザーを作成します。

    $<GLASSFISHV3_HOME>/glassfish/bin/asadmin create-file-user

    詳細は、http://download.oracle.com/docs/cd/E18930_01/html/821-2433/create-file-user-1.html.を参照してください

  5. default-keystore.jksからorakeyをGlassFishのキーストアおよび信頼ストアにインポートします。これらは<domain-dir>/configディレクトリ内にあります。

    $JAVA_HOME/bin/keytool -importkeystore -srckeystore
     <path-to>/default-keystore.jks -destkeystore
     <path-to-gf-domain>/config/keystore.jks -srcalias  orakey -destalias orakey
     -srckeypass password -destkeypass changeit
  6. ドメインのfmwconfigディレクトリからcwallet.ssojps-config.xmlおよびdefault-keystore.jksをローカル・フォルダにコピーします。

GlassFish/Metro Webサービスを構成するには、次のようにします。

  1. Metro Webサービスを作成します。詳細は、http://metro.java.net/guide/ch02.html#using_metro-developing_with_nbを参照してください。

  2. 適切なセキュリティ・メカニズムを構成します。詳細は、http://metro.java.net/guide/ch12.html#ahicuを参照してください。

OWSM 11gクライアントを構成するには、次のようにします。

  1. JDeveloperを使用して、GlassFishサービスのWebサービス・プロキシを作成します。ウィザードでoracle/wss11_username_token_with_message_protection_client_policyポリシーを選択します。
  2. Webサービス・プロキシの「プロパティのオーバーライド」オプションで、csf-keyglassfish.credentialsに設定します。
  3. Webサービス・プロキシのメイン・クラス内で、oracle.security.jps.configのシステム・プロパティを、ステップ6でコピーしたjps-config.xmlに設定します。

注意:

次を使用している場合:

  • Oracle Service Busビジネス・サービス: 「セキュリティ」ページでプロパティのオーバーライドをglassfish.credentialsに設定します。詳細は、http://docs.oracle.com/docs/html/E15866_01/owsm.htm『Oracle Service Busでのサービスの開発』で、ポリシーのオーバーライドに関する項を参照してください。

  • SOA Webサービス参照: 「セキュリティ」ページでプロパティのオーバーライドをglassfish.credentialsに設定します。詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発ポリシー構成プロパティ値のオーバーライド方法に関する項を参照してください。

9.3 GlassFishクライアント向けのメッセージ保護付きSAMLトークン(送信者保証)(WS-Security 1.1)の実装

メッセージ保護付きSAMLトークン・ポリシーは、WS-Security 1.1標準に準拠します。このポリシーは、OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性およびGlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性を実現するために実装されます。

次のトピックでは、様々な相互運用性シナリオにおいてメッセージ保護付きSAMLトークン(送信者保証)を実装する方法について説明します。

9.3.1 OWSM 12c WebサービスおよびGlassFishクライアントの構成(メッセージ保護付きSAMLトークン)

OWSM 12c WebサービスおよびGlassFishクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きSAMLトークン(送信者保証)を実装できます。

次のトピックでは、メッセージ保護付きSAMLトークン(送信者保証)を実装するために、OWSM 12c WebサービスおよびGlassFishクライアントを構成する方法を説明します。

9.3.1.1 GlassFishクライアントの相互運用性のための前提条件の構成

OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性のために、メッセージ保護付きSAMLトークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。

相互運用性のための前提条件を構成するには、次のようにします。

  1. 次のコマンドを使用して、default-keystore.jksファイルを作成します。

    $JAVA_HOME/bin/keytool -genkeypair -alias orakey -keypass password -keyalg RSA
     -dname "CN=orakey, O=oracle C=us" -keystore default-keystore.jks -storepass
     password
  2. default-keystore.jksをドメインのfmwconfigディレクトリにコピーします。

  3. 次のコマンドを使用して、GlassFish内にファイル・ユーザーを作成します。

    $<GLASSFISHV3_HOME>/glassfish/bin/asadmin create-file-user

    詳細は、http://download.oracle.com/docs/cd/E18930_01/html/821-2433/create-file-user-1.htmlを参照してください。

  4. ユーザーを追加します。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプユーザーの作成に関する項を参照してください。

  5. default-keystore.jksからorakeyをGlassFishのキーストアおよび信頼ストアにインポートします。これらは<domain-dir>/configディレクトリ内にあります。

    $JAVA_HOME/bin/keytool -importkeystore -srckeystore
     <path-to>/default-keystore.jks -destkeystore
     <path-to-gf-domain>/config/cacerts.jks -srcalias  orakey -destalias orakey
     -srckeypass password -destkeypass changeit
  6. ドメインのfmwconfigディレクトリからjps-config.xmlおよびdefault-keystore.jksをローカル・フォルダにコピーします。

9.3.1.2 OWSM 11g Webサービスの構成(メッセージ保護付きSAMLトークン)

OWSM 11g Webサービスを作成し、メッセージ保護付きSAMLトークン・サービス・ポリシーをアタッチして、GlassFishクライアントとの相互運用性実現できます。

OWSM 11g Webサービスを構成するには、次のようにします。

  1. Webサービスを作成します。

  2. 次のポリシーをWebサービスにアタッチします。

    oracle/wss11_saml_token_with_message_protection_service_policy

    詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』ポリシーのアタッチに関する説明を参照してください。

9.3.1.3 GlassFish/Metroクライアントの構成(メッセージ保護付きSAMLトークン)

GlassFishクライアントを構成して、OWSM 11g Webサービスとの相互運用性のためのメッセージ保護付きSAMLトークンを実装できます。

GlassFish/Metroクライアントを構成するには、次のようにします。

  1. NetBeansを使用して、「新規プロジェクト」→「Java」→「Javaアプリケーション」を選択することにより、Metroクライアントを作成します。プロジェクトの名前と場所を指定します。デプロイするサーバーを選択し、「終了」を選択します。

  2. プロジェクトを右クリックします。「New」→「Web Service Client」を選択します。ウィザードに従って、WebLogic内にデプロイされるサービスのWSDL URLを入力します。

  3. NetBeansでサポートされるWSIT SAMLセキュリティ・メカニズムとともに使用されるSAML CallbackHandlerを作成します。

    1. ファイルをプロジェクトのソース・フォルダに置きます。

    2. 発行者の変数の値が、GlassFishクライアントの相互運用性のための前提条件の構成のステップ5で作成したjps-config.xmlファイルのものと同じであることを確認します。

    3. urnの参照を、urn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedに設定します。

    4. GlassFishクライアントの相互運用性のための前提条件の構成のステップ3およびステップ4で作成したユーザーを設定します。たとえば、ユーザーをwlsuserに設定するには、次のようにファイルを変更します。CN=wlsuser,OU=SU,O=wlsuser,L=Los Angeles,ST=CA,C=US

  4. JVMを構成するには、GlassFishの管理コンソールにログオンします。

    1. 左側のペインで「構成」を開き、JVM設定をクリックします。

    2. 右側のペインで「JVMオプション」タブをクリックします。

    3. JVMオプションの追加をクリックします。新規のテキスト・フィールドが表示されます。-DWSIT_HOME=${com.sun.aas.installRoot}と入力します。

    4. 左側のペインで「エンタープライズ・サーバー」をクリックします。

    5. 右側のペインで「再起動」をクリックして、サーバーを再起動します。

    詳細は、Oracle GlassFish Server 3.1管理者ガイド(http://download.oracle.com/docs/cd/E18930_01/html/821-2416/gepzd.html)を参照してください。

  5. Webサービス参照ノードを開きます。NetBeansを使用して、「サービス参照」を右クリックしてWebサービス属性の編集を選択します。

  6. SAMLのコールバック・ハンドラのオプションのため、「参照」をクリックして、ステップ3からファイルを選択します。

  7. キーストアおよび信頼ストアのエイリアスを設定します。

  8. index.jspファイルを開きます。右クリックしてWebサービス・クライアント参照を選択します。起動する操作の選択ダイアログボックスから操作を選択して、「OK」をクリックします。

  9. プロジェクトを実行します。

9.3.2 GlassFish WebサービスおよびOWSM 12cクライアントの構成(メッセージ保護付きSAMLトークン)

GlassFish WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きSAMLトークン(送信者保証)を実装できます。

次のトピックでは、メッセージ保護付きSAMLトークン(送信者保証)を実装するために、GlassFish WebサービスおよびOWSM 12cクライアントを構成する方法を説明します。

9.3.2.1 GlassFish Webサービスの相互運用性のための前提条件の構成

GlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性のために、メッセージ保護付きSAMLトークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。

相互運用性のための前提条件を構成するには、次のようにします。

  1. 次のコマンドを使用して、default-keystore.jksファイルを作成します。

    $JAVA_HOME/bin/keytool -genkeypair -alias orakey -keypass password -keyalg RSA
     -dname "CN=orakey, O=oracle C=us" -keystore default-keystore.jks -storepass
     password
  2. default-keystore.jksをドメインのfmwconfigディレクトリにコピーします。

  3. WLSTコマンドを使用して、資格証明を資格証明ストアに保存します。

    次に例を示します。

    $<ORACLE_HOME>/common/bin/wlst.sh
    > connect()
    > createCred(map="oracle.wsm.security", key="keystore-csf-key",
     user="keystore", password="password")
    > createCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey",
     password="password")
    > createCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey",
     password="password")
    >createCred(map="oracle.wsm.security", key="glassfish.credentials" ,
     user="wlsUser" , password="password" , description="Glassfish user
     credentials");

    cwallet.ssoというファイルがDOMAIN_HOME/config/fmwconfigディレクトリ内に作成されます。

  4. 次のコマンドを使用して、GlassFish内にファイル・ユーザーを作成します。

    $<GLASSFISHV3_HOME>/glassfish/bin/asadmin create-file-user

    詳細は、http://download.oracle.com/docs/cd/E18930_01/html/821-2433/create-file-user-1.htmlを参照してください。

  5. default-keystore.jksからorakeyをGlassFishのキーストアおよび信頼ストアにインポートします。これらは<domain-dir>/configディレクトリ内にあります。

    $JAVA_HOME/bin/keytool -importkeystore -srckeystore
     <path-to>/default-keystore.jks -destkeystore
     <path-to-gf-domain>/config/keystore.jks -srcalias  orakey -destalias orakey
     -srckeypass password -destkeypass changeit
  6. ドメインのfmwconfigディレクトリからcwallet.ssojps-config.xmlおよびdefault-keystore.jksをローカル・フォルダにコピーします。

9.3.2.2 GlassFish/Metro Webサービスの構成

GlassFish Webサービスを作成し、メッセージ保護付きSAMLトークン・サービス・ポリシーをアタッチして、OWSM 11g Webクライアントとの相互運用性実現できます。

GlassFish/Metro Webサービスを構成するには、次のようにします。

  1. Metro Webサービスを作成します。

    詳細は、http://metro.java.net/guide/ch02.html#using_metro-developing_with_nbを参照してください。

  2. 適切なセキュリティ・メカニズムを構成します。詳細は、http://metro.java.net/guide/ch12.html#ahicuを参照してください。

9.3.2.3 OWSM 11gクライアントの構成

OWSM 11gクライアントを構成して、GlassFish Webサービスとの相互運用性のためのメッセージ保護付きSAMLトークン(送信者保証)を実装できます。

OWSM 11gクライアントを構成するには、次のようにします。

  1. JDeveloperを使用して、GlassFishサービスのWebサービス・プロキシを作成します。ウィザードでoracle/wss11_saml_token_with_message_protection_client_policyポリシーを選択します。

    詳細は、『Oracle JDeveloperによるアプリケーションの開発』Webサービスの開発と保護に関する項を参照してください。

  2. GlassFish Webサービスの相互運用性のための前提条件の構成のステップ6で作成したjps-config.xmlファイルへのパスを設定します。

  3. USERNAME_PROPERTYを次のように設定します。((BindingProvider) sAMLTokenEchoService).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "wlsUser");

  4. Webサービスを起動します。