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

第5章 アプリケーションの開発> 5.1 Javaアプリケーションの開発> 5.1.2 プログラムの開発

5.1.2.5 認可の実行

 認証に成功した場合、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();
subject.doAs(subject, myAction);

 プリンシパル情報にアクセス権を与えるにはセキュリティポリシーファイルを記述します。セキュリティポリシーファイルについては“セキュリティポリシーファイルの作成”を参照してください。


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

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