この章の内容は次のとおりです。
Oracle GlassFish Serverリリース3.0.1は、Java EEプラットフォーム用のオープン・ソース・アプリケーション・サーバーです。Metroは、Oracle GlassFish Serverを構成するオープンソースWebサービス・スタックの1つです。
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/
を参照してください。
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 |
はい |
いいえ |
|
メッセージ保護付きユーザー名トークン・ポリシーは、WS-Security 1.1標準に準拠します。このポリシーは、OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性およびGlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性を実現するために実装されます。
次の各トピックでは、様々な相互運用性シナリオにおいて、WS-Security 1.1標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。
OWSM 12c WebサービスおよびGlassFishクライアントを使用して、WS-Security 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
welcome
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 welcome -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サービスを起動します。
GlassFish WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 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 welcome
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。
WLSTコマンドを使用して、資格証明を資格証明ストアに保存します。例:
$<ORACLE_HOME>/common/bin/wlst.sh > connect() > createCred(map="oracle.wsm.security", key="keystore-csf-key", user="keystore", password="welcome") > createCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey", password="welcome") > createCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey", password="welcome") >createCred(map="oracle.wsm.security", key="glassfish.credentials" , user="wlsUser" , password="welcome1" , 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 welcome -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クライアントを構成するには、次のようにします。
oracle/wss11_username_token_with_message_protection_client_policy
ポリシーを選択します。csf-key
をglassfish.credentials
に設定します。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アプリケーションの開発のポリシー構成プロパティ値のオーバーライド方法に関する項を参照してください。
メッセージ保護付きSAMLトークン・ポリシーは、WS-Security 1.1標準に準拠します。このポリシーは、OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性およびGlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性を実現するために実装されます。
次のトピックでは、様々な相互運用性シナリオにおいてメッセージ保護付きSAMLトークン(送信者保証)を実装する方法について説明します。
OWSM 12c WebサービスおよびGlassFishクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きSAMLトークン(送信者保証)を実装できます。
次のトピックでは、メッセージ保護付きSAMLトークン(送信者保証)を実装するために、OWSM 12c WebサービスおよびGlassFishクライアントを構成する方法を説明します。
OWSM 12c WebサービスとGlassFishクライアントとの間の相互運用性のために、メッセージ保護付きSAMLトークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。
相互運用性のための前提条件を構成するには、次のようにします。
次のコマンドを使用して、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 welcome
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 welcome -destkeypass changeit
ドメインのfmwconfig
ディレクトリからjps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
OWSM 11g Webサービスを作成し、メッセージ保護付きSAMLトークン・サービス・ポリシーをアタッチして、GlassFishクライアントとの相互運用性実現できます。
OWSM 11g Webサービスを構成するには、次のようにします。
Webサービスを作成します。
次のポリシーをWebサービスにアタッチします。
oracle/wss11_saml_token_with_message_protection_service_policy
詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
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」をクリックします。
プロジェクトを実行します。
GlassFish WebサービスおよびOWSM 12cクライアントを使用して、WS-Security 1.1標準に準拠したメッセージ保護付きSAMLトークン(送信者保証)を実装できます。
次のトピックでは、メッセージ保護付きSAMLトークン(送信者保証)を実装するために、GlassFish WebサービスおよびOWSM 12cクライアントを構成する方法を説明します。
GlassFish WebサービスとOWSM 12cクライアントとの間の相互運用性のために、メッセージ保護付きSAMLトークン(送信者保証)を実装する前に、多くの高度なタスクを完了する必要があります。
相互運用性のための前提条件を構成するには、次のようにします。
次のコマンドを使用して、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 welcome
default-keystore.jks
をドメインのfmwconfig
ディレクトリにコピーします。
WLSTコマンドを使用して、資格証明を資格証明ストアに保存します。
例:
$<ORACLE_HOME>/common/bin/wlst.sh > connect() > createCred(map="oracle.wsm.security", key="keystore-csf-key", user="keystore", password="welcome") > createCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey", password="welcome") > createCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey", password="welcome") >createCred(map="oracle.wsm.security", key="glassfish.credentials" , user="wlsUser" , password="welcome1" , 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 welcome -destkeypass changeit
ドメインのfmwconfig
ディレクトリからcwallet.sso
、jps-config.xml
およびdefault-keystore.jks
をローカル・フォルダにコピーします。
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
を参照してください。
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サービスを起動します。