Web アプリケーションのセキュリティー・ロール参照

使用可能なプログラマチック・セキュリティー Java™ Platform, Enterprise Edition (Java EE) アプリケーション・プログラミング・インターフェース (API) である、 isUserInRole(String roleName) および isCallerInRole(String roleName) を使用する場合、 Web アプリケーション開発者または Enterprise JavaBeans (EJB) プロバイダーは、 コード内で role-name を使用する必要があります。

デプロイ済みのランタイム環境で使用するロールは、Web アプリケーションおよび EJB コンポーネント (例えば Web アーカイブ (WAR) ファイルおよび ejb-jar.xml ファイル) がエンタープライズ・アーカイブ (EAR) ファイルにアセンブルされるまで不明である場合があります。このため、Web アプリケーション または EJB コンポーネントのコードで使用するロール名は、アプリケーシ ョンのアセンブリー中にアプリケーション・アセンブラーが実際のランタイム環境ロールにマップする 論理ロール名になります。 セキュリティー・ロール参照が提供する間接参照によって、Web アプリケーション・コンポーネントと EJB の開発者は、ランタイム環境における実際のロールを意識する必要がなくなります。

「論理」ロールの定義と、実際のランタイム環境のロールへの論理ロールのマッピングについては、 Web アプリケーションと EJB JAR ファイル (それぞれ、web.xmlejb-jar.xml) の両方のデプロイメント記述子内の security-role-ref エレメントに指定されています。 アセンブリー・ツールは、ロール名を定義し、role-link エレメントを使用してロール名をその環境の実際のランタイム・ロールへマップすることができます。

以下のコード・サンプルは、EJB ejb-jar.xml デプロイメント記述子の security-role-ref の例です。
... <enterprise-beans>
... <entity>
<ejb-name>AardvarkPayroll</ejb-name>
<ejb-class>com.aardvark.payroll.PayrollBean</ejb-class>
...
<security-role-ref>
<description>
このロールは、給与計算部門の従業員に割り当てられます。 このロールのメンバーは、全員の給与計算レコードへのアクセス権を持っています。 このロールは、payroll-department ロールにリンクされています。 このロールは、給与計算部門の従業員に割り当てられます。 このロールのメンバーは、すべての給与計算レコードへのアクセス権を持っています。このロールは、payroll-department ロールにリンクされています。
</description> <role-name>payroll</role-name> 
<role-link>payroll-department</role-link>
</security-role-ref>
 ... 
</entity>
 ... 
</enterprise-beans>

上記の例にある payroll ストリング (<role-name> エレメント内に登場しています) は、EJB プロバイダーが isCallerInRole() API への引数として使用しています。<role-link> エレメントが、 ランタイム環境で使用される実際のロールを、論理ロールと結び付けています。

エンタープライズ Bean の場合、論理的なロール名が環境内の実際のロール名と同じ場合でも、 security-role-ref はデプロイメント記述子に指定されていなくてはなりません。

Web アプリケーション・コンポーネントの場合のルールは、やや異なります。security-role エレメントと一致する security-role-ref エレメントが宣言されていない場合、 コンテナーはデフォルトで、Web アプリケーションの security-role エレメントのリストに 対する role-name エレメント引数を検査する必要があります。isUserInRole メソッドは、リストを参照して、 呼び出し元がセキュリティー・ロールにマップされるかどうかを決めます。 開発者は、このデフォルト・メカニズムを使用する場合、呼び出しを行うサーブレットを再コンパイルしないと、 アプリケーション内のロール名を変更する場合の柔軟性が損なわれることがあることに注意してください。

この仕様の詳細については、『セキュリティー: 学習用リソース』の EJB バージョン 2.0 および サーブレット・バージョン 2.3 の仕様を参照してください。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=usec_csec
ファイル名:usec_csec.html