Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Identity Server ポリシーエージェントガイド



付録 C   ロールと主体のマッピングに関するサンプルシナリオ

この付録では、ロールと主体のマッピングの作成に関するサンプルシナリオを提供します。

宣言によるセキュリティ

メソッドの 1 つに対してアクセスが保護された Enterprise JavaBean コンポーネントについて考えてみます。この保護は、ejb-jar.xml 配備記述子の assembly-descriptor 要素にセキュリティロール (security-role) とメソッド許可 (method-permission) の要素を追加することで適用できます。




<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC
'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
   ...
   <assembly-descriptor>
      <security-role>
         <role-name>FOO</role-name>
      </security-role>
      <method-permission>
         <role-name>FOO</role-name>
      <method>
            <ejb-name>WebProxy</ejb-name>
            <method-intf>Remote</method-intf>
            <method-name>getWebPage</method-name>
            <method-params>
               <method-param>java.lang.String</method-param>
               <method-param>java.lang.String</method-param>
            </method-params>
       </method>
       </method-permission>
   </assembly-descriptor>
</ejb-jar>


FOO」というセキュリティロールは、weblogic-ejb-jar.xml 配備記述子を使って実際の主体にマッピングできます。




<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
    'http://www.bea

.com/servers/wls6000/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
   <weblogic-enterprise-bean>
      <ejb-name>WebProxy</ejb-name>
      <jndi-name>ejb.WebProxy</jndi-name>
   </weblogic-enterprise-bean>
   <security-role-assignment>
    <role-name>FOO</role-name>
    <principal-name>amAdmin</principal-name>
   </security-role-assignment>
</weblogic-ejb-jar>


プログラムによるセキュリティ

サーブレットの 1 つが HttpServletRequest.isUserInRole(String) などのプログラムによるセキュリティ API を使うサンプルアプリケーションについて考えてみます。サーブレットのコードで使うロール名は、配備記述子名と同じ「SAMPLE-ROLE」であると仮定します。




<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.c
om/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>Sample Security Aware application</display-name>
    <filter>
      <filter-name>Agent</filter-name>
      <display-name>Agent</display-name>
      <description>Identity Server Policy Agent for WebLogic Server 6.1</description>
      <filter-class>
         com.iplanet.amagent.weblogic.filter.AgentFilter
      </filter-class>
    </filter>
    <filter-mapping>
      <filter-name>Agent</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  <servlet>
    <servlet-name>SampleServlet</servlet-name>
    <servlet-class>
       com.iplanet.sample.SampleServlet
    </servlet-class>
    <security-role-ref>
       <description>
          This role is a sample test role for the
          security aware servlet
       </description>
       <role-name>SAMPLE-ROLE</role-name>
       <role-link>SAMPLE-ROLE-LINK</role-link>
    </security-role-ref>
  </servlet>
  <servlet-mapping>
    <servlet-name>SampleServlet</servlet-name>
    <url-pattern>/Test</url-pattern>
  </servlet-mapping>
  <security-role>
    <description>Some description</description>
    <role-name>SAMPLE-ROLE-LINK</role-name>
  </security-role>
</web-app>


SAMPLE-ROLE-LINK は、weblogic.xml 配備記述子を使って実際の主体にマッピングされます。



<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 6.1//EN" "http://www.be
a.com/servers/wls610/dtd/weblogic-web-jar.dtd">
<weblogic-web-app>
   <security-role-assignment>
     <role-name>SAMPLE-ROLE-LINK</role-name>
     <principal-name>Employee</principal-name>
   </security-role-assignment>
</weblogic-web-app>



前へ      目次      索引      次へ     
Copyright 2002 Sun Microsystems, Inc. All rights reserved.