シングル サインオンの使用

サーブレットおよび EJB の仕様書には、認証の条件 (つまり、ロールベースのセキュリティによるアクセス コントロール) の概要が記載されていますが、ベンダ固有の認証メカニズムも認められています。JRun バージョン 3.0 には、サーブレット/JSP および EJB についてさまざまな認証メカニズムが用意されていましたが、重複するユーザ/ロールの定義または各メカニズムへのカスタマイズされた拡張子を維持する必要がありました。JRun バージョン 3.1 は、シングル サインオンと呼ばれる統合された認証メカニズムを特長としています。

J2EE セキュリティの条件および用語の詳細については、『Java 2 Platform Enterprise Edition Specification, v1.2』を参照してください。補足情報については、サーブレット2.2 の仕様書および EJB 1.1 の仕様書を参照してください。


メモ

この説明を読む前に、Web アプリケーションの認証についての知識を持っている必要 があります。詳細については、『JRun によるアプリケーションの開発』の「Web アプ リケーション認証」を参照してください。また、EJB 認証についての知識を持っている 必要があります。詳細については、JRun EJB サンプルを参照してください。


セキュリティ関連の移行オプション

JRun バージョン 3.1 のセキュリティ アーキテクチャにはほとんど下位互換性があります。そのため、現在の認証方法を維持することも、現在のアーキテクチャに移行することもできます。

JRun バージョン 3.1 の既定の Web および EJB 認証仕様には、シングル サインオン機能が実装されています。この機能を使用するには、次のタスクを実行します。

EJB 認証またはサーブレット/JSP 認証をカスタマイズしていた場合は、ユーザ ストアの実行時保守の必要性を検討し、必要に応じて実行時シングル サインオンを実装します。実行時シングル サインオンについては、"動的なユーザの追加および削除"を参照してください。

JRun 3.0 の認証メカニズム

JRun 3.1 シングル サインオンによる影響を完全に理解するには、JRun 3.0 で提供されていた 2 つの部分からなる認証メカニズムを理解する必要があります。次の説明では、これらの異なる 2 つのメカニズムの概要について説明します。

JRun 3.0 でのサーブレットおよび JSP 認証

次の表は、JRun 3.0 サーブレット エンジンの認証およびロールベースのセキュリティの概要を示します。
アクティビティ
メカニズム
コメント
保護されたリソースの指定
web.xml ファイル内の
url-pattern 要素
 
保護されたリソースにアクセスできる
ロールの定義
web.xml ファイル内の
role-name 要素
 
ユーザのロールへの割り当て
users.properties ファイル内のrole 接頭辞
既定のメカニズム。
書き換え可能。
実行時のユーザ名
およびパスワードの指定
web.xml ファイル内の
auth-method 要素がログイン
フォームの表示方法を制御します。
auth-methodBASIC を指定すると、Web ブラウザからユーザ名とパスワードの入力が要求されます。auth-methodFORM を指定する場合は、ログイン フォームを作成する必要があります。
ユーザ名およびパスワードのレポジトリ
users.properties ファイル内の user 接頭辞
既定のメカニズム。
書き換え可能。
認証ハンドラ
ResourceAuthenticator
クラス
authentication サービスに関連付けられています。
書き換え不可。
認証実装クラス内のメソッドを呼び出します。
既定の認証実装
PropertyFileAuthentication クラス
authentication サービスに関連付けられています。
書き換え可能。

次の図は、JRun 3.0 サーブレット エンジン内での既定の認証を示します。

次の一覧は、JRun 3.0 サーブレットおよび JSP セキュリティ コンポーネントの詳しい説明を示します。

JRun 3.0 での EJB 認証

次の表は、JRun 3.0 EJB エンジンでの認証およびロールベースのセキュリティの概要を示します。
アスペクト
メカニズム
コメント
保護方法の指定
Bean プロパティ ファイル内の
allowedIdentities プロパティまたは ejb-jar.xml ファイル内の method-permission 要素
 
保護されたリソースにアクセスできる
ロールの定義
Bean プロパティ ファイル内の allowedIdentities プロパティまたは ejb-jar.xml ファイル内の role-name 要素
 
ユーザのロールへの割り当て
deploy.properties ファイル内の ejipt.roles プロパティ
既定のメカニズム。
書き換え可能。
実行時のユーザ名
およびパスワードの指定
Properties オブジェクト内のユーザ (SECURITY_PRINCIPAL) およびパスワード
(SECURITY_CREDENTIALS) を
InitialContext コンストラクタに渡します。
 
ユーザ名およびパスワードのレポジトリ
deploy.properties ファイル内の ejipt.users プロパティ
既定のメカニズム。
書き換え可能。
認証ハンドラ
UserManager
認証実装 Bean 内のメソッドを
呼び出します。書き換え不可。
既定の認証実装
LoginSessionBean
UserBean、および RoleBean
deploy.properties ファイル
内のプロパティによって確立されます。書き換え可能。

次の図は、JRun 3.0 EJB エンジン内での既定の認証を示します。

次の一覧は、JRun 3.0 EJB セキュリティ コンポーネントの詳しい説明を示します。

JRun 3.1 のシングル サインオン

JRun 3.1 の シングル サインオン機能を利用すると、以前はサーブレットと JSP でしか使用できなかった認証実装クラスを EJB コンポーネントでも使用できます。既定では、このことは user.properties ファイル内で EJB ユーザを定義することを意味します。JRun バージョン 3.0 の Web アプリケーション認証に対して行った拡張は、JRun バージョン 3.1 EJB 認証に自動的に適用されます。

次の表は、JRun 3.1 での認証およびロールベースのセキュリティの概要を示します。
アクティビティ
メカニズム
コメント
保護されたリソースの指定
web.xml ファイル内の
url-pattern 要素
 
保護方法の指定
ejb-jar.xml ファイル内の
method-permission 要素
 
保護されたリソースにアクセスできる
ロールの定義
web.xml ファイル内の
role-name 要素または
ejb-jar.xml ファイル内の
role-name 要素
 
ユーザのロールへの割り当て
users.properties ファイル内の role 接頭辞
既定のメカニズム。
書き換え可能。
実行時のユーザ名
およびパスワードの指定
web.xml ファイル内の
auth-method 要素がログイン
フォームの表示方法を制御します。
auth-methodBASIC を指定すると、Web ブラウザからユーザ名とパスワードの入力が要求されます。auth-methodFORM を指定する場合は、ログイン フォームを作成する必要があります。サーブレットおよび JSP ページはユーザ名およびパスワードを EJB エンジンに渡す必要はありません。
ユーザ名およびパスワードのレポジトリ
users.properties ファイル内のuser 接頭辞
既定のメカニズム。
書き換え可能。
認証ハンドラ
JRunAuthenticator クラス
jrunauth サービスに関連付けられています。書き換え不可。
認証実装クラス内のメソッドを呼び出します。
既定の認証実装
PropertyFileAuthentication クラス
jrunauth サービスに関連付けられています。
サーブレットおよび EJB セキュリティの両方に使用されます。
書き換え可能。

次の図は JRun 3.1 での既定の認証を示します。

次の一覧は、JRun 3.1 サーブレットおよび JSP セキュリティ コンポーネントの詳しい説明を示します。

EJB エンジンでは UserManagerUserBeanRoleBean、および LoginSessionBean EJB も使用されます。これらの違いは次のとおりです。

カスタム認証実装の作成

サーブレットまたは JSP 認証をカスタマイズしていた場合は、その認証が EJB と連動する必要があります。UserBeanRoleBean、および LoginSessionBean を使用して EJB スタンドアロン認証をカスタマイズした場合は、カスタマイズした EJB スタンドアロン認証ロジックを JRun 認証フレームワーク内に実装する必要があります。このトピックの情報については、『JRun によるアプリケーションの開発』と
http://www.allaire.com/handlers/index.cfm?ID=17555&Method=Full にある JRun 開発者センター (JRun DevCenter) を参照してください。

動的なユーザの追加および削除

JRun バージョン 3.0 では、ユーザをユーザ ストアに追加した場合、新しいユーザを認識させるために JRun を再起動する必要がありました。JRun バージョン 3.1 ではユーザの追加および削除を動的に行うことができます。この機能は実行時シングル サインオンとも呼ばれています。


メモ

この機能は、JRun 3.1 の既定である PropertyFileAuthentication 認証実装クラスに 含まれています。


実行時シングル サインオンは EjiptAuthenticationManager クラスによって実装されます。カスタマイズした認証実装クラス内でこの機能を有効にするには、次の手順を実行してください。

  1. 認証実装クラス内に allaire.jrun.security.AuthenticationManagerクラス を実装します。
    public class MyAuthentication implements AuthenticationInterface, 
    AuthenticationManager {
    ...
    
  2. EjiptAuthenticationManager および ServiceContext の変数を追加します。
    EjiptAuthenticationManager ejiptAuth = null;
    ServiceContext serviceContext;
    
  3. ServiceContext に渡される init メソッドをコーディングします。
    public void init(ServiceContext serviceContext)
    
  4. init メソッドでは、渡された ServiceContext を使用して
    EjiptAuthenticationManager のインスタンスを作成します。
    ejiptAuth = new EjiptAuthenticationManager(serviceContext);
    
  5. 次のように AuthenticationManager インターフェイスからメソッドを認証実装クラスに追加します。
  6. 追加および削除の接頭辞が付いたメソッドを実行し、該当するユーザ ストアにユーザ情報を追加および削除するときに必要な手順を行います。各 add* および remove* メソッド内では、JRun 実行時システム上でアクションを実行する
    EjiptAuthenticationManager 内の同等のメソッドを呼び出します。
  7. 追加の AuthenticationManager メソッドを実行します (オプション)。
  8. 詳細については、文書のホーム ページから入手可能な AuthenticationManagerEjiptAuthenticationManager JavaDocs を参照してください。