第5章
この章では、アプリケーションでexteNd Directorセキュリティ役割を使用する方法について説明します。この章は、次の節から構成されています。
exteNd Director Securityサブシステムでは、「役割ベース権限」の形式の宣言型セキュリティをサポートします。役割ベース権限は、サーブレットおよびポートレット仕様で定義されているとおりにポートレットに適用されます。
次に、ポートレットにJ2EE準拠の役割を実装するための手順を示します。
ポートレット展開記述子(portlet.xml)に役割を定義します。
詳細については、インストールに含まれるportlet.xmlスキーマ記述子(Director_install_dir/Common/SchemaCatalog/portal-app_1_o.xsdにあります)を参照してください。
同じ役割をEARまたはWARのアプリケーション記述子に定義します。
プロジェクトに役割を定義する詳細については、ユーティリティツールの展開記述子エディタに関する章を参照してください。
ディレクトリレルムで、ユーザに役割をマップします。役割マッピングの手順は、各アプリケーションサーバタイプによって異なります。
exteNd Application Serverに展開するための役割のマッピングの詳細については、『ユーティリティツール』の「展開計画エディタ」の章を参照してください。
exteNd Directorでは、セキュリティ役割の形式で、独自の役割ベースの権限も提供しています。「セキュリティ役割」とは、ユーザまたはグループ、あるいはその両方のプリンシパルを定義するXML記述子で、特定のexteNd Directorアプリケーションオブジェクトのアクセス権にマップすることができます。exteNd Directorセキュリティ役割は、カスタムレルムのようなJ2EEコンテキストの外部で使用することができます。
Securityサブシステムは、ワークフロープロセスおよびポータルレイアウトに対して宣言型役割マッピングを定義します。その他のすべてのアプリケーションオブジェクトに対しては、SecurityサブシステムはACLベース権限を使用します(を参照)。
exteNd Director 開発環境で、[ファイル]>[新規]>[ポータル]>[セキュリティ役割]の順に選択します。
<security-role> <display-name>System Administrator</display-name> <description>Administers Portal Applications</description> <user-map> <principal>jdoe</principal> <principal>jsmith</principal> </user-map> <group-map> <principal>administrators</principal> </group-map> </security-role>
役割がexteNd Directorプロジェクトのリソースセットに保存されまます。ファイルの場所の詳細については、セキュリティ役割記述子の場所をクリックしてください。
ワークフロープロセス記述子は、ワークフロープロセスへのユーザアクセスに対して役割マッピングを定義します。access-role-map要素は、新しいプロセスインスタンスを開始する権限を持つユーザおよびグループのプリンシパルを決定します。次に、役割マップ要素がワークフロープロセスDTDで定義されている方法を示します。
<!-- Access Role-Map Definition --> <!ELEMENT access-role-map (role-name*)> <!ELEMENT role-name (#PCDATA)> <!-- Description Definition --> <!ELEMENT description (#PCDATA)>
ワークフローモデラーを使用して、ワークフロープロセスに役割をマップできます。詳細については、ワークフローガイドのプロセスプロパティに関する節を参照してください。
ポータルレイアウト記述子は、ポータルレイアウトへの「リスト」および「実行」アクセスに対して役割マッピングを定義します。次の例に、myRole.xmlという名前の役割にマップしたリストおよび実行アクセスを示します。
<run-role-map> <role-name> myRole </role-name> </run-role-map> <list-role-map> <role-name> myRole </role-name> </list-role-map>
ポータルレイアウトに役割をマップする詳細については、ポータルガイドのレイアウト記述子の作成に関する節を参照してください。
役割および役割マッピングを設定すると、EbiSecurityDelegateインタフェースを使用して役割情報にアクセスできます。次の例は、ユーザが指定された役割に含まれているかどうかを確認する方法を示します。
// Variable to hold the name of the security role // descriptor, without the ".xml" ext String mapfile = "mysecurityXML"; // Get a security manager try { com.sssw.fw.security.api.EbiSecurityDelegate sd = com.sssw.fw.security.client.EboFactory.getSecurityDelegate(); // Check if user is in this role if (sd.isUserInRole(context, mapfile)); // get a document, else display "no access" message } catch (com.sssw.fw.exception.EboFactoryException e) { // display message }
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...