9 Oracle GlassFish Serverリリース3.0.1との相互運用性
この章の内容は次のとおりです。
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つ以上のアサーションで構成されています。アサーションはセキュリティ要件の定義です。そのまま使用できる事前定義のポリシーとアサーションのセットが用意されています。
詳細は、次を参照してください。
-
OWSM事前定義済ポリシーについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の事前定義済ポリシーに関する説明を参照してください。
-
OWSM 12cポリシーの構成およびアタッチについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のWebサービスの保護に関する説明およびポリシーのアタッチに関する説明を参照してください。
-
Oracle GlassFishの構成の詳細は、
http://download.oracle.com/docs/cd/E18930_01/index.html
を参照してください。 -
Metro Webサービスの構成の詳細は、
http://metro.java.net/guide/
を参照してください。
9.1.2 GlassFishサービス・ポリシーの相互運用性シナリオ
OWSM 11gとGlassFishサーバーとの間の相互運用性には様々なシナリオがあります。
次の表に、OWSM 11gサービス・ポリシーとGlassFishクライアント・ポリシーの相互運用性シナリオを示します。
表9-1 OWSM 11gサービス・ポリシーとGlassFishクライアントの相互運用性
アイデンティティ・トークン | WS-Securityバージョン | メッセージ保護 | トランスポート・セキュリティ | サービス・ポリシー | クライアント・ポリシー |
---|---|---|---|---|---|
SAML |
1.1 |
はい |
いいえ |
|
次の表に、GlassFishサービス・ポリシーとOWSM 11gクライアント・ポリシーの相互運用性シナリオを示します。
表9-2 GlassFishサービスとOWSM 11gクライアント・ポリシーの相互運用性
アイデンティティ・トークン | WS-Securityバージョン | メッセージ保護 | トランスポート・セキュリティ | サービス・ポリシー | クライアント・ポリシー |
---|---|---|---|---|---|
SAML |
1.1 |
はい |
いいえ |
|
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標準に準拠したメッセージ保護付きユーザー名トークンを実装できます。
相互運用性のための前提条件を構成するには、次のようにします。
-
次のコマンドを使用して、
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
-
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。 -
次のコマンドを使用して、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
-
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
-
ドメインの
fmwconfig
ディレクトリからjps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
OWSM 12c Webサービスを構成するには、次のようにします。
-
Webサービスを作成します。
-
oracle/wss11_username_token_with_message_protection_service_policy
ポリシーをWebサービスにアタッチします。詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
GlassFish/Metroクライアントを構成するには、次のようにします。
-
NetBeansを使用して、「新規プロジェクト」→「Java」→「Javaアプリケーション」を選択することにより、Metroクライアントを作成します。プロジェクトの名前と場所を指定し、「終了」を選択します。
-
プロジェクトを右クリックします。「New」→「Web service Client」を選択します。ウィザードに従って、WebLogic内にデプロイされるサービスのWSDL URLを入力します。
-
「Edit Web Services Attributes」を選択します。
-
「Use Development Defaults」を選択して、Metroライブラリをプロジェクトに組み込みます。
-
「Use Development Defaults」を選択解除します。ユーザー名のサブジェクトおよびパスワードを指定します。
-
Metro SEクライアントの場合:
-
信頼ストア構成を編集します。ステップ5で作成したものと同じ
default-keystore.jks
を選択します。 -
Webサービス操作をmainクラスのmainメソッドにドラッグ・アンド・ドロップします。
-
プロジェクトを右クリックし、「run」を選択してプロジェクトを実行します。
-
-
Metro Java EEクライアントの場合:
-
Webサービス操作を、起動するEJBまたはサーブレットにドラッグ・アンド・ドロップします。
-
アプリケーションをGlassFishにデプロイし、Webサービスを起動します。
-
9.2.2 GlassFish WebサービスおよびOWSM 12cクライアントの構成(メッセージ保護付きユーザー名トークン)
GlassFish WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 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
-
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。 -
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
ディレクトリ内に作成されます。 -
次のコマンドを使用して、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
.を参照してください -
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
-
ドメインの
fmwconfig
ディレクトリからcwallet.sso
、jps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
GlassFish/Metro Webサービスを構成するには、次のようにします。
-
Metro Webサービスを作成します。詳細は、
http://metro.java.net/guide/ch02.html#using_metro-developing_with_nb
を参照してください。 -
適切なセキュリティ・メカニズムを構成します。詳細は、
http://metro.java.net/guide/ch12.html#ahicu
を参照してください。
OWSM 11gクライアントを構成するには、次のようにします。
- JDeveloperを使用して、GlassFishサービスのWebサービス・プロキシを作成します。ウィザードで
oracle/wss11_username_token_with_message_protection_client_policy
ポリシーを選択します。 - Webサービス・プロキシの「プロパティのオーバーライド」オプションで、
csf-key
をglassfish.credentials
に設定します。 - 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トークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。
相互運用性のための前提条件を構成するには、次のようにします。
-
次のコマンドを使用して、
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
-
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。 -
次のコマンドを使用して、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
を参照してください。 -
ユーザーを追加します。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのユーザーの作成に関する項を参照してください。
-
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
-
ドメインの
fmwconfig
ディレクトリからjps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
9.3.1.2 OWSM 11g Webサービスの構成(メッセージ保護付きSAMLトークン)
OWSM 11g Webサービスを作成し、メッセージ保護付きSAMLトークン・サービス・ポリシーをアタッチして、GlassFishクライアントとの相互運用性実現できます。
OWSM 11g Webサービスを構成するには、次のようにします。
-
Webサービスを作成します。
-
次のポリシーを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クライアントを構成するには、次のようにします。
-
NetBeansを使用して、「新規プロジェクト」→「Java」→「Javaアプリケーション」を選択することにより、Metroクライアントを作成します。プロジェクトの名前と場所を指定します。デプロイするサーバーを選択し、「終了」を選択します。
-
プロジェクトを右クリックします。「New」→「Web Service Client」を選択します。ウィザードに従って、WebLogic内にデプロイされるサービスのWSDL URLを入力します。
-
NetBeansでサポートされるWSIT SAMLセキュリティ・メカニズムとともに使用されるSAML CallbackHandlerを作成します。
-
ファイルをプロジェクトのソース・フォルダに置きます。
-
発行者の変数の値が、GlassFishクライアントの相互運用性のための前提条件の構成のステップ5で作成した
jps-config.xml
ファイルのものと同じであることを確認します。 -
urnの参照を、
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
に設定します。 -
GlassFishクライアントの相互運用性のための前提条件の構成のステップ3およびステップ4で作成したユーザーを設定します。たとえば、ユーザーをwlsuserに設定するには、次のようにファイルを変更します。
CN=wlsuser,OU=SU,O=wlsuser,L=Los Angeles,ST=CA,C=US
-
-
JVMを構成するには、GlassFishの管理コンソールにログオンします。
-
左側のペインで「構成」を開き、JVM設定をクリックします。
-
右側のペインで「JVMオプション」タブをクリックします。
-
JVMオプションの追加をクリックします。新規のテキスト・フィールドが表示されます。
-DWSIT_HOME=${com.sun.aas.installRoot}
と入力します。 -
左側のペインで「エンタープライズ・サーバー」をクリックします。
-
右側のペインで「再起動」をクリックして、サーバーを再起動します。
詳細は、Oracle GlassFish Server 3.1管理者ガイド(
http://download.oracle.com/docs/cd/E18930_01/html/821-2416/gepzd.html
)を参照してください。 -
-
Webサービス参照ノードを開きます。NetBeansを使用して、「サービス参照」を右クリックしてWebサービス属性の編集を選択します。
-
SAMLのコールバック・ハンドラのオプションのため、「参照」をクリックして、ステップ3からファイルを選択します。
-
キーストアおよび信頼ストアのエイリアスを設定します。
-
index.jsp
ファイルを開きます。右クリックしてWebサービス・クライアント参照を選択します。起動する操作の選択ダイアログボックスから操作を選択して、「OK」をクリックします。 -
プロジェクトを実行します。
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トークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。
相互運用性のための前提条件を構成するには、次のようにします。
-
次のコマンドを使用して、
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
-
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。 -
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
ディレクトリ内に作成されます。 -
次のコマンドを使用して、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
を参照してください。 -
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
-
ドメインの
fmwconfig
ディレクトリからcwallet.sso
、jps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
9.3.2.2 GlassFish/Metro Webサービスの構成
GlassFish Webサービスを作成し、メッセージ保護付きSAMLトークン・サービス・ポリシーをアタッチして、OWSM 11g Webクライアントとの相互運用性実現できます。
GlassFish/Metro Webサービスを構成するには、次のようにします。
-
Metro Webサービスを作成します。
詳細は、
http://metro.java.net/guide/ch02.html#using_metro-developing_with_nb
を参照してください。 -
適切なセキュリティ・メカニズムを構成します。詳細は、
http://metro.java.net/guide/ch12.html#ahicu
を参照してください。
9.3.2.3 OWSM 11gクライアントの構成
OWSM 11gクライアントを構成して、GlassFish Webサービスとの相互運用性のためのメッセージ保護付きSAMLトークン(送信者保証)を実装できます。
OWSM 11gクライアントを構成するには、次のようにします。
-
JDeveloperを使用して、GlassFishサービスのWebサービス・プロキシを作成します。ウィザードで
oracle/wss11_saml_token_with_message_protection_client_policy
ポリシーを選択します。詳細は、『Oracle JDeveloperによるアプリケーションの開発』のWebサービスの開発と保護に関する項を参照してください。
-
GlassFish Webサービスの相互運用性のための前提条件の構成のステップ6で作成した
jps-config.xml
ファイルへのパスを設定します。 -
USERNAME_PROPERTYを次のように設定します。
((BindingProvider) sAMLTokenEchoService).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "wlsUser");
-
Webサービスを起動します。