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

第5章 アプリケーションの開発 > 5.1 Javaアプリケーションの開発 > 5.1.5 サンプルコード

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

サンプルコードの概要

 本サンプルは、クライアントからすでに認証済みであることを証明する認証情報を受け取り、認証した利用者の情報を表示するサーブレットアプリケーションです。

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

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

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

image image
 /opt/FJSVssoaz/sample/javaapi

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

ファイル名

説明

jaassample.war

warファイル

jswatch.conf

JDK1.3の場合に使用するJServlet環境定義ファイル

jswatch14.conf

JDK1.4の場合に使用するJServlet環境定義ファイル

webapp/jaassample/isssojaaslogin.conf

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

webapp/jaassample/WEB-INF/web.xml

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

SampleServlet.java

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

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

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

 サーブレットサービスの環境設定を行っていない場合、サーブレット・ゲートウェイをWWWサーバの拡張機能として動作できるよう、WWWサーバの環境定義ファイルに登録します。ここではInterstage HTTP Serverの場合についての例を示します。設定の詳細および他のWWWサーバを使用する場合については、“J2EE ユーザーズガイド”−“Servletサービスの運用準備”−“WWWサーバの環境設定”を参照してください。

image
image
 Interstageのインストールディレクトリ:デフォルト

WWWサーバの環境定義ファイルの格納先

C:\Interstage\F3FMihs\conf\httpd.conf

以下の内容をファイルの最後に追加

# サーブレット・ゲートウェイ
LoadModule jsvlt_module C:\Interstage\F3FMjs2\gateway\jsgw_apapi_is.dll
include C:\Interstage\F3FMjs2\conf\jsgw_apapi.conf

image image

WWWサーバの環境定義ファイルの格納先

/etc/opt/FJSVihs/conf/httpd.conf

以下の内容をファイルの最後に追加

# サーブレット・ゲートウェイ
LoadModule jsvlt_module /opt/FJSVjs2/gateway/jsgw_apapi_is.so
include /etc/opt/FJSVjs2/jsgw_apapi.conf

(2) サーブレットサービスの停止

 サーブレットサービスが起動している場合、jssvstopコマンドを用いてサーブレットサービスを停止させます。詳細は“J2EE ユーザーズガイド”−“Servletサービスの運用”−“Servletサービスの運用手順”−“Servletサービスの停止”を参照してください。

image
image
 Interstageのインストールディレクトリ:デフォルト

C:\>cd C:\Interstage\F3FMjs2\bin
C:\Interstage\F3FMjs2\bin>jssvstop

image image

# cd /opt/FJSVjs2/bin
# ./jssvstop

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

 サーブレットサービスが動作するWWWサーバとして、Interstage HTTP Serverを使用する場合、サーブレットアプリケーションの配備を行う前に、以下の例に従ってJ2EE Deploymentツール環境定義ファイルに"ui.web.server.kind=ISHServer"の追加を行ってください。

image
image
J2EE Deploymentツール環境定義ファイルの格納先


Interstageのインストールディレクトリ:デフォルト

C:\Interstage\J2EE\etc\isdeploy.conf

設定例

# INTERSTAGE J2EE Deployment Tool Configuration file
#ui.tempDirectory=c\:\\INTERSTAGE\\J2EE\\var\\isdeploy
#ui.web.servletGateway.filename=c\:\\INTERSTAGE\\F3FMjs2\\conf\\jsgw.conf
ui.logMaxLength=5
ui.web.server.kind=ISHServer <− ここを追加する

image


J2EE Deploymentツール環境定義ファイルの格納先

/opt/FJSVj2ee/etc/isdeploy.conf

設定例

# INTERSTAGE J2EE Deployment Tool Configuration file
#ui.tempDirectory=/var/opt/FJSVj2ee/isdeploy
#ui.web.servletGateway.filename=/etc/opt/FJSVjs2/jsgw.conf
ui.logMaxLength=5
ui.web.server.kind=ISHServer <− ここを追加する

image
"ui.web.server.kind"の省略値が"ISHServer"のため、本設定は省略可能です。

 J2EE Deploymentツール環境定義ファイルへの設定が終了後、isdeployコマンドを実行して、J2EE Deploymentツールを起動してください。

image
image
 Interstageのインストールディレクトリ:デフォルト

C:\>isdeploy

image image

JDK1.3の場合
# JAVA_HOME=/opt/FJSVawjbk/jdk13
JDK1.4の場合
# JAVA_HOME=/opt/FJSVawjbk/jdk14

# export JAVA_HOME
# PATH=$JAVA_HOME/bin:$PATH
# export PATH
# /opt/FJSVj2ee/bin/isdeploy

 起動後、左のフレームのツリーから“ホスト”−“localhost”−“Deployed”−“IJServerリスト”の下にある“MyServer”を選択して右クリックで“配備”を実行します。配備するwarファイルはサンプルディレクトリに格納されているjaassample.warです。J2EE Deploymentツールについての詳細は“J2EE ユーザーズガイド”の“J2EE Deployment ツール”を参照してください。

(4) JServlet環境定義ファイルの編集

 以下にサンプルとして提供しているJServlet環境定義ファイルを示します。

 サンプルとして提供しているJServlet環境定義ファイルを使用するには、以下の例に従い現在サーブレットサービスが使用しているJServlet環境定義ファイルを退避し、サンプルで提供しているJServlet環境定義ファイルに置き換えます。

JDK1.3の場合

image
 Interstageのインストールディレクトリ:デフォルト
 サンプルで提供しているC:\Interstage\F3FMsso\ssoatzag\sample\javaapi\jswatch.confの内容

# JServlet environment definition file

container.checkFrequency=1800
container.checkCount=3
container.restart=true
container.shutdownInterval=600

myserver_001.server=myserver
myserver_001.ipaddress=localhost
myserver_001.port=8009
myserver_001.log=true
myserver_001.containerconf=C:\Interstage\F3FMjs2\conf\myserver_001.xml
myserver_001.bin=C:\APW\JBK3\jdk\bin\java.exe
myserver_001.bin.parameters=-Xrs -Dcom.fujitsu.interstage.jservlet.j2ee=true -Djava.security.auth.login.config=C:\Interstage\J2EE\var\deployment\deployed\webapp\jaassample\isssojaaslogin.conf
myserver_001.env=CLASSPATH=C:\APW\JBK3\jdk\lib\tools.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMjs2\classes\jsboot.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMjs2\classes\servlet.jar
myserver_001.env=CLASSPATH=C:\Interstage\J2EE\lib\jsse.jar
myserver_001.env=CLASSPATH=C:\Interstage\J2EE\lib\jnet.jar
myserver_001.env=CLASSPATH=C:\Interstage\J2EE\lib\jcert.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMsso\ssoatzag\lib\isssomod.jar
myserver_001.env=SystemRoot=C:\WINNT\

image
 Interstageのインストールディレクトリ:デフォルト

C:\>cd C:\Interstage\F3FMjs2\conf
C:\Interstage\F3FMjs2\conf>move jswatch.conf jswatch.conf.org
  1 個のファイルを移動しました。(注)
C:\Interstage\F3FMjs2\conf>copy C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\jswatch.conf C:\Interstage\F3FMjs2\conf\jswatch.conf
  1 個のファイルをコピーしました。
C:\Interstage\FJSVjs2\conf>

(注)OSによっては出力されない場合があります。

image image
サンプルで提供している/opt/FJSVssoaz/sample/javaapi/jswatch.confの内容

# JServlet environment definition file

container.checkFrequency=1800
container.checkCount=3
container.restart=true
container.shutdownInterval=600

myserver_001.server=myserver
myserver_001.ipaddress=localhost
myserver_001.port=8009
myserver_001.log=true
myserver_001.containerconf=/opt/FJSVjs2/conf/myserver_001.xml
myserver_001.bin=/opt/FJSVawjbk/jdk13/bin/java
myserver_001.bin.parameters=-Xrs -Dcom.fujitsu.interstage.jservlet.j2ee=true -Djava.security.auth.login.config=/opt/FJSVj2ee/var/deployment/deployed/webapp/jaassample/isssojaaslogin.conf
myserver_001.env=CLASSPATH=/opt/FJSVawjbk/jdk13/lib/tools.jar
myserver_001.env=CLASSPATH=/opt/FJSVjs2/classes/jsboot.jar
myserver_001.env=CLASSPATH=/opt/FJSVjs2/classes/servlet.jar
myserver_001.env=CLASSPATH=/opt/FJSVj2ee/lib/jsse.jar
myserver_001.env=CLASSPATH=/opt/FJSVj2ee/lib/jnet.jar
myserver_001.env=CLASSPATH=/opt/FJSVj2ee/lib/jcert.jar
myserver_001.env=CLASSPATH=/opt/FJSVssoaz/lib/isssomod.jar

image

# cd /opt/FJSVjs2/conf
# mv jswatch.conf jswatch.conf.org
# cp /opt/FJSVssoaz/sample/javaapi/jswatch.conf /opt/FJSVjs2/conf/jswatch.conf
#

JDK1.4の場合

image
 Interstageのインストールディレクトリ:デフォルト
 サンプルで提供しているC:\Interstage\F3FMsso\ssoatzag\sample\javaapi\jswatch14.confの内容

# JServlet environment definition file

container.checkFrequency=1800
container.checkCount=3
container.restart=true
container.shutdownInterval=600

myserver_001.server=myserver
myserver_001.ipaddress=localhost
myserver_001.port=8009
myserver_001.log=true
myserver_001.containerconf=C:\Interstage\F3FMjs2\conf\myserver_001.xml
myserver_001.bin=C:\APW\JBK4\jdk\bin\java.exe
myserver_001.bin.parameters=-Xrs -Dcom.fujitsu.interstage.jservlet.j2ee=true -Djava.security.auth.login.config=C:\Interstage\J2EE\var\deployment\deployed\webapp\jaassample\isssojaaslogin.conf
myserver_001.env=CLASSPATH=C:\APW\JBK4\jdk\lib\tools.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMjs2\classes\jsboot.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMjs2\classes\servlet.jar
myserver_001.env=CLASSPATH=C:\Interstage\F3FMsso\ssoatzag\lib\isssomod14.jar
myserver_001.env=SystemRoot=C:\WINNT\

image
 Interstageのインストールディレクトリ:デフォルト

C:\>cd C:\Interstage\F3FMjs2\conf
C:\Interstage\F3FMjs2\conf>move jswatch.conf jswatch.conf.org
  1 個のファイルを移動しました。(注)
C:\Interstage\F3FMjs2\conf>copy C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\jswatch14.conf C:\Interstage\F3FMjs2\conf\jswatch.conf
  1 個のファイルをコピーしました。
C:\Interstage\FJSVjs2\conf>

(注)OSによっては出力されない場合があります。

image image
 サンプルで提供している/opt/FJSVssoaz/sample/javaapi/jswatch14.confの内容

# JServlet environment definition file

container.checkFrequency=1800
container.checkCount=3
container.restart=true
container.shutdownInterval=600

myserver_001.server=myserver
myserver_001.ipaddress=localhost
myserver_001.port=8009
myserver_001.log=true
myserver_001.containerconf=/opt/FJSVjs2/conf/myserver_001.xml
myserver_001.bin=/opt/FJSVawjbk/jdk14/bin/java
myserver_001.bin.parameters=-Xrs -Dcom.fujitsu.interstage.jservlet.j2ee=true -Djava.security.auth.login.config=/opt/FJSVj2ee/var/deployment/deployed/webapp/jaassample/isssojaaslogin.conf
myserver_001.env=CLASSPATH=/opt/FJSVawjbk/jdk14/lib/tools.jar
myserver_001.env=CLASSPATH=/opt/FJSVjs2/classes/jsboot.jar
myserver_001.env=CLASSPATH=/opt/FJSVjs2/classes/servlet.jar
myserver_001.env=CLASSPATH=/opt/FJSVssoaz/lib/isssomod14.jar

image

# cd /opt/FJSVjs2/conf
# mv jswatch.conf jswatch.conf.org
# cp /opt/FJSVssoaz/sample/javaapi/jswatch14.conf /opt/FJSVjs2/conf/jswatch.conf
#

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

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

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

image
 Interstageのインストールディレクトリ:デフォルト

C:\Interstage\J2EE\var\deployment\deployed\webapp\jaassample\isssojaaslogin.conf

image image

/opt/FJSVj2ee/var/deployment/deployed/webapp/jaassample/isssojaaslogin.conf

image
 業務サーバがポート番号81で動作している場合のログイン構成ファイル

/**
*  sample login config file
*/

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

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

 サーブレットアプリケーションのURLを、保護リソースとしてSSOリポジトリへ登録します。その際に保護リソースを利用可能にするロール名またはロールセット名も併せて設定します。

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

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

登録する保護リソース

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

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

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

  1. InfoDirectory管理ツールを起動します。
    image
    [スタート]メニューで[プログラム][InfoDirectory][管理ツールクライアント]を選択します。
    image
    Xウィンドウが動作する環境で、techMgrコマンドを実行します。
  2. [InfoDirectory管理ツール]画面の[接続][ログイン]を選択します。
    −>[ログイン]画面が表示されます。
  3. [ログイン]画面で[DSA選択]ボタンを押下します。
  4. Interstageシングル・サインオン用のDSAの作成と起動”で作成したDSAを選択し、[OK]ボタンを押下します。(例.DSA名"cn=ssoDsa-389"を選択)
  5. [ログイン]画面でDSA管理者のユーザDN/パスワードを入力し、[ログイン]ボタンを押下します。(例.DSA管理者のユーザDNは"cn=ssoadmin"、パスワードは"ssoadminpass")
  6. [InfoDirectory管理ツール]画面の[ディレクトリ]タブのツリーに表示されている"jp"−"Fujitsu Limited"−"SSO ACI"−"Resource"−"jp"−"co"−"fujitsu"配下にある"www+81"を選択し、右クリックします。表示されたドロップダウンメニューから[エントリ登録][エントリ登録]を選択します。
  7. [エントリ登録]画面の[カテゴリ]から【SSO】を選択します。
    −>[構造オブジェクトクラス一覧]にInterstage シングル・サインオン用のオブジェクトクラスが表示されます。
  8. [エントリ登録]画面の[構造オブジェクトクラス一覧]から“SSOリソース”を選択します。
  9. [エントリ登録]画面の[一般]タブ−[属性][名前]を選択し、[属性値][値]欄に"/jaassample/SampleServlet"と入力し[追加]ボタンを押下します。
  10. [エントリ登録]画面の[補助]タブ−[属性][SSOロール名]を選択し、[属性値][値]欄に"Admin"と入力し[追加]ボタンを押下します。
  11. [エントリ登録]画面の[OK]ボタンを押下すると、保護リソースを追加した旨の[情報]画面が表示されますので、[了解]ボタンを押下します。
    −>[ディレクトリ]タブのツリーに表示されている"jp"−"Fujitsu Limited"−"SSO ACI"−"Resource"−"jp"−"co"−"fujitsu"−"www+81"に"/jaassample/SampleServlet"が追加され[InfoDirectory管理ツール]画面に戻ります。

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

 (6)で登録した保護リソースの情報を業務サーバに格納するために、業務サーバのアクセス制御情報更新コマンド(ssorfinfaz)を実行してください。詳細については“アクセス制御情報ファイルの設定”を参照してください。

(8) 業務サーバの起動

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

(9)サーブレットサービスの起動

 jssvstartコマンドを使用して、サーブレットサービスを起動させてください。詳細については、“J2EE ユーザーズガイド”−“Servletサービスの運用”−“Servletサービスの運用手順”−“Servletサービスの起動”を参照してください。

image
image
 Interstageのインストールディレクトリ:デフォルト

C:\>cd C:\Interstage\F3FMjs2\bin
C:\Interstage\F3FMjs2\bin>jssvstart

image image

# cd /opt/FJSVjs2/bin
# ./jssvstart

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

 WWWブラウザで業務サーバ上で動作しているサーブレットアプリケーションのURLを指定します。

image
 業務サーバが"www.fujitsu.co.jp:81"で動作している場合

http://www.fujitsu.co.jp:81/jaassample/SampleServlet

(11) 実行結果

 ブラウザからサーブレットアプリケーションにアクセスすると、証明書選択画面や基本認証画面が表示されますので、(6)で設定した保護リソースを利用できるロールに属するユーザの証明書を選択するか、ユーザID/パスワードを入力してください。認証に成功すると、ブラウザ画面に認証したユーザの認証情報が表示されます。

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

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

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


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

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