| Interstage Application Server シングル・サインオン運用ガイド |
目次
索引
![]()
|
| 第5章 アプリケーションの開発 | > 5.1 Javaアプリケーションの開発 | > 5.1.5 サンプルコード |
本サンプルコードは、画面から入力したユーザID/パスワードで認証を行い、セキュリティポリシーに従って認可を行うアプリケーションです。
サンプルコードは以下のディレクトリに格納されています。以下、サンプルディレクトリと呼びます。

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

/opt/FJSVssoaz/sample/javaapi
サンプルコードの実行に必要なファイルは以下のとおりです。
|
ファイル名 |
説明 |
|
ISSsoJaas.java |
サンプルJavaソース(認証、認可を行うクラス) |
|
ISSsoAction.java |
サンプルJavaソース(保護リソースをアクセスするクラス) |
|
isssojaaslogin.conf |
ログイン構成ファイルのサンプル |
|
isssojaas.policy |
JDK1.3の場合に使用するセキュリティポリシーファイルのサンプル |
|
isssojaasauth.policy |
JDK1.3の場合に使用するプリンシパルベースのセキュリティポリシーファイルのサンプル |
|
isssojaas14.policy |
JDK1.4の場合に使用するセキュリティポリシーファイルのサンプル |
以下を準備してください。
CLASSPATH、JAVA_HOME、PATHの環境変数を設定します。


Interstageのインストールディレクトリ:デフォルト
JDKのインストールディレクトリ:"C:\APW\JBK3\jdk"
|
C:\>set CLASSPATH= |

|
# sh |


Interstageのインストールディレクトリ:デフォルト
JDKのインストールディレクトリ:"C:\APW\JBK4\jdk"
|
C:\>set CLASSPATH=.;C:\Interstage\F3FMsso\ssoatzag\lib\isssomod14.jar |

|
# sh |
サンプルディレクトリ配下のサンプルJavaソースをjavacコマンドでコンパイルします。コンパイルが終了したら、jarコマンドを使用してjarファイル化します。javacコマンド、jarコマンドについては、Sun Microsystems,Inc.から提供されているJ2SDKのドキュメントを参照してください。


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

作業用ディレクトリ:"/home/jaastest"
|
# cp -r /opt/FJSVssoaz/sample/javaapi /home/jaastest # |
サンプルを実行する業務サーバに対するサービスIDファイルの作成をSSO管理者に依頼します。作成したサービスIDファイルはサンプルを実行する業務サーバに格納します。
サービスIDファイルの作成の詳細については、“業務サーバのサービスIDファイルの作成”を参照してください。


Interstageのインストールディレクトリ:デフォルト
SSO管理者から入手したサービスIDファイル名:"C:\ssosid\domainsid"
|
C:\Interstage\F3FMsso\ssoatzag\sample\javaapi>copy C:\ssosid\domainsid C:\Interstage\F3FMsso\ssoatzag\sample\javaapi |

SSO管理者から入手したサービスIDファイル名:"/ssosid/domainsid"
|
# cp /ssosid/domainsid /home/jaastest/javaapi |
認証サーバがSSL環境で動作している場合、認証サーバまたは認証サーバの認証局から、サイト証明書または認証局の証明書を取得し、keytoolコマンドを使用してトラストストアを作成します。

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


Interstageのインストールディレクトリ:デフォルト
認証サーバの認証局証明書ファイル名:"A:\cacert.crt"
トラストストアファイル名:"C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\mycacerts"
トラストストアのパスワード:"changeit"
|
C:\Interstage\F3FMsso\ssoatzag\sample\javaapi>keytool -import -file A:\cacert.crt -keystore C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\mycacerts |

認証サーバの認証局証明書ファイル名:"/tmp/cacert.crt"
トラストストアファイル名:"/home/jaastest/javaapi/mycacerts"
トラストストアのパスワード:"changeit"
|
# keytool -import -file /tmp/cacert.crt -keystore /home/jaastest/javaapi/mycacerts Certificate fingerprints: |
サンプルログイン構成ファイルisssojaaslogin.confを実行環境に合わせて編集します。authserverオプションに使用する認証サーバのURLを設定します。また、serviceidpathオプションに使用するサービスIDファイルの絶対パス名を設定します。


Interstageのインストールディレクトリ:デフォルト
認証サーバのURL:"https://authenticate_server.fujitsu.com/ssoatcag"
サービスIDファイルの絶対パス名:"C:\Interstage\F3FMsso\ssoatzag\sample\javaapi\domainsid"
/**
* sample login config file
*/
/* This sample does not use Business server configuration. */
com.fujitsu.interstage.sso{
com.fujitsu.interstage.sso.auth.module.ISLoginModule Required
authserver="https://authenticate_server.fujitsu.com/ssoatcag" <− ここを編集する
serviceidpath="C:\\Interstage\\F3FMsso\\ssoatzag\\sample\\javaapi\\domainsid" <− ここを編集する
timeout="20"
;
}; |

認証サーバのURL:"https://authenticate_server.fujitsu.com/ssoatcag"
サービスIDファイルの絶対パス名:"/home/jaastest/javaapi/domainsid"
/**
* sample login config file
*/
/* This sample does not use Business server configuration. */
com.fujitsu.interstage.sso{
com.fujitsu.interstage.sso.auth.module.ISLoginModule required
authserver="https://authenticate_server.fujitsu.com/ssoatcag" <− ここを編集する
serviceidpath="/home/jaastest/javaapi/domainsid" <− ここを編集する
timeout="20"
;
}; |
セキュリティポリシーファイルisssojaasauth.policyを編集します。サンプルのセキュリティポリシーファイルでは、ユーザID"guest"にプロパティjava.homeの読み込み権、ロール名"administrator"にプロパティuser.homeの読み込み権の認可が設定されています。この部分をSSOリポジトリに登録されているユーザ名およびロール名に変更します。
以下にユーザID"tarou"へプロパティjava.homeの読み込み権、ロール"Admin"へプロパティuser.homeの読み込み権を認可する例を示します。

/* sample policy file */
grant codeBase "file:isssoaction.jar" ,
principal com.fujitsu.interstage.sso.auth.ISUserPrincipal "tarou" { <− ユーザID
permission java.util.PropertyPermission "java.home","read";
};
grant codeBase "file:isssoaction.jar" ,
principal com.fujitsu.interstage.sso.auth.ISRolePrincipal "Admin" { <− ロール名
permission java.util.PropertyPermission "user.home","read";
}; |
セキュリティポリシーファイルisssojaas14.policyを編集します。サンプルのセキュリティポリシーファイルでは、ユーザID"guest"にプロパティjava.homeの読み込み権、ロール名"administrator"にプロパティuser.homeの読み込み権の認可が設定されています。この部分をSSOリポジトリに登録されているユーザ名およびロール名に変更します。
以下にユーザID"tarou"へプロパティjava.homeの読み込み権、ロール"Admin"へプロパティuser.homeの読み込み権を認可する例を示します。

|
/* sample policy file */ |
起動方法の例を以下に示します。

|
C:\>cd C:\Interstage\F3FMsso\ssoatzag\sample\javaapi |
|
# sh |

|
C:\>cd C:\Interstage\F3FMsso\ssoatzag\sample\javaapi |

|
# sh |
サンプルアプリケーションの実行結果は以下のようになります。"UserName="とプロンプトが出力されたら認証サーバに登録されているユーザIDを入力します。"Password="とプロンプトが出力されたらユーザのパスワードを入力します。認証に成功するとユーザの認証情報が出力されます。認証サーバ、リポジトリサーバの設定や実行ユーザ環境によって出力される内容が若干異なります。

ユーザ"tarou"が"Admin"ロールに属している場合
|
UserName=tarou |
ユーザ"tarou"が"Admin"ロールに属していない場合
|
UserName=tarou |
目次
索引
![]()
|