ADFセキュリティを使用した認可について

Oracle ADFセキュリティ・サービスは、セキュリティ対応のリソースの認可でJava Authorization and Authentication Service(JAAS)に依存します。Oracle ADFセキュリティでは、別のレベルの精度が提供されており、JAASを使用してJava権限に基づくオブジェクト・インスタンス・アクセス・コントロールが可能です。特に、一部のOracle ADFオブジェクトは「セキュリティ対応」になっています。これは、開発者が指定のリソースに付与できる事前定義コンポーネント固有の権限が存在することを意味します。

次のOracle ADFオブジェクトはセキュリティ対応です。

これらのオブジェクトへの権限付与に関する特定の意味の詳細は、「Oracle ADFオブジェクトの権限について」を参照してください。

これらのオブジェクト(リソースと呼ばれます)に対して指定のアクションを実行できる権限を持つ認証済ユーザーまたはロールを定義することで、オブジェクトへの権限付与を設定します。権限受領者は、プリンシパルとして定義されたロール、ユーザー、またはグループであり、権限にマップされています。権限とは、リソースに特定のアクションを実行できる権限であり、Oracle ADFセキュリティ・クラスによって定義されています(詳細は、Oracle ADF Javadocを参照してください)。Oracle JAZN軽量XMLプロバイダを使用している場合は、これらの権限付与はsystem-jazn-data.xmlファイルに記述されます。次に例を示します。

<grant>
  <grantee>
    <principals>
      <principal>
        <realm-name>jazn.com</realm-name>
        <type>role</type>
        <class>oracle.security.jazn.spi.xml.XMLRealmRole</class>
        <name>jazn.com/users</name>
      </principal>
    </principals>
  </grantee>
  <permissions>
    <permission>
      <class>oracle.adf.share.security.authorization.MethodPermission</class>
      <name>SessionEJB.dataProvider.deleteDepartments</name>
      <actions>invoke</actions>
    </permission>
    <permission>
      <class>oracle.adf.share.security.authorization.AttributePermission</class>
      <name>EmployeesView1.DepartmentId</name>
      <actions>read</actions>
    </permission>
  </permissions>
</grant>    

上の権限付与で、ロールusers deleteDepartmentsメソッドを起動するMethodPermissionと、DepartmentID属性値を読み取るAttributePermissionが付与されたことに注意してください。

ユーザーまたはロールとは、すでにリソース・プロバイダで定義されているものです。Oracle ADFセキュリティは、定義済セキュリティ制約または特定のユーザーが1つのロールに属しているかどうかを判別するプログラム・コールを使用することにより(HttpServletRequestインタフェースにあるisUserInRoleメソッドまたはEJBContextインタフェースにあるisCallerInRole メソッドを使用)、ロールを参照できます。

JDeveloperを使用して、ロールに認可マネージャを使用した権限付与を作成できます。手順は、「JDeveloperを使用した認可の定義」を参照してください。

権限付与は集約されています。つまり、グループのロールが権限を付与されている場合、そのグループのメンバーにも同じ権限が付与されます。

権限付与が定義されたリソースに対してアクションの実行を試行すると、Oracle ADFセキュリティで、ユーザーが権限付与に定義済のプリンシパルかどうかがチェックされます。まだユーザーが認証されていない場合は、アプリケーションでログイン・ページまたはフォームが表示されます。認証済で権限を持っていないユーザーの場合は、セキュリティ・エラーが表示されます。また、プログラムによって認証チェックを起動することもできます。


関連項目
J2EEアプリケーション用のセキュリティの開発
Oracle ADFアプリケーションでのセキュリティの実装