Interstage Application Server シングル・サインオン運用ガイド |
目次 索引 |
第5章 アプリケーションの開発 | > 5.1 Javaアプリケーションの開発 | > 5.1.2 プログラムの開発 |
認証に成功した場合、Subjectオブジェクトを利用してJAASの認可機能を使用することができます。
JAASの認可機能は、シングル・サインオンの認可機能であるWebサーバで公開している資源のアクセス制御を行うものではなく、認証された利用者のプリンシパル情報に基づき、Javaアプリケーションの処理の実行に対して、アクセス制御を行うことができます。
シングル・サインオンJavaAPIでは、プリンシパル情報をユーザID、ロール名、およびSSOリポジトリの一意の識別名と定義しています。アクセス制御には、Javaセキュリティマネージャを利用します。
ここではアプリケーションが実行する動作のサンプルISSsoAction.javaの例を用いて処理を説明します。このクラスは、java.security.PrivilegedActionを実装し、認証された利用者として実行するすべてのコードを含むrunメソッドを保持します。
import java.security.AccessControlException; import java.security.PrivilegedAction; public class ISSsoAction implements PrivilegedAction{ public Object run() { try{ System.out.println("java.home=" + System.getProperty("java.home")); }catch(AccessControlException ex){ System.out.println("This user does not have a permission to " + "read java.home property"); } try{ System.out.println("user.home=" + System.getProperty("user.home")); }catch(AccessControlException ex){ System.out.println("This user does not have a permission to " + "read user.home property"); } return null; } } |
SubjectのdoAsメソッドに対して、Subjectオブジェクトと上記のクラスのインスタンスを渡すことによりrunメソッドがプリンシパル情報のアクセス権に従って実行されます。コードを以下に示します。
PrivilegedAction myAction = new ISSsoAction(); |
プリンシパル情報にアクセス権を与えるにはセキュリティポリシーファイルを記述します。セキュリティポリシーファイルについては“セキュリティポリシーファイルの作成”を参照してください。
目次 索引 |