Interstage Application Server シングル・サインオン運用ガイド |
目次
索引
![]() ![]() |
第6章 アプリケーションの開発 | > 6.1 Javaアプリケーションの開発 | > 6.1.2 プログラムの開発 |
JAAS認証に成功した場合、LoginContextをインスタンス化する際に指定したSubjectオブジェクトに対して以下のオブジェクトが関連付けられます。
認証情報を表すオブジェクトはSubjectオブジェクトの以下のメソッドで取得することができます。
getPrivateCredentials()メソッドはSubjectオブジェクトに関連付けられているすべてのCredentialオブジェクトの集合を取得できます。getPrivateCredentials(Class c)メソッドは、Subjectオブジェクトに関連付けられているすべてのCredentialオブジェクトのうち、Classクラス、またはそのサブクラスのオブジェクトの集合を取得できます。関連付けられるオブジェクトのクラスを以下に示します。
クラス名 |
説明 |
com.fujitsu.interstage.sso.auth.ISAuthorizationCredential |
SSO認証済み情報(Cookieから取得される値)、および認証情報内の情報を保持します。 |
コードを以下に示します。
Set credentials = subject.getPrivateCredentials(); // display credential information Iterator iterator = credentials.iterator(); while (iterator.hasNext()) { // 認証情報を参照する処理 if (credential instanceof ISAuthorizationCredential){ } } |
PrincipalオブジェクトはSubjectオブジェクトの以下のメソッドで取得することができます。
この2つのメソッドの違いはgetPrivateCredentialsメソッドと同様です。関連付けられるオブジェクトのクラスを以下に示します。
クラス名 |
説明 |
com.fujitsu.interstage.sso.auth.ISUserPrincipal |
認証された利用者のユーザIDを表します。 |
com.fujitsu.interstage.sso.auth.ISRolePrincipal |
利用者が属するロール名を表します。利用者がロールセットに属する場合、ロールセットに含まれるロールがそれぞれISRolePrincipalのオブジェクトとして関連付けられます。このオブジェクトは利用者がロールに属さない場合は設定されません。 |
JDK1.3の場合 |
利用者のSSOリポジトリ内の一意の識別名(DN)を表します。 |
コードを以下に示します。
Set principals = subject.getPrincipals(); iterator = principals.iterator(); while (iterator.hasNext()) { Principal principal = (Principal)iterator.next(); System.out.println("Principal=" + principal.getName()); } |
■通知される利用者情報について
業務サーバの定義を使用して認証先の認証サーバを指定する場合、ISAuthorizationCredentialオブジェクト内に保持する以下の情報は、Interstage管理コンソールで設定する[ユーザの情報の通知]の設定を“する”にした場合に通知されます。
[ユーザの情報の通知]については、Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム] > [業務システム名] > [環境設定]タブ > [詳細設定[表示]]をクリックし、[Webアプリケーションとの連携]の[ユーザの情報の通知]を確認してください。この設定の詳細については、Interstage管理コンソールのヘルプを参照してください。
[ユーザの情報の通知]の設定の反映には、アプリケーションの再起動が必要です。アプリケーションがサーブレットアプリケーションの場合にはIJServerを再起動してください。ログイン構成については、“ログイン構成ファイルの作成”を参照してください。
■再認証の間隔が無期限のユーザ情報の通知について
ISAuthorizationCredentialオブジェクトのgetExpirationメソッドを使用して再認証の間隔を取得できますが、再認証の間隔が無期限の場合には、getExpirationで取得される時刻とgetAuthTimeメソッドで取得される時刻は同じ値になります。
JDK1.3の場合、かつSSOリポジトリ内の一意の識別名に英数字と記号以外の文字が含まれる場合、X500Principalオブジェクトは使用できません。ISAuthorizationCredentialオブジェクトのgetDNメソッドを使ってSSOリポジトリ内の一意の識別名を表す文字列オブジェクトを取得するか、JDK1.4を使用してください。
目次
索引
![]() ![]() |