第5章

セキュリティ役割の使用

この章では、アプリケーションでexteNd Directorセキュリティ役割を使用する方法について説明します。この章は、次の節から構成されています。

 
Top of page

J2EE役割ベースの権限について

exteNd Director Securityサブシステムでは、「役割ベース権限」の形式の宣言型セキュリティをサポートします。役割ベース権限は、サーブレットおよびポートレット仕様で定義されているとおりにポートレットに適用されます。

次に、ポートレットにJ2EE準拠の役割を実装するための手順を示します。

  1. ポートレット展開記述子(portlet.xml)に役割を定義します。

    For more information    詳細については、インストールに含まれるportlet.xmlスキーマ記述子(Director_install_dir/Common/SchemaCatalog/portal-app_1_o.xsdにあります)を参照してください。

  2. 同じ役割をEARまたはWARのアプリケーション記述子に定義します。

    For more information    プロジェクトに役割を定義する詳細については、ユーティリティツールの展開記述子エディタに関する章を参照してください。

  3. ディレクトリレルムで、ユーザに役割をマップします。役割マッピングの手順は、各アプリケーションサーバタイプによって異なります。

    For more information    exteNd Application Serverに展開するための役割のマッピングの詳細については、『ユーティリティツール』の「展開計画エディタ」の章を参照してください。

 
Top of page

exteNd Directorセキュリティ役割について

exteNd Directorでは、セキュリティ役割の形式で、独自の役割ベースの権限も提供しています。「セキュリティ役割」とは、ユーザまたはグループ、あるいはその両方のプリンシパルを定義するXML記述子で、特定のexteNd Directorアプリケーションオブジェクトのアクセス権にマップすることができます。exteNd Directorセキュリティ役割は、カスタムレルムのようなJ2EEコンテキストの外部で使用することができます。

Securityサブシステムは、ワークフロープロセスおよびポータルレイアウトに対して宣言型役割マッピングを定義します。その他のすべてのアプリケーションオブジェクトに対しては、SecurityサブシステムはACLベース権限を使用します(を参照)。

 
Top of page

セキュリティ役割の作成

Procedure グラフィカルビューを使用してセキュリティ役割を作成する

  1. exteNd Director 開発環境で、[ファイル]>[新規]>[ポータル]>[セキュリティ役割]の順に選択します。

    新しい役割記述子のグラフィカルビューが表示されます。

    security-role

  2. エディタを使用してXMLデータを入力します。

    XML属性

    入力

    display-name

    (オプション)アクセスグループの表示名。任意の文字列を指定できます。

    description

    (オプション)表示名と一致する説明。任意の文字列を指定できます。

    ユーザ

    各ユーザを追加するには、次の手順に従います。

    • [ユーザ]タブを選択して[追加]をクリックします。

    • [新規ユーザ]フィールドをダブルクリックして、ディレクトリレルムで定義されている有効なユーザの名前を入力します。

    LDAPレルムにアクセスする場合は、識別名を指定する必要があります(例: cn=sample,o=acme)。

    注記:   役割は、LDAP「コンテナ」要素をサポートしません。

    グループ

    各グループを追加するには、次の手順に従います。

    • [グループ]タブを選択して[追加]をクリックします。

    • [新規グループ]フィールドをダブルクリックして、ディレクトリレルムで定義されている有効なグループの名前を入力します。

    LDAPレルムにアクセスする場合は、識別名を指定する必要があります(例: cn=Administrators,o=acme)。

    注記:   役割は、LDAP「コンテナ」要素をサポートしません。

    次に、ソースビューでのセキュリティ役割の例を示します。

      <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>
    
  3. [ファイル]>[保存]の順に選択します。

    役割がexteNd Directorプロジェクトのリソースセットに保存されまます。ファイルの場所の詳細については、セキュリティ役割記述子の場所をクリックしてください。

 
Top of page

ワークフロープロセスへのセキュリティ役割のマップ

ワークフロープロセス記述子は、ワークフロープロセスへのユーザアクセスに対して役割マッピングを定義します。access-role-map要素は、新しいプロセスインスタンスを開始する権限を持つユーザおよびグループのプリンシパルを決定します。次に、役割マップ要素がワークフロープロセスDTDで定義されている方法を示します。

  <!-- Access Role-Map Definition -->
  <!ELEMENT access-role-map (role-name*)>
  <!ELEMENT role-name (#PCDATA)>
  <!-- Description Definition -->
  <!ELEMENT description (#PCDATA)>

ワークフローモデラーを使用して、ワークフロープロセスに役割をマップできます。詳細については、ワークフローガイドのプロセスプロパティに関する節を参照してください。

 
Top of page

ポータルページレイアウトへのセキュリティ役割のマップする

ポータルレイアウト記述子は、ポータルレイアウトへの「リスト」および「実行」アクセスに対して役割マッピングを定義します。次の例に、myRole.xmlという名前の役割にマップしたリストおよび実行アクセスを示します。

  <run-role-map>
     <role-name> myRole </role-name>
  </run-role-map>
  <list-role-map>
     <role-name> myRole </role-name>
  </list-role-map>

For more information    ポータルレイアウトに役割をマップする詳細については、ポータルガイドのレイアウト記述子の作成に関する節を参照してください。

 
Top of page

プログラムによるセキュリティ役割へのアクセス

役割および役割マッピングを設定すると、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 ...