SAML または UserNameToken プロファイルを使用した Web サービスのセキュリティー保護
このチュートリアルでは、Application Server の Web サービスクライアントおよびサーバー側コンテナ内の WS-Security 標準の統合サポートを、付属の Access Manager とともに使用して、Web サービスクライアントと Web サービスプロバイダ間の SAML ベースおよび UserNameToken ベースの認証を有効にする方法について説明します。
目次
このチュートリアルに従うには、次のソフトウェアとリソースが必要です。
Java Application Server SDK の Java EE + ツールの配布ファイルには NetBeans IDE が含まれます。
Sun Java System Access Manager のインストール
Access Manager を以前にインストールし、構成したことがある場合は、userdir を確認し、次のファイルが存在する場合は削除します。
[Your_Userdir]/AccessManager/AMConfig_opt_SUNWappserver_domains)domain1_applications_j2ee-modules_amserver_
その後、新規インストールを開始します。
Sun Java System Access Manager をインストールするには、先に NetBeans IDE の完全版をインストールしてあることを確認する必要があります。次へ,
- Java Application Platform SDK Update 2 以降を http://java.sun.com/javaee/downloads/index.jsp から入手します。
- Java SDK のインストーラを実行します。このとき、任意のインストールディレクトリを指定し、デフォルトのオプションを使用します。
- Sun Java System Access Manager が含まれるアドオンを選択します。
- インストーラの実行を続けます。インストーラが終了したら、サーバーを起動し、「完了」を選択します。
- IDE を起動します。
- 「サービス」タブで、「サーバー」ノードを選択します。「サーバー」ノードを右クリックし、ポップアップメニューから「サーバーを追加」を選択します。「サーバーインスタンスの追加」ダイアログが開きます。
- 「次へ」をクリックします。「プラットフォームフォルダの場所」ページが開きます。
- 「プラットフォームの場所」フィールドの「参照」ボタンを使用して、インストールした Java Application Platform SDK があるディレクトリを選択します。
- 「完了」をクリックします。
- 「サービス」タブで、Sun Java System Access Manager が、インストールしたアプリケーションサーバーの下のノードとして表示されます。Sun Java System Access Manager を使用するには、先にアプリケーションサーバーを起動する必要があります。
ページの先頭へ
Access Manager インストールの構成の確認
- 「サービス」ウィンドウで、「Sun Java System Access Manager」ノードを展開します。「Access Manager」ノードを右クリックし、「管理コンソールを表示」を選択します。
- 「ログイン」ページが表示されます。このページは、今後のログイン時にすぐに表示されます。Sun Java System Access Manager にログインできます。「ログイン」ページが開き、Access Manager サーバーが実行中であることを示します。
Access Manager が正常に動作するように構成する必要があります。SDK から入手した Glassfish Server をはじめて起動するときにデフォルトで構成されますが、必要な場合はあとで再構成できます。詳細は、 [your_SDKGlassfish_location]/addons/README.html ファイルを参照してください。
ページの先頭へ
チュートリアル環境の設定
- IDE を起動します。
- Sun Java System Application Server が IDE 内で構成されていることを確認するには、「実行時」タブをクリックして、「 サーバー 」ノードを展開します。
- 「サーバー」ノードに「Java EE SDK GlassFish」ノードが含まれていない場合、「アプリケーションサーバーの追加」にある手順に従います。
- 「実行時」ウィンドウで、「サーバー」ノードを展開し、「Java EE SDK GlassFish」ノードを右クリックして、ポップアップメニューから「起動」を選択します。
「出力」ウィンドウに次のメッセージが表示されるまで待ちます。
Application server startup complete.
Sun Java System Application Server が実行されている場合、「Sun Java System Application Server 9」ノードに緑色の矢印のバッジが表示されます。
注: 「起動」オプションを使用できない場合、Sun Java System Application Server はすでに起動しています。
ページの先頭へ
チュートリアルプロジェクトの作成
2 つのチュートリアル用プロジェクトは StockQuoteService と StockQuoteClient です。
StockQuoteService プロジェクトを作成するには、次の手順に従います。
- IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
- 「カテゴリ」リストで、「サンプル」ノードを展開し、「アイデンティティー Blueprints」ノードを選択します。
- 「プロジェクト」リストで「株式サービス」を選択します。
- 「次へ」をクリックします。
- デフォルトのプロジェクト名 (StockQuoteService) をそのまま使用し、プロジェクトの場所を任意で変更します。
- 「完了」をクリックします。
StockQuoteClient プロジェクトを作成するには、次の手順に従います。
- IDE のメインメニューから、「ファイル」>「新規プロジェクト」を選択します。
- 「カテゴリ」リストで、「サンプル」ノードを展開し、「アイデンティティー Blueprints」ノードを選択します。
- 「プロジェクト」リストで、「株式クライアント」を選択します。
- 「次へ」をクリックします。
- プロジェクト名 (StockQuoteClient) とプロジェクトの場所のデフォルト値をそのまま使用します。
- 「完了」をクリックします。
これで、「プロジェクト」ウィンドウに「StockQuoteClient」プロジェクトノードが含まれます。
NetBeans IDE とともに付属の GlassFish v2 サーバーをインストールした場合は、両方のサンプルプロジェクトのデフォルトのサーバーとして選択されます。このチュートリアルでは、「Java EE SDK Glassfish」を選択する必要があります。
プロジェクトのサーバーを Java EE SDK Glassfish に変更するには、次の手順に従います。
- 「プロジェクト」タブを開きます。
- StockQuoteService プロジェクトのノードを右クリックし、「プロパティー」を選択します。
- 「実行」カテゴリを選択します。
- 「サーバー」ドロップダウンリストを開き、「Java EE SDK Glassfish」を選択します。
- 「閉じる」をクリックします。
- StockQuoteClient プロジェクトについてこの手順を繰り返します。
ページの先頭へ
Web サービスのセキュリティー保護: SAML-HolderOfKey セキュリティー機構の使用
このシナリオでは、署名付きの応答を持たないがデフォルトのキーストアを使用する SAML-HolderOfKey セキュリティープロファイルを使用します。これを行うには、最初に Access Manager のトークンプロファイルを編集してから、Web サービスプロバイダおよびクライアントを構成します。
SAML-HolderOfKey プロファイルを編集するには、次の手順に従います。
- 「実行時」ウィンドウで「Sun Java System Access Manager」ノードを展開し、「プロファイル」ノードを展開します。
- 「SAML-HolderOfKey」ノードを選択します。
- ノードを右クリックし、コンテキストメニューから「編集」を選択します。「SAML-HolderOfKey プロファイルを編集」ダイアログが開きます。

- 「応答の署名」チェックボックスを選択解除します。
- 「既存の証明書設定」を検索し、「デフォルトのキーストアを使用」チェックボックスが選択されていることを確認します。
- 「閉じる」をクリックします。
Web サービスプロバイダを構成するには、次の手順に従います。
- 「プロジェクト」ウィンドウで、「StockQuoteService」プロジェクトノードおよび「Web サービス」ノードを展開します。
- 「Web サービス」ノードで、「StockService」ノードを右クリックし、ポップアップメニューから「Web サービス属性を編集」を選択します。「AM セキュリティー」タブが選択された状態で「StockService」ウィンドウが開きます。

- 「メッセージレベルのセキュリティーを有効化」チェックボックスを選択します。
- 「要求」ドロップダウンリストから「SAML-HolderOfKey」セキュリティーメカニズムを選択します。
- 「閉じる」をクリックします。
Web サービスクライアントを構成するには、次の手順に従います。
- 「プロジェクト」ウィンドウで、「StockQuoteClient」ノードと「Web サービス参照」ノードを展開します。
- 「Web サービス参照」ノードを検索して「StockService」ノードを右クリックし、ポップアップメニューから「Web サービス属性を編集」を選択します。
「Web サービスクライアントのセキュリティー設定」ダイアログが開きます。

- 「メッセージレベルのセキュリティーを有効化」チェックボックスを選択します。
- 「要求」ドロップダウンリストから「SAML-HolderOfKey」メカニズムを選択します。
- 「既存の証明書設定」を検索し、「デフォルトのキーストアを使用」チェックボックスが選択されていることを確認します。
- 「閉じる」をクリックします。
StockQuoteClient の Web サービス参照にエラーアイコンが表示される場合は、StockQuoteService プロジェクトを配備し (サービスのプロジェクトノードを右クリックして「配備の取り消しおよび配備」を選択)、クライアントを更新します (Web サービス参照ノードを右クリックして「クライアントを更新」を選択)。
これで、「 プロジェクトの配備と実行 」の指示に従って、サンプルの配備と実行に進むことができます。
ページの先頭へ
Web サービスのセキュリティー保護: UserNameToken セキュリティー機構の使用
このシナリオでは、署名付きの応答を持つ UserNameToken セキュリティープロファイルと、デフォルトのキーストアを使用します。これを行うには、最初に Access Manager のトークンプロファイルを編集してから、Web サービスプロバイダおよびクライアントを構成します。
UserNameToken プロファイルを編集するには、次の手順に従います。
- 「実行時」ウィンドウで「Sun Java System Access Manager」ノードを展開し、「プロファイル」ノードを展開します。
- 「UserNameToken」ノードを選択し、右クリックして、「編集」を選択します。「UserNameToken プロファイルを編集」ダイアログが開きます。

- 「デフォルトのキーストアを使用」を選択します。
- 「ユーザー名トークンプロファイル情報」を検索します。「追加」ボタンをクリックして Web サービスクライアントの UserNameToken レコードを追加します。
「ユーザーを追加」ダイアログが開きます。
- 「ユーザー名」フィールドに sherry と入力します。「パスワード」フィールドに mypw と入力し、「了解」をクリックします。
- 「了解」をクリックして、「UserNameToken プロファイルを編集」ダイアログを閉じます。
Web サービスプロバイダを構成するには、次の手順に従います。
- 「プロジェクト」ウィンドウで、「StockQuoteService」ノードおよび「Web サービス」ノードを展開します。
- 「Web サービス」ノードで、「StockService」ノードを右クリックし、ポップアップメニューから「Web サービス属性を編集」を選択します。「AM セキュリティー」タブが選択された状態で「StockService」ウィンドウが開きます。

- 「メッセージレベルのセキュリティーを有効化」チェックボックスを選択します。
- 「要求」ドロップダウンリストから「UserNameToken」セキュリティーメカニズムを選択します。
- 「閉じる」をクリックします。
Web サービスクライアントを構成するには、次の手順に従います。
- 「プロジェクト」ウィンドウで「StockClient」ノードを展開します。StockClient プロジェクト内で「Web サービス参照」ノードを展開します。「StockService」ノードを右クリックしてポップアップメニューから「Web サービス属性を編集」を選択します。「Web サービスクライアントのセキュリティー設定」ダイアログが開きます。

- 「メッセージレベルのセキュリティーを有効化」チェックボックスを選択します。
- 「要求」ドロップダウンリストから「UserNameToken」セキュリティーメカニズムを選択します。
- 「ユーザー名」フィールドに「sherry」と入力し、「パスワード」フィールドに「mypw」と入力します。
- 「デフォルトのキーストアを使用」を選択します。
- 「閉じる」をクリックします。
これで、「 プロジェクトの配備と実行 」の指示に従って、サンプルの配備と実行に進むことができます。
ページの先頭へ
プロジェクトの配備と実行
- 「プロジェクト」ウィンドウで「StockQuoteService」プロジェクトノードを右クリックし、「配備の取り消しおよび配備」を選択します。
IDE が次の処理を行います。
- アプリケーションサーバーが起動していない場合、自動的に起動されます。
- StockQuoteService プロジェクトを構築します。構築結果が「出力」ウィンドウに表示されます。
- Application Server に server.war を配備します。
- 「プロジェクト」ウィンドウで「StockQuoteClient」プロジェクトノードを右クリックし、「プロジェクトを実行」を選択します。
IDE が次の処理を行います。
- StockQuoteClient プロジェクトを構築します。構築結果が「出力」ウィンドウに表示されます。
- Application Server に client.war を配備します。
- アプリケーションがブラウザに開きます。
「URL」フィールドに http://localhost:8080/stockquoteclient/ と表示されることを確認します。

- 「Submit」をクリックします。
表示の「View SOAP Messages」部分をクリックすると、この要求に関連する SOAP メッセージを確認できます。
ページの先頭へ
ログファイルの操作
この節の指示は省略可能です。この手順を使用して、ログファイルの変更点を確認できます。
- 次の手順に進む前に、詳細なログレベルを有効にします。
「 Application Server でのセキュリティーレベルの変更 」の指示に従ってください。
- 「プロジェクト」ウィンドウで「StockQuoteClient」プロジェクトノードを右クリックし、ポップアップメニューから「プロジェクトを実行」を選択します。
- アプリケーションサーバーのログファイル (server.log) を開きます。このファイルは <アプリケーションサーバーのインストールディレクトリ>\domains\domain1\logs ディレクトリにあります。
インストール時にデフォルトをそのまま使用した場合は、ウィンドウには C:\Sun\AppServer\domains\domain1\logs ディレクトリが表示されます。
- ログファイルの変更を確認してください。
ログファイルは、構成パネルで定義されたメソッドをモジュールが使用していることを示すために編集されます。
変更されたログファイルの部分的なサンプルは、次のリンク先で入手できます。
ページの先頭へ
その他の構成作業
この節では、実行する可能性のある、その他の構成作業について説明します。
ページの先頭へ
ポート 8080 にインストールされていない Application Server の構成情報
Sun Java System Application Server のインストールを 8080 以外のポートで実行した場合、次に示す追加の構成手順を実行してください。
- 「プロジェクト」ウィンドウで「StockQuoteClient」>「Web ページ」>「WEB-INF」および「wsdl」を展開し、エディタで stock.wsdl ファイルを開きます。
- 「ソース」ボタンをクリックし、ファイルのソースビューに切り替えます。
- ファイルの下方までスクロールして、次の行を探します。
<soap:address location="http://localhost:8080/stockservice/stockservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/>
- 8080 の値を、Application Server がインストールされているポート番号に置き換えます。
- 変更を保存して ファイルを閉じます。
ページの先頭へ
Application Server でのセキュリティーレベルの変更
- 「実行時」ウィンドウで、「Java EE SDK GlassFish」ノードを右クリックし、「管理コンソールを表示」を選択します。
- ユーザー名に admin と入力し、パスワードに adminadmin と入力します。
- 左側のナビゲーションフレームで「Application Server」のリンクをクリックします。
- 右側のフレームで「ログ」タブをクリックし、「ログレベル」タブをクリックします。
- ページの下方までスクロールして、「セキュリティー」を「最高」に設定します。
- 「保存」ボタンをクリックして、ログアウトします。
ページの先頭へ
参考資料
ページの先頭へ
まとめ
このチュートリアルでは、Web サービスクライアントと Web サービスプロバイダの間で SAML ベースと UserNameToken ベースの認証を有効にする方法を学びました。これを行うには、次の手順に従ってください。
ページの先頭へ
次の手順
ページの先頭へ