Interstage Application Server シングル・サインオン運用ガイド
目次 索引 前ページ次ページ

第7章 アプリケーションの開発> 7.1 Javaアプリケーションの開発> 7.1.5 サンプルコード

7.1.5.1 サーブレットアプリケーション

サンプルコードの概要

 本サンプルは、クライアントからすでに認証済みであることを証明する認証情報を受け取り、認証した利用者の情報を表示するサーブレットアプリケーションと、クライアントから受け取ったユーザID/パスワードで認証サーバに対して認証処理を行うサーブレットアプリケーションです。本サンプルを動作させるためにはサーブレットと連携するWebサーバを業務サーバとして構築しておく必要があります。

URL

アプリケーション

保護リソース登録

http(s)://業務サーバ名:ポート番号/jaassample/SampleServlet

クライアントから認証情報を受け取るサーブレットアプリケーション

必要

http(s)://業務サーバ名:ポート番号/jaassample/UidPasswordServlet

クライアントからユーザID/パスワードを受け取り認証するサーブレットアプリケーション

不要

サンプルコードの格納場所

 サンプルコードは以下のディレクトリに格納されています。以降、サンプルディレクトリと呼びます。


 Interstageのインストールディレクトリ:C:\Interstage
 C:\Interstage\F3FMsso\ssoatzag\sample\javaapi


 /opt/FJSVssoaz/sample/javaapi

 サンプルコードの実行に必要なファイルは以下のとおりです。

ファイル名

説明

jaassample.war

warファイル

webapp/jaassample/WEB-INF/isssojaaslogin.conf

サーブレットログイン構成ファイル

webapp/jaassample/WEB-INF/web.xml

Webアプリケーション環境定義ファイル(Deployment Descriptor)

SampleServlet.java

サーブレットjavaソースファイル

UidPasswordServlet.java

ユーザID/パスワードで認証を実行するサーブレットjavaソースファイル

jswatch.conf

JDK1.3の場合に使用するJServlet環境定義ファイル(旧バージョンV5.1系以前のServletサービス用)
本ファイルはIJServer“MyServer”で使用するようにカスタマイズされています。

jswatch14.conf

JDK1.4の場合に使用するJServlet環境定義ファイル(旧バージョンV5.1系以前のServletサービス用)
本ファイルはIJServer“MyServer”で使用するようにカスタマイズされています。

サンプルコードの実行手順

(1)サーブレットサービスの環境設定

IJServerの運用ユーザが、業務サーバの定義に対する読み込みができるように、以下の設定をしてください。

  1. useraddコマンドなどでIJServerの運用ユーザを新規作成してください。
  2. httpd.confのUserディレクティブに指定されているユーザのファイルアクセス権限と同じユーザ権限を、作成したユーザにも与えてください。
  3. テキストエディタでInterstage HTTP Serverの環境定義ファイル(httpd.conf)のUserディレクティブに1.で作成したユーザ名を指定してください。(注1)
  4. Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム] > [業務システム名] > [環境設定]タブで[適用]ボタンをクリックしてください。(注2)

注1)Interstage HTTP Serverの環境定義ファイルの詳細については、“Webサーバ運用ガイド(Interstage HTTP Server編)”−“環境設定”−“環境定義ファイル”を参照してください。
注2)詳細は“Webサーバの実効ユーザを変更する場合の注意事項”を参照してください。

(2)サーブレットアプリケーションの配備

 サーブレットコンテナへサーブレットアプリケーションを配備します。配備にはInterstage管理コンソールを使用します。ここでは、IJServerワークユニット“IJServer”に配備する場合を例に説明します。IJServerの詳細については、“J2EE ユーザーズガイド”の“J2EEアプリケーションが運用される環境(IJServer)”を参照してください。

 IJServerワークユニット“IJServer”が作成されていない場合には、“IJServer”という名前の以下のいずれかのタイプのIJServerを新規作成してください。

サーブレットアプリケーションを配備するには、以下の手順で行います。

  1. Interstage管理コンソールを使用して、[システム] > [ワークユニット] > [IJServer] > [配備]タブをクリックしてください。
  2. 起動指定のチェックを外して、IJServerが配備完了後に自動起動しないようにしておいてください。
  3. 配備設定の[配備ファイル]の[参照]ボタンをクリックして、サンプルディレクトリに格納されているjaassample.warを選択してください。
    なお、Interstage管理コンソールがインストールされているマシンとコンソールを操作するWebブラウザの実行マシンが別マシンの場合は、“サーバ上に格納されているファイルを配備する”ラジオボタンを選択した後、以下のようにInterstage管理コンソールがインストールされているマシンに存在しているjaassample.warのパスを配備ファイルのテキストボックスへ直接指定してください。

    Interstageのインストールディレクトリ:C:\Interstage
    C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\jaassample.war

    /opt/FJSVssoaz/sample/javaapi/jaassample.war
  4. jaassample.warのパスを設定した後、[配備]ボタンをクリックして配備してください。

 サンプルアプリケーションの配備されるディレクトリは、以下のディレクトリです。

 Interstageのインストールディレクトリ:C:\Interstage

C:\Interstage\J2EE\var\deployment\ijserver\IJServer\apps\jaassample.war

/opt/FJSVj2ee/var/deployment/ijserver/IJServer/apps/jaassample.war

(3)IJServerワークユニットの設定

 Interstage管理コンソールを使用して、[システム] > [ワークユニット] > [IJServer] > [環境設定]タブをクリックしてください。[ワークユニット]の設定で、以下に示すクラスパスとJavaVMオプションを設定してください。またサーブレットが使用するJDKのバージョンを変更するためにはJavaバージョンのプルダウンを選択してください。設定が終わったら、更新ボタンを押下して変更を反映させてください。

JDK1.3の場合


 Interstageのインストールディレクトリ:C:\Interstage
 クラスパス

C:\Interstage\F3FMsso\ssoatzag\lib\isssomod.jar

 JavaVMオプション

-Djava.security.auth.login.config=C:\Interstage\J2EE\var\deployment\ijserver\IJServer\apps\jaassample.war\WEB-INF\isssojaaslogin.conf -Djavax.net.ssl.trustStore=C:\Interstage\etc\security\env\keystore\.keystore


 クラスパス

/opt/FJSVssoaz/lib/isssomod.jar

 JavaVMオプション

-Djava.security.auth.login.config=/opt/FJSVj2ee/var/deployment/ijserver/IJServer/apps/jaassample.war/WEB-INF/isssojaaslogin.conf -Djavax.net.ssl.trustStore=/etc/opt/FJSVisscs/security/env/keystore/.keystore

JDK1.4の場合


 Interstageのインストールディレクトリ:C:\Interstage
 クラスパス

C:\Interstage\F3FMsso\ssoatzag\lib\isssomod14.jar

 JavaVMオプション

-Djava.security.auth.login.config=C:\Interstage\J2EE\var\deployment\ijserver\IJServer\apps\jaassample.war\WEB-INF\isssojaaslogin.conf -Djavax.net.ssl.trustStore=C:\Interstage\etc\security\env\keystore\.keystore


 クラスパス

/opt/FJSVssoaz/lib/isssomod14.jar

 JavaVMオプション

-Djava.security.auth.login.config=/opt/FJSVj2ee/var/deployment/ijserver/IJServer/apps/jaassample.war/WEB-INF/isssojaaslogin.conf -Djavax.net.ssl.trustStore=/etc/opt/FJSVisscs/security/env/keystore/.keystore

(4)ログイン構成ファイルの編集

 業務サーバとして構築したWebサーバのポート番号が80番以外の場合には、(2)で配備されたサーブレットアプリケーションに含まれているログイン構成ファイルisssojaaslogin.confのserverportの値をテキストエディタで編集する必要があります。

 ログイン構成ファイルがデフォルトで配備されるパス名


 Interstageのインストールディレクトリ:C:\Interstage

C:\Interstage\J2EE\var\deployment\ijserver\IJServer\apps\jaassample.war\WEB-INF\isssojaaslogin.conf

/opt/FJSVj2ee/var/deployment/ijserver/IJServer/apps/jaassample.war/WEB-INF/isssojaaslogin.conf


 業務サーバがポート番号81で動作している場合のログイン構成ファイル
 エントリ“com.fujitsu.interstage.sso”はクライアントから認証情報を受け取るサーブレットアプリケーションで使用します。
 エントリ“com.fujitsu.interstage.sso.uidpass”はクライアントから受け取ったユーザID/パスワードで認証サーバに対して認証処理を行うサーブレットアプリケーションで使用します。

/**
*  sample login config file
*/

com.fujitsu.interstage.sso{
  com.fujitsu.interstage.sso.auth.module.ISCredentialLoginModule Required
  serverport="81" <− ここを編集する
  ;
};
com.fujitsu.interstage.sso.uidpass{
  com.fujitsu.interstage.sso.auth.module.ISLoginModule Required
  serverport="81" <− ここを編集する
  ;
};

(5)JSSEライブラリのコピー

 JSSEのライブラリモジュールをIJServerディレクトリ配下のextディレクトリへコピーします。

C:\Interstage\J2EE\var\deployment\ijserver\IJServer\ext>copy C:\Interstage\J2EE\lib\jsse.jar
  1 個のファイルをコピーしました。
C:\Interstage\J2EE\var\deployment\ijserver\IJServer\ext>copy C:\Interstage\J2EE\lib\jnet.jar
  1 個のファイルをコピーしました。
C:\Interstage\J2EE\var\deployment\ijserver\IJServer\ext>copy C:\Interstage\J2EE\lib\jcert.jar
  1 個のファイルをコピーしました。

# cp /opt/FJSVj2ee/lib/jsse.jar /opt/FJSVj2ee/var/deployment/ijserver/IJServer/ext
# cp /opt/FJSVj2ee/lib/jnet.jar /opt/FJSVj2ee/var/deployment/ijserver/IJServer/ext
# cp /opt/FJSVj2ee/lib/jcert.jar /opt/FJSVj2ee/var/deployment/ijserver/IJServer/ext

(6)証明書の登録

 クライアントからユーザID/パスワードを受け取り認証するサーブレットアプリケーションでは、Javaアプリケーションの動作環境にSSLの環境設定が必要になります。認証サーバのサイト証明書、およびその証明書の発行者である認証局証明書を取得し、業務サーバのInterstage証明書環境に登録します。詳細については“トラストストアファイルの作成”を参照してください。なお、Interstage Traffic Directorなどのロードバランサを使用する場合には、サイト証明書はロードバランサのFQDNで発行したものを使用します。


 サイト証明書、または認証局証明書がUTF-8形式の場合、JDK1.4を使用してください。

(7)サーブレットアプリケーションを保護リソースとして定義する

 SSO管理者は、サーブレットアプリケーションのURLを、保護リソースとしてSSOリポジトリへ登録します。

  1. Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [認証基盤] > [リポジトリサーバ] > [保護リソース]を開くと、[保護リソース]ツリーの配下に定義されているサイトの一覧が表示されますので、サンプルアプリケーションを配備した業務サーバのサイト定義をクリックしてください。
  2. ツリーで[保護パス]をクリックするとパス定義の一覧画面が表示されますので、[新規作成]タブを選択してください。
  3. アクセス制御の対象とするパスとして、[パス]に“/jaassample/SampleServlet”を入力します。そして、保護リソースを利用することができるロール名のチェックボックスを選択してください。
  4. [作成]ボタンをクリックすると、一覧に設定したパス、およびロール情報が表示されますので確認してください。

 サーブレットアプリケーションのURL

http(s)://業務サーバ名:ポート番号/jaassample/SampleServlet

 登録する保護リソース

業務サーバ名:ポート番号/jaassample/SampleServlet


 登録する保護リソース:www.fujitsu.com:80/jaassample/SampleServlet
 保護リソースを利用することができるロール名:Admin

 保護リソースを登録する前に、業務サーバのサイト定義“www.fujitsu.com:80”、およびロール定義がSSOリポジトリに登録されている必要があります。登録されていない場合は、“LDIFファイルを使用する場合”、および“保護リソースなどの登録”を参照し、登録を行ってください。

(8)業務サーバのアクセス制御情報の更新

 業務サーバ管理者は(7)で登録した保護リソースの情報を業務サーバに格納します。Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム] > [業務システム名] > [アクセス制御情報の更新]タブの[更新]ボタンをクリックしてください。Interstage管理コンソールの定義詳細については、Interstage管理コンソールのヘルプを参照してください。アクセス制御情報の更新については“ロール定義の変更、追加”、および“保護リソースの変更”を参照してください。

(9)業務サーバのWebアプリケーション連携の設定の変更

 業務サーバの認証ユーザ情報の通知設定は、デフォルトでは非通知です。サンプルアプリケーションでユーザ情報を参照するために、この設定を通知するように変更します。
 業務サーバ管理者は、Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム] > [業務システム名] > [環境設定]タブの[詳細設定[表示]]をクリックし、[Webアプリケーションとの連携]の[ユーザの情報の通知]の設定を“する”に変更して[適用]ボタンをクリックしてください。

(10)業務サーバの起動

 業務サーバを起動します。Webサーバの起動については、“業務サーバの起動”を参照してください。

(11)Servletサービスの起動

 Interstage管理コンソールを使用して、[システム] > [ワークユニット] > [IJServer] > [操作]タブをクリックします。[起動]ボタンを押下してワークユニットを起動させてください。

(12)Webブラウザからサーブレットアプリケーションの呼び出し

 Webブラウザで業務サーバ上の以下のURLを指定します。


 業務サーバが“www.fujitsu.com:80”で動作している場合

http://www.fujitsu.com:80/jaassample/
https://www.fujitsu.com:80/jaassample/(業務サーバをSSLで構築した場合)

(13)実行結果

 Webブラウザに、“SSO Authentication”と“Uid and Password Authentication”が表示されます。

 “SSO Authentication”をクリックすると、証明書選択画面やフォーム認証ページまたは基本認証画面が表示されますので、(7)で設定した保護リソースを利用できるロールに属するユーザの証明書を選択するか、ユーザID/パスワードを入力してください。認証に成功すると、Webブラウザ画面に認証したユーザの認証情報が表示されます。

 以下に実行例を示します。


 ロール“Admin”に属する利用者“tarou”で認証が成功した場合

com.fujitsu.interstage.sso.auth.ISUserPrincipal tarou
com.sun.security.auth.X500Principal CN=Fujitsu Tarou, OU=User, OU=interstage, O=fujitsu, DC=com
com.fujitsu.interstage.sso.auth.ISRolePrincipal Admin

 “Uid and Password Authentication”をクリックし、UidとPasswordを入力して“Login”ボタンをクリックしてください。認証に成功すると、Webブラウザ画面に認証したユーザの認証情報が表示されます。以下に実行例を示します。

AuthorizationCredential ・・・
Dn            cn=Fujitsu Hanako,ou=User,ou=interstage,o=fujitsu,dc=com
Uid           hanako
Role           Admin
ClientAddress      /10.34.157.109
AuthMethod        basicAuth
AuthTime         Tue Sep 30 18:15:12 JST 2003
Expiration        Tue Sep 30 18:45:12 JST 2003
Principal        hanako
Principal        CN=Fujitsu Hanako,OU=User,OU=interstage,O=fujitsu,DC=com
Principal        Admin


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005