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

 Interstageのインストールディレクトリ:C:\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のインストールディレクトリ:C:\Interstage
 JDKのインストールディレクトリ:C:\Interstage\JDK13
| 
 C:\>set CLASSPATH=  | 
 
| 
 # sh  | 

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


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


 Interstageのインストールディレクトリ:C:\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  | 
認証サーバのサイト証明書、およびその証明書の発行者である認証局証明書を取得し、Interstage証明書環境に登録します。詳細については “トラストストアファイルの作成”を参照してください。

 サイト証明書、または認証局証明書がUTF-8形式の場合、JDK1.4を使用してください。
サンプルログイン構成ファイルisssojaaslogin.confを実行環境に合わせて編集します。authserverオプションに認証基盤のURL+“/ssoatcag”を設定します。また、serviceidpathオプションに使用するサービスIDファイルの絶対パス名を設定します。


 Interstageのインストールディレクトリ:C:\Interstage
 認証基盤のURL:https://authenticate_server.fujitsu.com:10443
 サービス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:10443/ssoatcag"  <− ここを編集する
   serviceidpath="C:\\Interstage\\F3FMsso\\ssoatzag\\sample\\javaapi\\domainsid"  <− ここを編集する
   timeout="20"
   ;
}; | 
 
 認証基盤のURL:https://authenticate_server.fujitsu.com:10443
 サービス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:10443/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:\Interstage\etc\security\env\keystore\.keystore
| 
 C:\>cd C:\Interstage\F3FMsso\ssoatzag\sample\javaapi  | 
 
 
 トラストストアファイル名:/etc/opt/FJSVisscs/security/env/keystore/.keystore
| 
 # sh  | 

 トラストストアファイル名:C:\Interstage\etc\security\env\keystore\.keystore
| 
 C:\>cd C:\Interstage\F3FMsso\ssoatzag\sample\javaapi  | 
 
 トラストストアファイル名:/etc/opt/FJSVisscs/security/env/keystore/.keystore
| 
 # sh  | 
“UserName=”とプロンプトが出力されたら認証サーバに登録されているユーザIDを入力します。“Password=”とプロンプトが出力されたらユーザのパスワードを入力します。認証に成功するとユーザの認証情報が出力されます。サンプルアプリケーションの実行結果は以下のようになります。認証サーバ、リポジトリサーバの設定やサンプルアプリケーションを実行するユーザの環境によって出力される内容が若干異なります。

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