Oracle® Fusion Middleware

Oracle Entitlements Server管理者ガイド

11gリリース2 (11.1.2.1)

B71695-03(原本部品番号:E27153-05)

2013年5月

このガイドには、Oracle Entitlements Server管理コンソールを使用した、システム構成管理およびポリシー・オブジェクトの管理に関する情報が記載されています。手動構成についても記載されています。

Oracle Fusion Middleware Oracle Entitlements Server管理者ガイド11gリリース2 (11.1.2.1)

B71695-03

Copyright © 2011, 2013 Oracle and/or its affiliates. All rights reserved.

原本著者:  Trish Fuzesy

原本協力著者:

原本協力者:

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle Entitlements Serverの概要

- 1.1 アクセス制御について

- 1.2 Oracle Entitlements Serverの概要

- 1.2.1 Oracle Entitlements Serverリリースについて

- 1.2.2 認可ポリシー・マネージャ・コンソールの使用

- 1.2.3 Oracle Entitlements Server 11gR2の機能

- 1.3 Oracle Entitlements Serverのアーキテクチャの概要

- 1.3.1 ポリシー管理ポイント

- 1.3.2 ポリシー決定ポイントとポリシー実行ポイント

- 1.3.2.1 PDPとしてのセキュリティ・モジュール

- 1.3.2.2 PDP/PEPの組合せとしてのセキュリティ・モジュール

- 1.3.2.3 セキュリティ・モジュールのタイプについて

- 1.3.3 ポリシー情報ポイント

- 1.4 Oracle Entitlements Serverの認可ポリシーの処理方法

- 1.5 サポートされているアクセス制御の標準

- 1.5.1 ロールベースのアクセス制御(RBAC)

- 1.5.2 属性ベースのアクセス制御(ABAC)

- 1.5.3 Java権限

- 1.5.4 XACML

- 1.5.5 PEP API

2 ポリシー・モデルについて

- 2.1 Oracle Entitlements Serverのポリシーについて

- 2.1.1 認可ポリシーについて

- 2.1.2 ロールの割当てとロール・マッピング・ポリシーについて

- 2.2 Oracle Entitlements Serverのポリシーの評価方法

- 2.3 ポリシー・オブジェクトの用語集

- 2.4 ポリシー・ユースケースの実装

- 2.4.1 ソフトウェア・コンポーネントの保護

- 2.4.2 ビジネス・オブジェクトの保護

3 スタート・ガイド

- 3.1 始める前に

- 3.2 グラフィカル・インタフェースについて

- 3.2.1 Oracle Entitlements Server管理者の割当て

- 3.2.2 アイデンティティ・ストアの使用

- 3.2.3 ポリシー・ストアへのアクセス

- 3.2.4 Oracle Platform Security Servicesアプリケーション権限の表示

- 3.3 管理コンソールへのアクセス

- 3.3.1 管理コンソールへのサイン・イン

- 3.3.2 管理コンソールのサイン・アウト

- 3.4 管理コンソール内の移動

- 3.4.1 主なタブについて

- 3.4.1.1 「認可管理」タブ

- 3.4.1.2 「システム構成」タブ

- 3.4.2 ナビゲーション・パネルの使用

- 3.4.3 「ホーム」タブの使用

- 3.4.4 ヘルプへのアクセス

- 3.5 Oracle Entitlements Server Basicからのアップグレード

- 3.5.1 基本ポリシー認可から拡張ポリシー認可への変更

- 3.6 Oracle Entitlements Serverの例へのアクセス

4 ポリシーとポリシー・オブジェクトの管理

- 4.1 ポリシーとポリシー・オブジェクトの管理の概要

- 4.2 認可ポリシーとそのコンポーネントの定義

- 4.3 認可ポリシーへの詳細な要素の追加

- 4.4 認可ポリシーの実装手順

- 4.5 アプリケーションのポリシー・オブジェクトの管理

- 4.5.1 アプリケーションの管理

- 4.5.1.1 アプリケーションの作成

- 4.5.1.2 アプリケーションの変更

- 4.5.1.3 アプリケーションの削除

- 4.5.2 リソース・タイプの管理

- 4.5.2.1 リソース・タイプの作成

- 4.5.2.2 リソース・タイプの変更

- 4.5.2.3 リソース・タイプの削除

- 4.5.3 リソースの管理

- 4.5.3.1 リソースの作成

- 4.5.3.2 リソースの変更

- 4.5.3.3 リソースの削除

- 4.5.4 資格の管理

- 4.5.4.1 資格の作成

- 4.5.4.2 資格の変更

- 4.5.4.3 資格の削除

- 4.5.5 認可ポリシーの管理

- 4.5.5.1 認可ポリシーの作成

- 4.5.5.2 認可ポリシーの変更

- 4.5.5.3 認可ポリシーの削除

- 4.5.6 ロール・カタログでのアプリケーション・ロールの管理

- 4.5.6.1 アプリケーション・ロールの作成

- 4.5.6.2 アプリケーション・ロールの変更

- 4.5.6.3 アプリケーション・ロールへの外部ロールのマッピング

- 4.5.6.4 外部ユーザーのアプリケーション・ロールへのマッピング

- 4.5.6.5 アプリケーション・ロールの削除または外部ロール・マッピングの削除

- 4.5.6.6 外部ユーザー・マッピングの削除

- 4.5.7 ロール・マッピング・ポリシーの管理

- 4.5.7.1 ロール・マッピング・ポリシーの作成

- 4.5.7.2 ロール・マッピング・ポリシーの変更

- 4.5.7.3 ロール・マッピング・ポリシーの削除

- 4.5.8 ロール・カテゴリの管理

- 4.5.9 属性および関数を拡張として管理

- 4.5.9.1 属性の作成

- 4.5.9.2 属性の変更

- 4.5.9.3 属性の削除

- 4.5.9.4 関数の作成

- 4.5.9.5 関数の変更

- 4.5.9.6 関数の削除

- 4.6 条件ビルダーの使用

- 4.6.1 複雑な式の作成

- 4.6.2 関数間でのパラメータの受渡し

5 セキュリティ・オブジェクトの問合せ

- 5.1 管理コンソールを使用した検索

- 5.2 簡易検索を使用したオブジェクトの検索

- 5.3 拡張検索を使用したオブジェクトの検索

- 5.3.1 外部ロールの検索

- 5.3.2 アプリケーションの検索

- 5.3.3 リソース・タイプの検索

- 5.3.4 アプリケーション・ロールの検索

- 5.3.5 ロール・マッピング・ポリシーの検索

- 5.3.6 リソースの検索

- 5.3.7 資格の検索

- 5.3.8 認可ポリシーの検索

- 5.3.9 属性の検索

- 5.3.10 関数の検索

- 5.3.11 ユーザーの検索

- 5.4 オブジェクト名の大/小文字の区別について

6 ポリシー配布の管理

- 6.1 配布モードの定義

- 6.1.1 制御された配布

- 6.1.2 制御されない配布

- 6.2 ポリシー配布について

- 6.2.1 集中ポリシー配布コンポーネントの使用

- 6.2.2 ローカル・ポリシー配布コンポーネントの使用

- 6.3 ポリシーの配布

- 6.3.1 管理コンソールを使用したポリシーの配布

- 6.4 デフォルトまたはサード・パーティのデジタル証明書の使用

- 6.4.1 WebLogic Serverセキュリティ・モジュールによるサード・パーティ証明書の使用

- 6.4.2 WebサービスまたはJavaのセキュリティ・モジュールによるサード・パーティ証明書の使用

- 6.4.3 WebSphere Application Serverセキュリティ・モジュールによるサード・パーティ証明書の使用

- 6.4.4 TomcatまたはJBossのセキュリティ・モジュールによるサード・パーティ証明書の使用

- 6.5 ポリシー配布のデバッグ

7 ポリシー決定ポイントのデプロイ

- 7.1 PDPデプロイメント・モデルについて

- 7.1.1 PDPのローカルな埋込み

- 7.1.2 PDPのリモートへの配置

- 7.2 セキュリティ・モジュールのプロキシ・モードの使用

- 7.3 XACMLゲートウェイの使用

8 セキュリティ・モジュールの構成の管理

- 8.1 始める前に

- 8.2 SMConfig UIの起動

- 8.3 セキュリティ・モジュールの構成の変更

- 8.4 セキュリティ・モジュールのインスタンス化後の構成

- 8.4.1 Javaセキュリティ・モジュールの構成

- 8.4.2 RMIセキュリティ・モジュールの構成

- 8.4.3 Webサービス・セキュリティ・モジュールの構成

- 8.4.4 WebLogic Serverセキュリティ・モジュールの構成

- 8.4.5 SharePoint Server (MOSS)セキュリティ・モジュールの構成

- 8.4.6 .NETセキュリティ・モジュールの構成

- 8.4.7 WebSphere、TomcatおよびJBossのセキュリティ・モジュールの構成

- 8.4.8 Oracle Service Busセキュリティ・モジュールの構成

- 8.5 RMIまたはWebサービスのPDPプロキシ・クライアントの構成

9 環境固有のリソースの保護

- 9.1 セキュリティ・モジュール・タイプの選択

- 9.2 Microsoft Office SharePoint Serverのリソースの保護

- 9.2.1 SharePointリソースの保護

- 9.2.1.1 WebサイトとWebページの保護

- 9.2.1.2 Webパーツの保護

- 9.2.1.3 リストの保護

- 9.2.1.4 Webページ内の機密コンテンツの保護

- 9.2.2 MOSSとWebサービスのセキュリティ・モジュールのインスタンス化

- 9.2.3 MOSSセキュリティ・モジュールの統合と統合解除

- 9.2.4 SharePointセキュリティの構成

- 9.3 Oracle Service Busリソースの保護

- 9.3.1 OSBリソース・オブジェクトの調査

- 9.3.2 セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

- 9.3.3 非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

- 9.3.4 WebLogic Serverプロバイダの有効化

- 9.4 WebLogic Serverリソースの保護

- 9.4.1 WebLogic Serverとの統合

- 9.4.2 WebLogic Serverリソースの検出

- 9.4.2.1 検出モードの有効化

- 9.4.2.2 検出したリソースのロード

- 9.4.3 WebLogic Serverリソースの変換

- 9.4.4 WebLogic Serverリソースのポリシー・オブジェクトへのマッピング

- 9.4.4.1 Enterprise Java Beanリソース

- 9.4.4.2 Java Naming and Directory Interfaceリソース

- 9.4.4.3 URLリソース

- 9.4.4.4 JDBCリソース

- 9.4.4.5 JMSリソース

- 9.4.4.6 Webサービス・リソース

- 9.4.4.7 サーバー・リソース

10 システム構成の管理

- 10.1 管理者の委任

- 10.2 セキュリティ・モジュール定義の構成

- 10.2.1 セキュリティ・モジュール定義の作成

- 10.2.2 セキュリティ・モジュールへのアプリケーションのバインド

- 10.2.3 セキュリティ・モジュールからのアプリケーションのバインド解除

- 10.2.4 セキュリティ・モジュール定義の削除

- 10.3 Identity Directory Serviceプロファイルの構成

- 10.3.1 Identity Directory Serviceプロファイルの作成

- 10.3.2 Identity Directory Serviceプロファイルへのアプリケーションのバインド

- 10.3.3 Identity Directory Serviceプロファイルからのアプリケーションのアンバインド

- 10.3.4 Identity Directory Serviceプロファイルの削除

11 管理者ロールの委任

- 11.1 委任管理者について

- 11.2 範囲と粒度を使用した委任

- 11.3 アプリケーション管理の委任

- 11.3.1 アプリケーションへの委任管理者の追加

- 11.3.2 アプリケーションの委任管理者の変更または削除

- 11.4 委任するポリシー・ドメインの使用

- 11.4.1 ポリシー・ドメインの作成

- 11.4.2 ポリシー・ドメインの変更

- 11.4.3 ポリシー・ドメインの削除

- 11.5 ポリシー・ドメイン管理の委任

- 11.5.1 ポリシー・ドメインへの委任管理者の追加

- 11.5.2 ポリシー・ドメインの委任管理者の変更または削除

- 11.6 管理者ロールを使用したシステム管理者の管理

- 11.6.1 新規管理者ロールの作成

- 11.6.2 管理者ロールへの権限の割当て

- 11.6.3 管理者ロール・メンバーシップの変更

- 11.6.4 管理者ロールの削除

12 管理コンソールのカスタマイズ

- 12.1 Authorization Policy Managerのカスタマイズ

- 12.2 ヘッダー、フッターおよびロゴのカスタマイズ

- 12.3 色のスキームのカスタマイズ

- 12.4 ログイン・ページのカスタマイズ

13 管理タスク

- 13.1 テスト環境から本番環境への移行(T2P)

- 13.2 ポリシー・シミュレータの使用

- 13.2.1 ポリシー・シミュレーションについて

- 13.2.2 ポリシー・シミュレーション・モードの選択

- 13.2.3 ポリシー・シミュレータの実行

- 13.2.3.1 ポリシー・シミュレータの簡易モードでの実行

- 13.2.3.2 ポリシー・シミュレータの拡張モードでの実行

- 13.3 FIPS準拠セキュリティ・プロバイダの使用

- 13.3.1 JCEプロバイダのインストール

- 13.3.2 JCEの構成

- 13.4 監査タスクの管理

- 13.4.1 Oracle Entitlements Serverイベントの監査

- 13.4.2 監査のためのOracle Entitlements Server管理サーバーの構成

- 13.4.3 監査のためのOracle Entitlements Serverセキュリティ・モジュールの構成

- 13.4.3.1 WebLogic Serverセキュリティ・モジュールの構成

- 13.4.3.2 他のセキュリティ・モジュールの構成

- 13.4.4 その他の監査情報

- 13.5 ポリシーの移行

- 13.5.1 XMLからLDAPへの移行

- 13.5.2 LDAPからXMLへの移行

- 13.5.3 XMLからデータベースへの移行

- 13.5.4 データベースからXMLへの移行

- 13.6 キャッシュの構成

- 13.6.1 決定キャッシングの構成

- 13.6.2 属性キャッシングの構成

- 13.7 ロギング

- 13.8 デバッグ

- 13.8.1 パラメータ定義によるデバッグの有効化

- 13.8.1.1 デバッグのためのロギングの構成

- 13.8.1.2 認可ポリシーをデバッグするログの検索

- 13.8.2 メソッドを使用するデバッグの有効化

- 13.8.3 ポリシー配布のデバッグ

A インストール・パラメータおよび構成パラメータ

- A.1 ポリシー配布構成

- A.1.1 ポリシー配布コンポーネントのサーバー構成

- A.1.2 ポリシー配布コンポーネントのクライアント構成

- A.1.2.1 ポリシー配布コンポーネントのクライアントJava Standard Edition構成(制御プッシュ・モード)

- A.1.2.2 ポリシー配布コンポーネントのクライアントJava Enterprise Editionコンテナ構成(制御プッシュ・モード)

- A.1.2.3 ポリシー配布のクライアント構成(制御プル・モード)

- A.1.2.4 ポリシー配布のクライアント構成(非制御モード)

- A.1.2.5 ポリシー配布のクライアント構成(混合モード)

- A.2 セキュリティ・モジュール構成

- A.2.1 Javaセキュリティ・モジュール

- A.2.2 Webサービス・セキュリティ・モジュール

- A.2.3 WebLogic Server上のWebサービス・セキュリティ・モジュール

- A.2.4 RMIセキュリティ・モジュール

- A.2.5 WebLogic Serverセキュリティ・モジュール

- A.2.6 WebLogic Serverセキュリティ・モジュールの検出モード

- A.3 PDPプロキシ・クライアントの構成

- A.3.1 Webサービス・セキュリティ・モジュールのPDPプロキシ・クライアント

- A.3.2 RMIセキュリティ・モジュールのPDPプロキシ・クライアント

- A.4 ポリシー・ストア・サービス構成

B 属性リトリーバの手動構成

- B.1 事前定義済属性リトリーバについて

- B.2 事前定義済属性リトリーバの構成

- B.2.1 LDAPレスピレイトリ属性リトリーバ・パラメータの構成

- B.2.2 データベース・リポジトリ属性リトリーバ・パラメータの構成

- B.2.3 事前定義済属性リトリーバの個々の属性の構成

- B.3 jps-config.xmlの変更

- B.4 PIP接続資格証明の設定

- B.5 データベース・パスワードの更新

C WLSTによる拡張ポリシーの管理

- C.1 Oracle Entitlements ServerでのWebLogic Scripting Toolの使用

- C.2 WLSTコマンドの使用

- C.2.1 createApplicationPolicy

- C.2.2 updateResourceType

- C.2.3 updateResource

- C.2.4 createPolicy

- C.2.5 updatePolicy

- C.2.6 deletePolicy

- C.2.7 listPolicies

- C.2.8 createAttribute

- C.2.9 updateAttribute

- C.2.10 deleteAttribute

- C.2.11 listAttributes

- C.2.12 createFunction

- C.2.13 updateFunction

- C.2.14 deleteFunction

- C.2.15 listFunctions

- C.2.16 getFunction

- C.3 スクリプトを使用したポリシーの作成

索引

例一覧

- 9-1 Sharepoint web.configファイルのappSettingsセクション

- 9-2 SafeControl Assemblyエントリ

- 9-3 add assemblyエントリ

- 9-4 add nameエントリ

- 9-5 PageParserPathsエントリ

- 9-6 MOSSのPortalSiteMapProvider

- 9-7 Oracle Entitlements ServerのPortalSiteMapProvider

- 9-8 検出されたリソースのサンプル・ファイル

- 9-9 ejb-jar.xmlのEJBリソースの定義

- 9-10 weblogic-ejb-jar.xmlのJNDIリソースの定義

- 9-11 config.xmlのJDBCリソースの定義

- 9-12 JDBCリソースに対する認可の開始

- 9-13 config.xmlのJMSキュー・リソースの定義

- 9-14 JMSクライアントの例

- 9-15 Webアプリケーションの構成

- 9-16 Webアプリケーション・コンテキストの構成

- 9-17 Webサービスの構成

- 9-18 WSDLにアクセスするクライアント・コード

- 9-19 WebLogic Serverインスタンスの構成

- 13-1 jps-config.xmlでの監査サービスの構成パラメータ

- 13-2 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのserviceInstance

- 13-3 ブートストラップ資格証明のためのXMLからLDAPへのserviceInstance

- 13-4 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのjpsContext

- 13-5 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのserviceInstance

- 13-6 ブートストラップ資格証明のためのLDAPからXMLへのserviceInstance

- 13-7 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのjpsContext

- 13-8 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのserviceInstance

- 13-9 ブートストラップ資格証明のためのXMLからデータベースへのserviceInstance

- 13-10 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのjpsContext

- 13-11 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのserviceInstance

- 13-12 ブートストラップ資格証明のためのデータベースからXMLへのserviceInstance

- 13-13 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのjpsContext

- 13-14 決定キャッシングを構成するXML

- 13-15 属性キャッシングを構成するXML

- 13-16 デフォルトのlogging.properties構成ファイル

- 13-17 管理コンソール・ロギングのための構成

- 13-18 ファイル・ロギングのための構成

- 13-19 DebugStoreのサンプル・ロギング出力

- 13-20 キャッシュ構成パラメータ検索でのサンプル出力

- 13-21 プリンシパル検索でのサンプル出力

- 13-22 リソースおよびアクション検索でのサンプル出力

- 13-23 属性検索の値のサンプル出力

- 13-24 認可決定検索でのサンプル出力

- 13-25 責任の値検索でのサンプル出力

- 13-26 静的ロール検索でのサンプル出力

- B-1 属性リトリーバに定義されるリポジトリ接続情報

- B-2 属性リトリーバに定義される属性問合せ情報

- B-3 jps-config.xmlファイルのサンプル

- B-4 事前定義済属性リトリーバの宣言

- B-5 事前定義済LDAP属性リトリーバの使用

- B-6 JDBCでの事前定義済RDBMS属性リトリーバの使用

- B-7 SQLでの事前定義済RDBMS属性リトリーバの使用

- B-8 jpsContextでの事前定義済属性リトリーバの宣言

- B-9 属性のキャッシュの有効化

- B-10 LDAPフェイルオーバーの構成

- C-1 ポリシー作成のためのサンプル・スクリプト

図一覧

- 1-1 Oracle Entitlements Serverのコンポーネント

- 1-2 Oracle Entitlements Server PAPアーキテクチャ

- 1-3 PEPとして動作するアプリケーションがPDPからの決定をリクエスト

- 1-4 PEPとして動作するエージェントがリクエストをインターセプトし決定を下す

- 1-5 PDPおよびPEPとしてのセキュリティ・モジュール

- 1-6 セキュリティ・モジュールのアーキテクチャ

- 1-7 ポリシー認可プロセスでのデータの流れ

- 2-1 認可ポリシー・オブジェクトにマップされたポリシー・コンポーネント

- 2-2 ロール・マッピング・ポリシー・オブジェクトにマップされたポリシー・コンポーネント

- 2-3 ソフトウェア・コンポーネントとビジネス・オブジェクトのユースケース

- 3-1 「認証プロバイダ」タブ

- 3-2 SUFFICIENT「制御フラグ」

- 3-3 WebLogic ServerコンソールのDefaultAuthenticatorのタブ

- 3-4 OPSSアプリケーション権限の表示画面

- 3-5 管理コンソールの「サインイン」ページ

- 3-6 管理コンソールの「サインアウト」リンク

- 3-7 Oracle Entitlements Server管理コンソール

- 3-8 「認可管理」タブ

- 3-9 「システム構成」タブ

- 3-10 開かれたノードを含むナビゲーション・パネルの「参照」タブ

- 3-11 ナビゲーション・パネルの「検索」タブ

- 3-12 「ホーム」タブ

- 4-1 デフォルトのロールの追加ポップアップ

- 4-2 OPSSアプリケーション権限の表示画面

- 4-3 条件ビルダー

- 4-4 オペランド値に関するタブ

- 4-5 リテラルの条件への追加

- 4-6 関数の追加

- 5-1 ポップアップ検索ボックス

- 5-2 ナビゲーション・パネルの簡易検索のフィールドと「検索結果」タブ

- 5-3 リソース・タイプの検索

- 5-4 リソース・タイプの検索結果

- 5-5 ロール・カタログでのアプリケーション・ロールの検索

- 5-6 アプリケーション・ロールの検索結果

- 5-7 ロール・マッピング・ポリシーの検索

- 5-8 ロール・マッピング・ポリシーの検索結果

- 5-9 リソースの検索

- 5-10 資格の検索

- 5-11 ポリシーの検索

- 5-12 ターゲットによるポリシーの検索

- 5-13 OPSSアプリケーション権限の表示画面

- 6-1 Oracle Entitlements Serverポリシー配布コンポーネントの使用

- 6-2 セキュリティ・モジュール・ポリシー配布コンポーネントの使用

- 7-1 PDPの埋込みデプロイメント

- 7-2 PDPのリモート・デプロイメント

- 7-3 プロキシ・モード・デプロイメント

- 7-4 XACMLゲートウェイ・デプロイメント

- 8-1 Javaセキュリティ・モジュールのSMConfig UI

- 9-1 WebLogic Serverドメインのレルムへのプロバイダの追加

- 10-1 「ホーム」領域の「セキュリティ・モジュール」

- 10-2 「ホーム」領域の「IDSプロファイル」

- 10-3 アイデンティティ・ストア・プロファイルの作成ページ

- 11-1 「管理ロールの編集」ポップアップ画面

- 13-1 ポリシー・シミュレータの簡易モードのユーザー・インタフェース

- 13-2 ポリシー・シミュレータの拡張モードのユーザー・インタフェース

表一覧

- 6-1 証明書オプションの格納と管理

- 6-2 アイデンティティ・キーストア属性の使用

- 6-3 信頼キーストア属性の使用

- 8-1 Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成

- 8-2 Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成

- 8-3 Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成

- 8-4 Javaセキュリティ・モジュールの拡張プロパティ

- 8-5 Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)

- 8-6 Javaセキュリティ・モジュールのPIPパラメータ(属性)

- 9-1 一般的な保護セキュリティ・モジュール・タイプ

- 9-2 環境固有のセキュリティ・モジュール・タイプ

- 9-3 MOSSアプリケーションのappSettingsプロパティ

- 9-4 WebLogic Server認可ポリシー・オブジェクト

- 9-5 EJB定義のポリシー・オブジェクトへのマッピング

- 9-6 JNDI定義のポリシー・オブジェクトへのマッピング

- 9-7 Oracle Entitlements ServerオブジェクトにマップされたURLリソース値

- 9-8 URLリソースによりサポートされている動的属性

- 9-9 Oracle Entitlements ServerオブジェクトにマップされたJDBC値

- 9-10 JDBCリソースのアクション・オプション

- 9-11 JDBCリソースによりサポートされている動的属性

- 9-12 Oracle Entitlements ServerオブジェクトにマップされたJMS値

- 9-13 JMSリソースのアクション・オプション

- 9-14 JMSリソースによりサポートされている動的属性

- 9-15 Oracle Entitlements ServerオブジェクトにマップされたWebサービス値

- 9-16 Webサービス・リソースによりサポートされている動的属性

- 9-17 Oracle Entitlements Serverオブジェクトにマップされたサーバー・リソース値

- 9-18 サーバー・リソースのアクション・オプション

- 9-19 サーバー・リソースによりサポートされている動的属性

- 13-1 Oracle Entitlements Serverで監査されるイベント

- 13-2 jps-config.xmlでの監査パラメータ

- 13-3 決定キャッシング・パラメータ

- 13-4 サーバーの問題のロギング

- A-1 ポリシー配布のサーバー構成

- A-2 ポリシー配布のクライアント構成、JSE、制御プッシュ・モード

- A-3 ポリシー配布のクライアント構成、JEE、制御プッシュ・モード

- A-4 ポリシー配布のクライアント構成、制御プル・モード

- A-5 ポリシー配布のクライアント構成、非制御モード

- A-6 ポリシー配布のクライアント構成、混合モード

- A-7 Javaセキュリティ・モジュールの構成パラメータ

- A-8 Webサービス・セキュリティ・モジュールの構成パラメータ

- A-9 WebLogic上のWebサービス・セキュリティ・モジュールの構成パラメータ

- A-10 RMIセキュリティ・モジュールの構成パラメータ

- A-11 WebLogic Serverセキュリティ・モジュールの構成パラメータ

- A-12 WebLogic Serverの検出モードのパラメータ

- A-13 Webサービス・プロキシ・クライアントの構成パラメータ

- A-14 PDP RMIプロキシ・クライアントの構成パラメータ

- A-15 ポリシー・ストア・サービスの構成パラメータ

- B-1 LDAP属性リトリーバ・パラメータ

- B-2 RDBMS属性リトリーバ・パラメータ

- B-3 取得する属性の構成

はじめに

『Oracle Fusion Middleware Oracle Entitlements Server管理者ガイド』には、Oracle Entitlements Server管理コンソールを使用した、システム構成管理およびポリシー・オブジェクトの管理に関する情報が記載されています。ファイルを使用した手動構成についても記載されています。

対象読者

このガイドの対象読者は、セキュリティ管理者です。

ドキュメントのアクセシビリティについて

オラクル社は、障害のあるお客様にもオラクル社の製品、サービスおよびサポート・ドキュメントを簡単にご利用いただけることを目標としています。オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。標準規格は改善されつつあり、オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて

スクリーン・リーダーは、ドキュメント内のサンプル・コードを正確に読めない場合があります。コード表記規則では閉じ括弧のみを行に記述する必要があります。しかし、一部のスクリーン・リーダーは括弧のみの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて

このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、次のドキュメントを参照してください。

- 『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』

- 『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・プランニング・ガイド』

- 『Oracle Fusion Middleware Oracle Identity and Access Managementクイック・インストレーション・ガイド』

- 『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』

- 『Oracle Fusion Middleware高可用性ガイド』

- Oracle Fusion Middleware Oracle Access Manager統合ガイド

- 『Oracle Fusion Middleware Oracle WebLogic Serverの保護』

- Oracle Fusion Middleware管理者ガイド

- 『Oracle Fusion Middleware Oracle Identity and Access Managementサードパーティ・アプリケーション・サーバー・ガイド』

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Entitlements Serverの概要

この章では、Oracle Entitlements Serverの機能とアーキテクチャの概要について説明します。この章には次の項目があります。

- 1.1項「アクセス制御について」

- 1.2項「Oracle Entitlements Serverの概要」

- 1.3項「Oracle Entitlements Serverのアーキテクチャの概要」

- 1.4項「Oracle Entitlements Serverの認可ポリシーの処理方法」

- 1.5項「サポートされているアクセス制御の標準」

1.1 アクセス制御について

アクセス制御は、企業の情報、システムまたはリソースへのアクセス権を付与または拒否するのに使用するシステムです。このドキュメントの目的として、保護されているエンティティは保護リソース、アクセス権が付与または拒否されるエンティティはサブジェクトまたはプリンシパル(ほとんどの場合現実の人)と呼ばれます。認可ポリシーはサブジェクトと、サブジェクトが保護リソース内で表示および実行できる内容を決定する操作のセットを一致させます。操作はリソースのタイプにより異なります。たとえば、テキスト・ファイルに付加される操作(読取り、変更、削除)は、銀行アプリケーションに付加できる操作(口座の表示、送金、プロファイルの変更)とは異なります。

アクセス制御は、認可されたサブジェクトだけが保護リソースにアクセスできることを保証するので、許可されていないまたは不注意によるリソースの変更を防止します。サブジェクトの認可は通常、認証の後に発生します。一般的に、アクセス制御システムは次の2種類の認可から構成されます。

- 大まかな認可は、主に悪影響のあるものを侵入させないようにすることに焦点を当てた技術を使用する境界認証です。通常、これは認可コールを作成するアプリケーション外のインターセプタにより実行されます。サブジェクトのリクエスタに関するポリシーとURLが考慮されます。

- きめ細かな認可は、より詳細で、主に、認可コールを作成するアプリケーションにより制御されます。保護リソースのURLとその構成済のポリシーが、リソース特有またはユーザー特有の属性の情報、およびリクエストのコンテキストなどとともに考慮されます。たとえば、従業員に通常の営業時間中はポータルへのアクセス権を付与し、週末のアクセス権は拒否するには、きめ細やかな認可が必要です。

したがって、アクセス制御システムは、管理しやすいながらも、アクセス権を付与(または拒否)できる複雑な条件のセットを許可できる、ポリシー・モデルをサポートする必要があります。Oracle Entitlements Serverは、ソフトウェア・コンポーネントおよびアプリケーション・ビジネス・オブジェクトを含む、あらゆるタイプのリソースに対する集中または分散アクセス制御の実行を伴う集中ポリシー管理を提供します。

1.2 Oracle Entitlements Serverの概要

Oracle Entitlements Serverはきめ細やかな認可製品で、これにより組織はリソースへのアクセスと使用を制御するポリシーを定義して管理することで、そのリソースを保護することができます。アクセス権限は、誰が、どのリソースに、いつ、どのように行うことができるかを指定することにより、ポリシーに定義されます。ポリシーでは、ソフトウェア・コンポーネント(URL、Javaサーバー・ページ、Enterprise JavaBeans、メソッド、サーブレット、およびアプリケーションの構築に使用されるもの)、ビジネス・オブジェクト(銀行アプリケーションでの銀行口座や医療アプリケーションでの患者レコード、ビジネス関係の定義に使用されるものなどの、ユーザー・アカウントの表現、個人プロファイル、契約)を含む、あらゆるタイプのリソースの制御を実行できます。

Oracle Entitlements Serverでは、ロール・マッピング・ポリシーおよび認可ポリシーの作成がサポートされます。ロール・マッピング・ポリシーは、ロールを割り当てるユーザーに関する制約を定義し、ポリシー・ストア内のアプリケーション・ロールをアイデンティティ・ストア内の外部グループにマッピングできます。このマッピングにより、外部グループのユーザーは、アプリケーション・ロールの指定に従って、リソースにアクセスできます。このマッピングは多対多にすることができます。認可ポリシーは、保護されたソフトウェア・コンポーネントおよびビジネス・オブジェクトへのアクセスを定義します。次の各項では、前のリリースのOracle Entitlements Serverの情報とこのリリースのOracle Entitlements Serverで開発された機能について説明します。

- 1.2.1項「Oracle Entitlements Serverリリースの理解」

- 1.2.2項「認可ポリシー・マネージャ・コンソールの使用」

- 1.2.3項「Oracle Entitlements Server 11gR2の機能」

1.2.1 Oracle Entitlements Serverリリースについて

Oracle Entitlements Server 11gはOracle Platform Security ServicesとOracle Entitlements Server 10g(以前のBEA AquaLogic Enterprise Security)の統合を表しています。Oracle Platform Security Services (OPSS)がJava認証および認可サービス(JAAS)セキュリティ・プロバイダで、大まかな認可を提供するのに対し、Oracle Entitlements Server 11gはJava Standard Edition (SE)およびEnterprise Edition (EE)、サービス指向アーキテクチャ(SOA)、.NETなどの複数のテクノロジを含む、エンドツーエンドのエンタープライズ・ソリューションです。Oracle Entitlements Server 11gでは、認可リクエストのコンテキストを提供でき、それに基づきアクセス権が付与または拒否される、きめ細やかな認可が提供されます。Oracle Entitlements Server 11gのアーキテクチャはコアのeXtensible Access Control Markup Language (XACML)仕様で記述されている相互作用モデルに基づきます。詳細は、1.3項「Oracle Entitlements Serverのアーキテクチャの概要」を参照してください。

1.2.2 認可ポリシー・マネージャ・コンソールの使用

Authorization Policy Managerは、Oracle Entitlements Serverの管理コンソールです。Oracle Entitlements Serverのドキュメント・セットの目的では、Authorization Policy Managerと様々なOracle Entitlements Server Administration Console(管理コンソールおよび同類のコンソールなど)は区別しないで使用されます。管理コンソールの詳細は、第3章「スタート・ガイド」を参照してください。

注意:

Oracle Entitlements ServerはOracle Authorization Policy Manager製品としてリリースされた製品の機能を含むためのものではありません。このドキュメント・セットでは、認可ポリシー・マネージャは単に管理コンソールのことです。

1.2.3 Oracle Entitlements Server 11gR2の機能

Oracle Entitlements Server 11gR2では、異機種間アプリケーション環境での、きめ細やかな認可と、集中化された資格管理が提供されます。さらに、Oracle Entitlements Server 11gR2のこのリリースでは、次の機能が提供されています。

- XACML 3.0仕様で定義されているすべてのデータ型と関数のサポート

- Oracle Platform Security Servicesで作成されたアプリケーション権限(アプリケーション・ポリシー)の表示と変更のサポート

- ロギングの機能拡張によるポリシー評価分析の単純化

- ポリシー・シミュレータ

- デバッグの機能拡張

- 権限ベースの拡張ポリシーのサポート

- 拡張PEP API問合せリクエスト

- 管理コンソールにおける複数のアイデンティティ・ストアの接続のサポート

- SMConfig UI(セキュリティ・モジュール構成インタフェース)

- .NETリソースのサポート

- Javaコンテナ、Webサービス(WebLogic Server上)、Oracle Service Bus、Microsoft Sharepoint、JBossおよびTomcatのセキュリティ・モジュール

1.3 Oracle Entitlements Serverのアーキテクチャの概要

高レベルから、Oracle Entitlements Server (OES)は、集中または分散ポリシー決定を伴う集中ポリシー管理から構成されます。Oracle Entitlements ServerのアーキテクチャはXACML仕様で検討されたエンティティの相互作用モデルに基づきます。このモデルは、多くのコンポーネントおよびデプロイメントに適用できる柔軟なアーキテクチャを提供するエンティティを定義します。図1-1に、Oracle Entitlements Serverのコンポーネントを示します。各コンポーネントはXACMLエンティティの1つに対応します。

図1-1 Oracle Entitlements Serverのコンポーネント

次の各項には、Oracle Entitlements Serverコンポーネントの情報とコンポーネントがXACMLエンティティに準拠する方法が含まれています。

- 1.3.1項「ポリシー管理ポイント」

- 1.3.2項「ポリシー決定ポイントとポリシー実行ポイント」

- 1.3.3項「ポリシー情報ポイント」

1.3.1 ポリシー管理ポイント

ポリシー管理ポイント(PAP)は特定の保護リソースを保護するのに使用されるポリシーが作成され管理される場所ですエンティティが保護リソースへのアクセスのリクエストに対する付与または拒否の決定を行うために、PAPはこれらのルールをポリシー決定ポイントが使用できるようにします。Oracle Entitlements Server PAPは認可管理アプリケーション・プログラミング・インタフェース(API)から構成されます。(図1-1では、管理サーバーおよび管理APIがPAPを表します)。PAPには、管理コンソール、WebLogic Scripting Tool (WLST)、ポリシー配布コンポーネントまたは他の様々なツール(migrateSecurityStoreおよび再関連付けツール)から、アクセス(および使用)できます。図1-2は、アーキテクチャを示しています。

図1-2 Oracle Entitlements Server PAPアーキテクチャ

1.3.2 ポリシー決定ポイントとポリシー実行ポイント

Oracle Entitlements Serverがデプロイされると、ポリシー決定ポイント(PDP)は認可のリクエストを受信し、適用できるポリシーに基づいて評価して決定し、その決定をポリシー決定ポイント(PEP)である、最初に認可コールを作成したエンティティに返します。次にPEPが決定を実行します。

注意:

PDPは追加のサブジェクト、リソース、アクションおよび環境属性をポリシー情報ポイントから取得して、コンテキストをリクエストに追加できます。詳細は、1.3.3項「ポリシー情報ポイント」を参照してください。

PEPは、認可リクエストをインターセプトするのではなく、アプリケーションに送信されたアクセス・リクエストをインターセプトし、リクエストを認可するために、認可リクエストを形成してPDPに送信します。PDPから付与または拒否の決定を受信すると、その決定を実行します。PEPは、それ自体が保護アプリケーションまたはセキュリティ・モジュールである可能性があるソフトウェア・コンポーネントです。

注意:

PDPは決定(責任と呼ばれます)とともに、特定のコンテキスト内で決定を実行できる情報を戻すこともあります。アプリケーションはこれらの責任での動作を実行しません。詳細は、第2章「ポリシー・モデルの理解」を参照してください。

Oracle Entitlements Serverでは2つのタイプのセキュリティ・モジュールが提供されます。1つのタイプは、リクエストを受信し決定を下すことで単にPDPとして動作するように開発されました。もう1つのタイプは、このPDP機能にPEPの機能を組み合せたセキュリティ・モジュール・タイプであり、リクエストを受信し、認可決定を下して、この決定を実行します。第7章「ポリシー決定ポイントのデプロイ」では、セキュリティ・モジュールのデプロイ方法について説明します。次の各項では、セキュリティ・モジュールの動作方法を説明します。

- 1.3.2.1項「PDPとしてのセキュリティ・モジュール」

- 1.3.2.2項「PDP/PEPの組合せとしてのセキュリティ・モジュール」

- 1.3.2.3項「セキュリティ・モジュールのタイプの理解」

注意:

セキュリティ・モジュールは、インストール・プロセスの実行前および実行中は、OESクライアントと呼ばれます。

1.3.2.1 PDPとしてのセキュリティ・モジュール

セキュリティ・モジュールが単にPDPとして動作する場合、その唯一の機能は意思決定です。認可リクエストを受信し、その決定を認可コールの作成元のPEPへ返します。セキュリティ・モジュールが単にPDPとして動作する場合、外部エンティティはPEPとして動作、つまり(Oracle Entitlements Server認可APIを使用して)認可コールを作成し、返された決定を実行する必要があります。

図1-3に、コールを作成しているPEPエンティティがリソース(アプリケーション)そのものである場合の処理を示します。アクセスのリクエストを受信し、認可を開始して(セキュリティ・モジュールとの通信を介して)、返された決定を実行します。

図1-3 PEPとして動作するアプリケーションがPDPからの決定をリクエスト

図1-4に、PEPエンティティが、アプリケーションに到達する前にリクエストをインターセプトするエージェントまたはプラグイン(または同様のソフトウェア・コンポーネント)である場合の処理を示します。ソフトウェアコンポーネントはアクセスのリクエストをインターセプトし、認可を開始して(セキュリティ・モジュールとの通信を介して)、セキュリティ・モジュールから返された決定をアプリケーションに転送します。

図1-4 PEPとして動作するエージェントがリクエストをインターセプトし決定を下す

これらのシナリオは連携して柔軟な認可サービスを提供することができます。たとえば、中間Webサービス/XMLゲートウェイはサブジェクトのポータルへのアクセスに対する認可決定をリクエストできます。この最初の決定が許可だと仮定すると、Webサービス/XMLゲートウェイ自体は、アクセス権を付与されたユーザー用にポータルをパーソナライズするのに使用される、次の認可決定をリクエストできます。

1.3.2.2 PDP/PEPの組合せとしてのセキュリティ・モジュール

セキュリティ・モジュールがPDPとPEPとしてタンデムで動作する場合、認可リクエストをインターセプトし、決定を下し、決定を実行します。このリリースのOracle Entitlements Serverでは、WebLogic Server、Oracle Service BusおよびMicrosoft SharePointの各セキュリティ・モジュールは、この方法で動作します。

たとえば、WebLogic Serverセキュリティ・モジュールは、保護アプリケーションを実行するOracle WebLogic Serverコンテナに直接接続し、自動的に認可をリクエストします。このシナリオでは、サブジェクト開始のアプリケーションへのリクエストは認可のためにWebLogic Serverによりインターセプトされます。WebLogic Serverは正常な認可後、セキュリティ・モジュールのインストール中に構成された認可プロバイダのセットへのコールを作成することで、リクエストを認可しようとします。

ロール・マッピングおよび認可プロキシ・プロバイダはOracle Entitlements Server認可エンジンと通信します(PEP APIをコールし、次にそれがPDPをコール)。PDPは決定を計算し、その決定をPEPへ返します。PEPは適切な応答をWebLogic Serverに返します(オプションで、PDPは決定とともに責任を返すこともあります)。アクセスが拒否された場合、WebLogic Serverはセキュリティ例外をスローし、アクセスを防ぎます。アクセスが許可された場合、WebLogic Serverはアクセスを許可します。図1-5に、このシナリオを示します。

図1-5 PDPおよびPEPとしてのセキュリティ・モジュール

プロバイダを使用する利点は、きめ細やかなレベルの認可です。たとえば、プロバイダを使用することによって、サーブレットURLへのアクセスを保護すると同時に、返されたページにレンダリングする必要がある要素を決定するためにさらにPEP APIをコールすることをサーブレット自体に許可することができます(図1-3「PEPとして動作するアプリケーションがPDPからの決定をリクエスト」を参照)。デフォルトでは、ロール・マッピングおよび認可プロキシ・プロバイダは有効ではありません。

注意:

WebLogic Serverコンソールを使用して認可プロバイダを有効にする手順については、9.4項「WebLogic Serverリソースの保護」を参照してください。構成後パラメータはA.2.5項「WebLogic Serverセキュリティ・モジュール」に記載されています。

1.3.2.3 セキュリティ・モジュールのタイプについて

図1-6に様々なタイプのセキュリティ・モジュールがどのように開発されたかについて示します。

図1-6 セキュリティ・モジュールのアーキテクチャ

このトポロジに基づき、セキュリティ・モジュールのサービスはいくつかの方法で起動できます。

- Javaセキュリティ・モジュールは一般的なPDPで、Java APIまたは.NET APIを使用して認可の決定を行います。このセキュリティ・モジュールは次のコンテナでサポートされます。

- Java, Standard Edition (JSE)

- WebSphere

- JBoss

- Tomcat

- Microsoft Sharepoint Server

- マルチプロトコル・セキュリティ・モジュールは一般的なJavaセキュリティ・モジュールを含む(サービス指向アーキテクチャ原則に基づく)認可サービスです。RMI、Web ServicesおよびXACML (リクエストとレスポンス)を使用して認可の決定を行います。マルチプロトコル・セキュリティ・モジュールは、保護されたアプリケーションと同一場所に配置するか、または中央のサーバーにデプロイすることができます。

注意:

図1-4「PEPとして動作するエージェントがリクエストをインターセプトして決定を下す」は、XMLゲートウェイを使用するマルチプロトコル・セキュリティ・モジュールと同様の動作をします。リクエストをインターセプトし、宛先に送信する前に、認可を実行します。

- WebLogic、Oracle Service Bus (OSB)およびSharepointの各セキュリティ・モジュールは、PDPとPEPを両方含むセキュリティ・モジュールです。明示的な認可APIコールを必要とせずに、コンテナから直接リクエストを受信できます。

注意:

RMI、WebサービスまたはXACMLコールでは中央にデプロイされるセキュリティ・モジュールがサポートされますが、Oracle Entitlements Serverとセキュリティ・モジュールは同じWebLogic Serverドメインには存在できません。デプロイメント・モデルの詳細は、第7章「ポリシー決定ポイントのデプロイ」を参照してください。

認可の決定のリクエストと、セキュリティ・モジュールがポリシー配布サービスを使用してポリシー情報を更新する方法の詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。セキュリティ・モデルの構成と使用の詳細は、第8章「セキュリティ・モジュールの構成の管理」と第9章「環境固有のリソースの保護」を参照してください。

1.3.3 ポリシー情報ポイント

ポリシー情報ポイント(PIP)はデータ・リポジトリであり、認可の決定用にポリシーを評価するときに使用するために取得できる情報のソースです。これにより、属性の値がアクセスの決定に影響を与えることができるという点で、ポリシーがデータ駆動となることができます。たとえば、銀行口座からの送金へのアクセスが現在口座にある金額に基づく場合、属性リトリーバ・コンポーネントを使用して現在の残高を取得できます。

Oracle Entitlements Serverデプロイメントでは、属性リトリーバがPIPの役目を果たすので、このマニュアルではPIPと属性リトリーバという用語は区別しないで使用されます。図1-1「Oracle Entitlements Serverのコンポーネント」に示した属性権限コンポーネントがPIPと考えられます。属性リトリーバ・コンポーネントは、LDAPとリレーショナル・データベースのデータ・ソースの両方で即時使用可能です。属性リトリーバの詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』と付録B「属性リトリーバの手動構成」を参照してください。

1.4 Oracle Entitlements Serverの認可ポリシーの処理方法

Oracle Entitlements Serverの認可プロセスには、1.3項「Oracle Entitlements Serverのアーキテクチャの概要」で説明したコンポーネントが含まれます。ポリシーの決定がリクエストされると、PDPはリクエストに関連するすべてのポリシーを評価し、付与または拒否の決定をコールしたアプリケーションに返します。図1-7にポリシー認可プロセスでのデータの流れを示します。

図1-7 ポリシー認可プロセスでのデータの流れ

1. Oracle Entitlements Server (PAPとして動作)を使用して特定のリソースを保護するポリシーを作成および管理します。

2. ポリシー・リポジトリ内のポリシーは、ポリシー配布サービスにより、PDPに対してローカルであるポリシー・キャッシュにプッシュされます。PDPはポリシーをこのキャッシュから読み取ります。詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。

3. リソースへのリクエストはそれを保護しているPEPにより受信されます。PEPはアプリケーション自体またはセキュリティ・モジュールである可能性があります。どちらであってもOracle Entitlements Serverへの認可コールを作成します。

4. PEPはPDPへの認可コールを作成します。

5. セキュリティ・モジュールPDPは適切なデータ・ソースPIPからの追加のサブジェクト、リソース、アクション、および環境属性を問い合せます。

6. セキュリティ・モジュールPDPはリクエストを評価し、アクセスを付与または拒否する認証の決定の形式で、応答(および適用できる責任)をPEPに返します。

7. PEPは適用できる場合には責任を遂行します。責任は、決定とともに返される情報で、それに基づいてPEPは動作するまたは動作しない可能性があります。たとえば、責任には拒否する決定に関する追加情報が含まれていることがあります。PEPエンティティはその設定に基づき責任の遂行を担当します。Oracle Entitlements Serverはポリシー構成に基づき責任の転送のみを担当します。

8. アクセスが許可された場合、PEPは要求元にリソースへのアクセスを付与します。そうでない場合、アクセスは拒否されます。

2.2項「Oracle Entitlements Serverのポリシーの評価方法」に詳細が記載されています。

1.5 サポートされるアクセス制御の標準について

Oracle Entitlements Serverでは多くのアクセス制御モデルがサポートされます。多くのアクセス制御製品はこれらのモデルのうち1つのみをサポートしますが、Oracle Entitlements Serverでは、これらの多くをサポートする柔軟性を備えたポリシー・モデルが実装されています。厳密に1つのモデルに基づいて、または異なるモデルの一部を組み合せて、デプロイすることができます。次の各項では、アクセス制御モデルについて説明します。

- 1.5.1項「ロールベースのアクセス制御(RBAC)」

- 1.5.2項「属性ベースのアクセス制御(ABAC)」

- 1.5.3項「Java権限」

- 1.5.4項「XACML」

- 1.5.5項「PEP API」

1.5.1 ロールベースのアクセス制御(RBAC)

ロールベースのアクセス制御(RBAC)認可モデルはロールを使用してユーザーの権限を定義します。最初にロールが作成されます。次に特定の操作を実行するための権限がロールに割り当てられ、最後にユーザーまたは外部グループがロールに割り当てられます。ロールの割当てにより、割当て先は割り当てられた操作を実行する権限を取得します。つまり、RBACにより、個別の権限の管理は単に適切なロールを適切なエンティティに割り当てるという問題になります。ロール同士を階層内で結合させて、より高いレベルのロールに下位ロールが所有する権限を含めることもできます。このモデルは、たとえば認可要件が複雑ではない場合など、大まかな認可を行う場合に役に立ちます。アプリケーション・ロールはRBACに基づくOracle Entitlements Serverデプロイメントをモデル化する場合に使用されます。

1.5.2 属性ベースのアクセス制御(ABAC)

属性ベースのアクセス制御(ABAC)では属性を使用してきめ細やかな認可を定義する機能が提供されます。ロールを作成する必要はありません。ABACポリシーは、ユーザーにアクセス権を付与する前に満たす必要のある、ユーザーが特定の年齢である必要があるといった、1つまたは複数のクレームを指定します。ユーザーがこのクレームを証明できれば、アクセス権が付与されます。ABACに基づくOracle Entitlements Serverのデプロイメントをモデリングするときには条件が使用されます。詳細は、4.6項「条件ビルダーの使用」を参照してください。

1.5.3 Java権限

Oracle Entitlements ServerはOracle Platform Security Services (OPSS)の拡張として構築されています。OPSSセキュリティ・モデルはJava Authentication and Authorization Service (JAAS)セキュリティに基づいています。JAASでは原理ベースおよびコード・ベースのポリシーをサポートするJavaベースのセキュリティ標準を実装する、権限ベースの認可システムが導入されます。Java権限オブジェクトはリソースをアクセスする権限を示します。たとえば、次のコードは、/tmpディレクトリのabcという名前のファイルへの読取りアクセス権を示すFilePermissionオブジェクトを作成します。

perm = new java.io.FilePermission("/tmp/abc", "read");

Oracle Entitlements ServerはJava Development Kitのdeveloperバージョン1.6 (Standard EditionまたはEnterprise Editionプラットフォームのどちらか)をサポートします。詳細は、Javaのドキュメント(http://www.oracle.com/technetwork/indexes/documentation/index.html)を参照してください。

1.5.4 XACML

eXtensible Access Control Markup Language (XACML)はポリシーを解釈する方法とアクセス制御ポリシー言語(XMLを使用して記述)について説明するアクセス制御モデルです。Oracle Entitlements ServerはXACMLリクエストとレスポンスの標準をアーキテクチャ・モデルと同様に(1.3項「Oracle Entitlements Serverアーキテクチャの概要」で説明)実装します。また、XACMLでポリシーをプリンシパル、リソース、アクションおよび属性の集合として定義する方法も実装します。詳細は、XACML仕様を参照してください(http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml)。

注意:

このリリースのOracle Entitlements Serverには、XACML 3.0のデータ型と関数のサポートのみが追加されています。

1.5.5 PEP API

Oracle Entitlements ServerはOpen Azフレームワーク(http://www.openliberty.org)の一部であるPEP APIを実装しています。org.openliberty.openaz.azapiパッケージでは、PEPからリモートまたは埋込みPDPへのアクセスが提供されます。org.openliberty.openaz.azapi.pepパッケージ(PEP API)は、PEPにより使用されて認可リクエストをPDPに送信するように、Oracle Entitlements Serverにより実装されています。Open Az APIの詳細は、http://openaz.sourceforge.netで説明されています。PEP APIの実装の詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。

注意:

Oracle Entitlements Serverにより実装されているので、PEP APIはJava権限により保護されたリソースの認可決定はサポートしません。

2 ポリシー・モデルについて

ポリシーは、Oracle Entitlements Serverによって評価され、特定の保護されたリソースへのアクセスまたは特定のロールへの割当てをユーザーに付与するかどうかを指定する条件のセットです。この章では、ポリシーを構成する要素であるOracle Entitlements Serverのポリシー・モデルの概要と、その要素のポリシー・ストアでの構成について説明します。この章には次の項目があります。

- 2.1項「Oracle Entitlements Serverのポリシーの理解」

- 2.2項「Oracle Entitlements Serverのポリシーの評価方法」

- 2.3「ポリシー・オブジェクトの用語集」

- 2.4項「ポリシー・ユースケースの実装」

2.1 Oracle Entitlements Serverのポリシーについて

Oracle Entitlements Serverでは次のタイプのポリシーの作成がサポートされます。参照先の項には、ポリシー・タイプに関する詳細がその使用法とともに含まれています。

- 認可ポリシーは、組織の保護されたリソースへのアクセスを制御する条件を定義します。2.1.1項「認可ポリシーの理解」を参照してください。

注意:

リソースにはソフトウェア・コンポーネントやビジネス・オブジェクトがあります。詳細は、2.4項「ポリシー・ユースケースの実装」を参照してください。

- ロール・マッピング・ポリシーは、Oracle Entitlements Serverで作成したロールへのメンバーシップを外部のユーザー、グループまたはロールに付与または拒否する方法を制御する条件を定義します。2.1.2項「ロールの割当てとロール・マッピング・ポリシーの理解」

2.1.1 認可ポリシーについて

認可ポリシーは、リクエストしているユーザーのプロファイルに基づき特定のリソースへのアクセス権を付与または拒否するために作成されます。高いレベルから、認可ポリシーは、結果(付与または拒否)、プリンシパル(リクエストしているユーザー)、ターゲット・リソース、リソースに許可されたアクション、およびオプションの条件間の関係を定義します。認可ポリシーは、リクエストのパラメータがポリシーに指定したものと一致した場合に、アクセスのリクエストに適用できます。次の認可ポリシーの定義を考えてみます。

GRANT the SupportManagerEast role MODIFY access to the Incidents servlet
if the request is made from an IP address of 229.188.21.21

この認可ポリシーでは、SupportManagerEastロールのメンバーであるユーザーに、インシデント・サーブレットへの変更目的のアクセス権を付与します。このポリシーには、IPアドレス229.188.21.21からのリクエストに限られるというオプションの条件による制約もあります。したがって、リクエストのパラメータがポリシーのパラメータと一致し(SupportManagerEastロールのメンバーがインシデント・サーブレットを変更する)、リクエストがIPアドレス229.188.21.21から出された場合、リクエストは許可されます。リクエストのパラメータがポリシーのパラメータと一致した(SupportManagerEastロールのメンバーがインシデント・サーブレットを変更する)が、リクエストがIPアドレス229.188.21.21から出されていない場合、リクエストは無視されます。次の用語と値のリストは、ポリシー定義から抽出されたもので、認可ポリシーのコンポーネントを構成します。

- 結果: 付与

- アクション: 変更

- リソース: インシデント・サーブレット

- プリンシパル: SupportManagerEastロールのメンバー

- 条件/制約: IPアドレス229.188.21.21

図2-1に、このポリシーのコンポーネントの、Oracle Entitlements Server認可ポリシー・オブジェクトへのマップ方法を示します。

図2-1 認可ポリシー・オブジェクトにマップされたポリシー・コンポーネント

認可ポリシーの作成、更新および削除方法の詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

2.1.2 ロールの割当てとロール・マッピング・ポリシーについて

アプリケーション・ロールは、ユーザー、グループまたは他のアプリケーション・ロールのコレクションであり、Oracle Entitlements Serverで定義され、ポリシー・ストアに格納されます。アイデンティティ・ストア内のユーザー、グループまたは外部ロール、またはOracle Entitlements Serverポリシー・ストア内の別のアプリケーション・ロールに割り当てることができます。

注意:

アプリケーション・ロールを別のアプリケーション・ロールに割り当てることで、アプリケーション・ロールの階層を構築できます。

アプリケーション・ロールは次のいずれかの方法でユーザーに割り当てることができます。

- ロールの特定のユーザー・メンバーシップに静的に付与。

- 実行時にロール・メンバーシップを動的に割り当てるのに使用されるロール・マッピング・ポリシーのアプリケーション・ロールを参照。

ロール・マッピング・ポリシーにより、ロール・メンバーシップをユーザーに動的に割り当てる(GRANT)か、またはロール・メンバーシップをユーザーから動的に失効する(DENY)ことができます。次のロール・マッピング・ポリシーの定義を考えてみます。

GRANT the Employee group application role SupportManageEast
if the request is made from an IP address of 229.188.21.21

このポリシーでは、SupportManagerEastアプリケーション・ロールをグループEmployeeのメンバーであるユーザーに付与します。このポリシーには、IPアドレス229.188.21.21からのリクエストに限られるというオプションの条件による制約もあります。したがって、リクエストのパラメータがロール・マッピング・ポリシーのパラメータと一致し(リクエストしているユーザーはEmployeeグループのメンバーである)、リクエストがIPアドレス229.188.21.21から出された場合、アプリケーション・ロールは付与されます。リクエストが定義されたIPアドレスからではない場合、ロール・マッピング・ポリシーは無視されます。ロール・マッピング・ポリシーには、オプションでターゲットも追加できます。次の用語と値が、このロール・マッピング・ポリシー定義に適用されます。

- 結果: 付与

- アプリケーション・ロール: SupportManagerEast

- プリンシパル: Employeeグループのメンバー

- 条件/制約: IPアドレス229.188.21.21

リソースまたはリソース名式がロール・マッピング・ポリシーのターゲットとして定義されている場合、それがリクエストに定義されているリソースと一致した場合のみ、ロール・マッピング・ポリシーが適用されます。図2-2に、このサンプル・ポリシーのコンポーネントの、Oracle Entitlements Serverロール・マッピング・ポリシー・オブジェクトへのマップ方法を示します。

図2-2 ロール・マッピング・ポリシー・オブジェクトにマップされたポリシー・コンポーネント

ロール・マッピング・ポリシーを使用して、特定のユーザーがアプリケーション・ロールに割り当てられるのを防ぐこともできます。次のロール・マッピング・ポリシーの定義を考えてみます。

DENY the Customers group the application role GoldCircle
if the account balance is less then $10,000

このポリシーでは、GoldCircleアプリケーション・ロールのCustomersグループのメンバーへの付与は、その口座残高が$10,000に満たない場合は拒否されます。ロール・マッピング・ポリシーの作成、更新および削除方法の詳細は、4.5.7項「ロール・マッピング・ポリシーの管理」を参照してください。

2.2 Oracle Entitlements Serverのポリシーの評価方法

Oracle Entitlements Serverランタイム評価中に、次のことが行われます。

1. サブジェクトに基づき、次を実行することでアプリケーション・ロールのリストが決定されます。

1. ユーザーの静的ロール・メンバーシップを取得します。

2. すべての適用できるロール・マッピング・ポリシーをGRANTの結果で評価し、それを事前に決定されたロールのリストに追加します。

3. すべての適用できるロール・マッピング・ポリシーをDENYの結果で評価し、それを事前に決定されたロールのリストから削除します。

2. サブジェクトと取得したアプリケーション・ロールのリストに基づき、認可ポリシーのリストが評価されて、権限受領者、ターゲットの一致と条件に基づいて適用できるポリシーを見つけます(リソースで許可されるアクションは認可ポリシーで定義されます)。

3. 最終的な認可決定は、アルゴリズムを組み合せた拒否のオーバーライドに基づいており、コールしたアプリケーションに返されます。

1.4項「Oracle Entitlements Serverの認可ポリシーの処理方法」にはこの処理についての詳細が含まれています。

2.3 ポリシー・オブジェクトの用語集

この項で定義されているポリシー・オブジェクトは、Authorization Policy Manager管理コンソールを使用して作成、プロビジョニングまたは管理できます。

- アプリケーション
アプリケーションはロール、ポリシー、リソース定義およびその他のポリシー・オブジェクト(実際には、特定のリソースへのセキュア・アクセスを定義するために必要なすべての項目)を管理するための高レベルのコンテナです。アプリケーションは、配置済の1つのソフトウェア・アプリケーション、配置済のソフトウェア・アプリケーションのセット、またはソフトウェア・アプリケーションのコンポーネント(Enterprise Java Beanなど)に対応します。Oracle Entitlements Serverで、複数のアプリケーションを管理できます。詳細は、4.5.1項「アプリケーションの管理」を参照してください。

- アプリケーション・ロール
アプリケーション・ロールは、ユーザー、グループ、外部ロールまたはその他のアプリケーション・ロールを特定のOracle Entitlements Serverアプリケーション・オブジェクトにマッピングするための条件を定義します。アプリケーション・ロールは、アイデンティティ・ストアの外部ユーザー、グループ、ロールまたはポリシー・ストアの別のアプリケーション・ロールに付与することができます。(ロール・カタログ内で)アプリケーション・ロールを作成する場合は、あるターゲット・リソースへアクセスするために必要なすべての権限をそのロールに付与することができます。次に、メンバーシップを明示的に付与することで、アプリケーション・ロールを静的に割り当てることができます。あるいは、ロール・マッピング・ポリシーでサブジェクトとして参照することで、アプリケーション・ロールを動的に割り当てることができます。1つのターゲット・アプリケーションが複数の異なるアプリケーション・ロールを持ち、より詳細なアクセスを提供する異なる権限のセットをそれぞれのロールに割り当てることが可能です。

1つの外部ロールを複数のアプリケーション・ロールにマップできます。たとえば、(LDAPベースのアイデンティティ・ストア内に格納されている)外部ロールemployeeは、(あるアプリケーションで定義されている)アプリケーション・ロールcustomersupport memberと(別のアプリケーションで定義されている)アプリケーション・ロールIT memberにマップできます。ロール・カタログはアプリケーション・ロールが格納されるコンテナです。詳細は、4.5.6項「ロール・カタログのアプリケーション・ロールの管理」を参照してください。

注意:

アプリケーションのロール・カタログを使用して、アプリケーション・ロールを編成できます。Oracle Entitlements Server管理コンソールのロール・カタログ・ノードのアプリケーション・ロールを検索します。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

- 属性
属性は、ポリシーの条件で使用できるデータ、またはポリシー決定により責任として返すことができるデータを表します。属性には、組込み属性(現在時刻または現在のユーザーなど、その値が常に定義されている)、リソース属性(構成済Oracle Entitlements Serverリソースに関連付けられ、管理されている)または動的属性があります。属性は、名前、値として使用するデータの型、および値が1つのみかそれとも複数かによって定義されます。属性値は保護されたアプリケーションによって認可リクエストの一部として渡されるか、またはOracle Entitlements Serverによって属性リトリーバを使用して取得されます。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

- 認可ポリシー
認可ポリシーでは、保護されたリソース上でエンティティ(権限受領者、プリンシパルまたはコード・ソース)に許可される権限のセットを指定します。たとえば、Webページの表示やレポートの変更などです。つまり、Oracle Entitlements Serverによって保護されたリソースに対して誰が何を実行できるかを指定します。詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

注意:

構成されたアプリケーションのデフォルトのポリシー・ドメイン・ノード(または該当する場合はカスタム・ポリシー・ドメイン・ノード)で認可ポリシーを検索します。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

- 条件
条件とは、ポリシーが認可決定に含まれるためにtrueと評価される必要がある1つ以上のブール式のことです。条件をポリシーに追加することはオプションで、使用すると保護リソースへのアクセスがさらに制限されます。一般的に、条件のブール式では、なんらかのユーザー、リソースまたはシステム属性の値をテストします。個々の条件はAND、OR、NOTといった論理演算子を使用して結合できます。条件は、日付、時間、時間範囲、曜日などに基づく制約を定義できます。詳細は、4.6項「条件ビルダーの使用」を参照してください。

- 資格
資格(権限セットとも呼ばれます)は、リソースの小さなセット、およびタスクを実行するために必要な関連アクションを表します。ビジネス機能を実行するために必要な、タイプが異なる可能性がある関連リソースをグループ化します。資格は、複数のプリンシパルに付与できるアクセス権の再利用可能なコレクションです。詳細は、4.5.4項「資格の管理」を参照してください。

- 外部ロール
外部ロールは、LDAPサーバーまたはデータベースなどの外部アイデンティティ・ストアで定義されます。外部ロールという用語は、エンタープライズ・ロールまたはエンタープライズ・グループと同義で使用されることもあり、通常はアイデンティティ・ストア内のLDAPグループとして実装されます。外部ロールのポリシーへの追加の詳細は、4.5.5.1項「認可ポリシーの作成」または4.5.7.1項「ロール・マッピング・ポリシーの作成」を参照してください。

注意:

Oracle Entitlements Server内では、外部ロールおよびユーザーは読取り専用です。これらはOracle Identity Managerなどの別のツールで管理されます。詳細は、『Oracle Fusion Middleware Oracle Identity Managerシステム管理者ガイド』を参照してください。

- 関数
関数は、ポリシーの条件評価の一部として起動できるコードを表し、戻り値は条件の評価に影響します。カスタム関数を追加作成することによって、Oracle Entitlements Serverで提供されている関数を拡張できます。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

- 責任
責任には認可決定のGRANTまたはDENYと一緒に返される追加の情報を指定します。ポリシーで使用すると、責任にはポリシー実行コンポーネントへの追加の要件を設定できるほか、単に有用な情報をリクエストできます。たとえば、アクセスのリクエストが拒否された理由を責任として返すことができます。責任のポリシーへの追加の詳細は、4.5.5.1項「認可ポリシーの作成」を参照してください。

- ポリシー・ドメイン
ポリシー・ドメインは、リソース、資格および認可ポリシーの管理を促進するパーティションとして機能できるアプリケーション・オブジェクトの下のコンテナです。ポリシー・ドメインは管理者の権限を特定のリソース、資格、認可ポリシーのサブセットに限定できるオプションの管理構造体です。ポリシー・ドメインはランタイム・ポリシー評価時には無効です。複数のポリシー・ドメインを作成し、階層化できます。デフォルト・ポリシー・ドメインをその作成時に各アプリケーションに追加できます。詳細は、11.4「委任するポリシー・ドメインの使用」を参照してください。

- ポリシー・ストア
ポリシー・ストアは、すべてのOracle Entitlements Serverポリシー・オブジェクト(アプリケーション、リソースおよび様々なロール・タイプが含まれますがこれに限定されません)が保存される場所です。ポリシー・ストアはリレーショナル・データベース(推奨)またはLDAPベース・ディレクトリのどちらでもかまいません。詳細は、3.2.3項「ポリシー・ストアへのアクセス」を参照してください。

- プリンシパル
プリンシパルとは、ポリシー内で定義されたアクセス権が付与されるアイデンティティです。プリンシパルには、ユーザー、グループ、外部ロールまたはアプリケーション・ロールを指定できます。ほとんどの場合、アプリケーション・ロールを指定します。プリンシパルのOracle Entitlements Serverポリシーへの追加の詳細は、4.5.5.1項「認可ポリシーの作成」または4.5.7.1項「ロール・マッピング・ポリシーの作成」を参照してください。

- リソース
リソースは保護されたコンポーネントまたはオブジェクトであり、これに対してアクセス権が付与または拒否されます。リソースは、認可ポリシーで保護されるアプリケーション・コンポーネントまたはビジネス・オブジェクトを表します。アプリケーションは実行時にリソース名を渡して、プリンシパルにアクセスが認可されているかどうかを決定するアクセス定義を確認します。リソースには関連付けられたリソース・タイプが必要です。詳細は、4.5.3項「リソースの管理」を参照してください。

- リソース・タイプ
リソース・タイプは、保護されたオブジェクトのタイプを表します。共通の特徴を共有する保護されたソフトウェア・アプリケーション・コンポーネントは、特定のリソース・タイプで表すことができます。たとえば、ページのセットを1つのリソース・タイプで表し、銀行口座を別のリソース・タイプで表すことができます。リソース・タイプでは、適格なリソース属性と、保護されたコンポーネントに適用できる有効なアクションを定義します。詳細は、4.5.2項「リソース・タイプの管理」を参照してください。

- ロール・カテゴリ
ロール・カテゴリはアプリケーション・ロールに関連付けることのできるオプションのタグで、検索に使用できます。ロール・カテゴリを使用すると、管理者はロールを任意のフラット・コレクションに編成できます。これはランタイム・ポリシー評価時には無効です。詳細は、4.5.8項「ロール・カテゴリの管理」を参照してください。

- ロール・マッピング・ポリシー
ロール・マッピング・ポリシーは、適用可能なアプリケーション・ロールに割り当てる外部サブジェクト(ユーザー、グループまたは外部ロール)を決定するために使用します。認可ポリシーで参照されているアプリケーション・ポリシーは、認可ポリシーの影響を受けるプリンシパルを定義します。ロール・マッピング・ポリシーでは条件も使用できます。詳細は、4.5.7項「ロール・マッピング・ポリシーの管理」を参照してください。

注意:

Oracle Entitlements Server管理コンソールのロール・カタログ・ノードでロール・マッピング・ポリシーを検索します。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

2.4 ポリシー・ユースケースの実装

Oracle Entitlements Serverはポリシー管理とポリシー決定ロジックを組織のリソースから外部化する機能を提供します。組織のリソースへのアクセスを、それらにアクセスできるユーザー、グループおよびロールを指定するポリシーを実装することで保護します。リソースには、アプリケーション・ソフトウェア・コンポーネント(URL、Enterprise JavaBeans、JavaServer Pages)またはエンタープライズ・ビジネス・オブジェクト(顧客の口座、患者のレコード)があります。このユースケースでは、ポリシー・モデルを使用してAcme Investment Bankにより提供される金融サービスを保護する方法について考えてみます。これは階層型リソースの概念に基づきます。つまり、リソースはツリーに編成され、親要素から継承します。

注意:

Oracle Entitlements Serverでは非階層化(フラット)リソースの概念もサポートされます。詳細は、4.5.2項「リソース・タイプの管理」を参照してください。

このユースケースでは、次の条件が適用されます。

- 顧客は家族口座を開くことができ、その口座の所有者とみなされます。

- 顧客は家族メンバー用の子口座を開き、各メンバーに対し振替限度額を設定できます。振替限度額は顧客自身の振替限度額よりも低い必要があります。

- 各口座には、口座担当者としての役目を果たし、口座に振替限度額を設定する銀行員がいます。

- サマリー・レポートと口座担当者レポートの両方が各家族口座に関連付けられます。

図2-3に、保護リソースをビジネス・オブジェクトとソフトウェア・コンポーネントに編成することによる金融サービスのシナリオを示します。Paulは口座担当者で、管理する口座の振替限度額を$100,000を設定できる銀行員です。Paulは口座の所有者であるBobの家族口座を管理します。この口座の振替限度額は$10,000です。Bobは自分の家族口座と、振替を行わないMary用に作成した子口座を管理します。これらの口座はビジネス・オブジェクトとみなされ、そのように保護されます。

口座所有者のBobには家族口座用に生成されたサマリー・レポートへのアクセス権があります。口座担当者のPaulにはBobのサマリー・レポートと自分の口座管理レポートへのアクセス権があります。子口座の名義人のMaryにはレポートへのアクセス権はありません。これらのレポートはJavaServerページとして生成され、ソフトウェア・コンポーネントとみなされて、そのように保護されます。

図2-3 ソフトウェア・コンポーネントとビジネス・オブジェクトのユースケース

指定したユーザーに対し、金融サービスの口座(ビジネス・オブジェクト)または口座レポート(ソフトウェア・コンポーネント)へのアクセスのリクエストでは、次の質問に基づき、決定が生成されます。

1. このユーザーは口座の名義人、口座の所有者または口座担当者ですか。

2. このユーザーはこの口座から資金の振替ができますか(ロール、振替限度額、取引時間による)。

3. このユーザーはどのレポートにアクセスできますか。

最初の2つの質問はビジネス・オブジェクトを保護するために作成されたポリシーを使用して決定できますが、最後の質問はソフトウェア・コンポーネントを保護するために作成されたポリシーを使用して決定できます。次の各項では、ポリシーを概念化する方法について説明します。

- 2.4.1項「ソフトウェア・コンポーネントの保護」

- 2.4.2項「ビジネス・オブジェクトの保護」

2.4.1 ソフトウェア・コンポーネントの保護

図2-3「ソフトウェア・コンポーネントとビジネス・オブジェクトのユースケース」のAccount Reportsノードは、レポーティング・アプリケーションを表しています。Summary.jspおよびDetailed.jspはソフトウェア・コンポーネントです。これらのソフトウェア・コンポーネントを保護するためにポリシーをモデル化する方法を決定するときに、選択するオプションがいくつかあります。1つのオプションは、グループ・メンバーシップを使用することで上位ノードのレポーティング・アプリケーションに認可ポリシーを設定します。次の例で、リソースとそれにアクセスできるユーザーのグループに名前を付けることで、アクセス権を明示的に付与する方法を示します。

GRANT the BankManagers group access to the AccountReports node

このトップダウンの認可ポリシーでは、Account Reportsノードへのアクセス権をBankManagersグループのユーザーに付与します。これらのリソースは階層化されているので、許可されたグループの全員がサマリーおよび詳細レポートにアクセスできます。しかしこのアクセスはシステム・ベースまたは属性ベースの条件を使用して制約されることがあります。たとえば、時間に基づく、または特定のユーザー、グループまたはリソース属性に基づく条件を追加することで、さらにアクセスが制限されます。次の例で、時間ベースの条件によりレポートへのアクセスが通常の営業時間に制限される方法を示します。

GRANT the BankManagers group access to the AccountReports node
IF the request is made between 09:00 and 17:00

もう1つのオプションでは、グループではなくロールとしてプリンシパルを定義することでトップダウンの認可ポリシーを設定できます。1つのロールはユーザーまたはグループから構成されます(アプリケーション・ロールはそれが構成されたアプリケーションに特有であるのに対し、LDAPロールはエンタープライズ全体で付与されます)。

注意:

2.1項「Oracle Entitlements Serverポリシーの理解」で説明したように、ユーザーはメンバーシップまたはロール・マッピング・ポリシーを使用してロールに割り当てることができます。

次の例では、リソースに明示的に名前が付けられ、アクセス権は定義済のロールに割り当てられているユーザーに暗黙的に付与されます。

GRANT access to AccountReports node if user has BankManagers role

BankManagersロールをレポーティング・アプリケーションにアクセスしているユーザーに(BankManagersグループのメンバーであれば)動的に割り当てることもできます(次に例示)。

GRANT BankManagers role to members of BankManagers group
FOR access to AccountReports node

以前の認可ポリシーを定義するもう1つの方法は、グループ・メンバーシップではなくユーザー属性値に基づきロールを割り当てることです(規模の大きい企業では、グループ・メンバーシップではなく属性に基づきユーザーを割り当てることが通常はより効率的です)。次の例では、ユーザーのプロファイルのUserType属性の値がBankManagerである場合に、BankManagersロールを、リクエストしているユーザーに割り当てます。

GRANT BankManagers role to anyone defined by UserType 'BankManager'
FOR access to the AccountReports node

前の例では、上位ノードのレポーティング・アプリケーションからレポートまで範囲とする認可ポリシーを示していますが、認可ポリシーは特定のレポート・ノードに対して定義することもできます。次の例では、Summary.jspレポートへのアクセス権をBankManagersおよびAccountOwnersロールのすべての割当先に付与します。追加の条件は、アクセスをリクエストしているプリンシパルが、レポートの関連アカウントにリストされている必要があることです。

GRANT Summary.jsp access to all members of BankManagers and AccountOwners role
IF the requesting assignee is listed as OWNER or MANAGER on specified account

もう1つの例は、Detailed.jspレポートへのアクセスが、BankManagerロールに割り当てられたユーザーに付与できる方法を示しています。

GRANT Detailed.jsp access to all assignees of BankManagers role

前の例は、認可ポリシーが特定のアプリケーション・ソフトウェア・コンポーネントにモデル化できる方法を示しています。実際の企業でのシナリオでは、各アプリケーションに数十または数百のリソースが含まれる場合があるので、それぞれに対して認可ポリシーを作成するのは現実的ではない可能性があります。リソース属性の概念は、このアプリケーション・ソフトウェア・コンポーネント・リソースと関連する認可ポリシーの急増に対処するために、Oracle Entitlements Serverにより実装されました。

リソースと属性を関連付けることで、属性の値に基づきアクセス権を付与することができます。たとえば、filetypeはHTMLページ、イメージまたはPDFを定義するのに使用するリソース属性です。if filetype=pdfとして条件を定義することで、リソースに関連付けられたすべてのPDFファイルへのアクセス権を付与することができます。次の例ではリソース属性を使用します。これにより、リクエストされているレポート・タイプが特定のユーザー・プロファイルのUserReportType属性の値と一致している場合にのみアクセス権が付与されるにもかかわらず、BankManagersおよびAccountOwnersロールに割り当てられたユーザーはすべてのレポートにアクセスできます。

GRANT users assigned BankManagers or AccountOwners roles
access to AccountReports
IF requested ReportType matches UserReportType attribute value
in user profile

このポリシーでは、アクセスがリソース属性値とユーザー属性値の一致に基づいて制約されるにもかかわらず、BankManagersおよびAccountOwnersにすべてのレポートへのアクセス権が付与されます。この方法の利点は、リソースがアプリケーションに追加されたり削除されたりしても、アクセスを管理するポリシーを変更する必要がないことにあります。リソースが変更されても、アプリケーションに付属するReportTypeリソース属性によるアクセスの管理は継続します。

2.4.2 ビジネス・オブジェクトの保護

ビジネス・オブジェクトを保護するために認可ポリシーをモデル化する方法を決定するときに、選択するオプションがいくつかあります。この銀行シナリオでは、ビジネス・オブジェクトは銀行口座です。図2-3「ソフトウェア・コンポーネントとビジネス・オブジェクトのユースケース」は、銀行口座の構造を表しています。

各銀行口座に、担当者、所有者、および名義人を、特定の権限のセット(または 資格)に割り当てられた各スコープとともに持たせることができます。そのため、ユーザーが銀行口座で実行できることを評価しているポリシーが基づくのは、リソースではなくユーザーの属性です。次の例では誰でも振替は可能ですが、リクエストされた口座の所有者としてそのユーザーが定義され、振替金額がユーザーに定義された制限額よりも少ないか同じである場合にのみ、その権限が付与されます。

GRANT anyone transfer privileges only
IF the user is listed as OWNER on specified account
AND transfer amount is equal to or less than the transfer limit

ユーザーの資格を取得する別のオプションがあります。振替のリクエストと振替限度額を比較するのでなく、Oracle Entitlements Serverでは評価の出力として振替限度額を返すことができます。このシナリオでは、ユーザーが口座にアクセスできるかどうかは検証されますが、振替金額が責任としてコール元に返されます(Javaオブジェクト内で)。ここでは、振替金額が振替限度額内であるかどうかの検証はアプリケーションに任されています。次の例で、このモデルを説明します。

GRANT anyone transfer privileges only
IF the user is listed as OWNER on specified account
THEN RETURN transfer limit to calling application

銀行口座が個別のリソース・インスタンスに対応するモデルを使用することもできますが、ポリシーの急増(口座ごとに1つ)が生じ、管理が難しくなります。たとえば、Acme Investment Bankに100,000口座がある場合、振替を管理するだけで少なくとも100,000ポリシーが必要になります。責任の追加の詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

3 スタート・ガイド

この章では、Oracle Entitlements Serverの使用を開始する方法について、そのグラフィカル・インタフェースの使用と移動方法についての情報を含めて説明します。この章には次の項目があります。

- 3.1項「始める前に」

- 3.2項「グラフィカル・インタフェースの理解」

- 3.3項「管理コンソールへのアクセス」

- 3.4項「管理コンソール内の移動」

- 3.5項「Oracle Entitlements Server Basicからのアップグレード」

- 3.6項「Oracle Entitlements Serverの例へのアクセス」

3.1 始める前に

Oracle Entitlements Serverの使用を開始する前に、次のタスクが実行されている必要があります。これには、製品とそのコンポーネント(たとえばリモートのセキュリティ・モジュール)のインストール、該当する場合には、高可用性およびSecure Sockets Layer (SSL)などの機能の構成が含まれます。これらのタスクを完了したら、3.2項「グラフィック・インタフェースの理解」を開始できます。

- 『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』の説明に従って、Oracle Entitlements Serverをインストールおよび構成します。

- Oracle Entitlements Serverで管理するポリシー・ストアはリレーショナル・データベースである必要があります。

- Oracle Entitlements Serverと関連付けられるアイデンティティ・ストアはLDAPベース・ディレクトリである必要があります。

- インストール後、Oracle Entitlements Serverアイデンティティ・ストアはWebLogic Serverの組込みLDAPディレクトリに関連付けられます。この組込みLDAPディレクトリは開発目的には適していますが、本番ではサポートされるLDAPディレクトリを使用する必要があります。次の手順で、デフォルトのアイデンティティ・ストアの設定を再構成します。LDAP認証プロバイダの構成のより詳細な情報は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』に記載されています。

1. WebLogic Serverコンソールを起動します。

2. 「セキュリティ・レルム」をクリックします。

3. myrealmの設定をクリックします。

4. 「プロバイダ」タブをクリックします。

5. 図3-1に表示されているように「認証」タブをクリックします。

図3-1 「認証プロバイダ」タブ

6. 「新規」ボタンをクリックして、新しいプロバイダを作成します。

7. 名前を入力し、LDAPベース・ディレクトリのタイプを選択します。
たとえば、OracleInternetDirectoryAuthenticatorです。

8. LDAPベース・ディレクトリのプロバイダ特有の属性を構成します。
これには、ホスト名とポート、資格証明、グループ検索ベース、ユーザー検索ベースなどが含まれます。

9. プロバイダ情報を保存します。

10. LDAPベース・ディレクトリが最初にくるようにプロバイダの順番を変更します。

11. 新しいプロバイダ名をクリックして構成します。

1. 「構成」タブをクリックします。

2. 「共通」タブをクリックします。

3. 図3-2に表示されているように、「制御フラグ」をSUFFICIENTに設定し、「保存」をクリックします。

図3-2 SUFFICIENT「制御フラグ」

4. 「プロバイダ固有」タブをクリックします。

5. アイデンティティ・ストアのLDAP構成情報を入力し、「保存」をクリックします。

12. 「プロバイダ」タブに戻ります。

13. DefaultAuthenticatorをクリックしてその構成を変更します。

14. 図3-3に表示されているように、「制御フラグ」をSUFFICIENTに設定し、「保存」をクリックします。

図3-3 WebLogic ServerコンソールのDefaultAuthenticatorのタブ

15. WebLogic Serverを再起動します。

- Oracle Entitlements Serverの高可用性の構成の詳細は、『Oracle Fusion Middleware高可用性ガイド』を参照してください。

- ユーザーの認証に関する詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』を参照してください。

注意:

Oracle Entitlements Serverはユーザーの認証に関わりません。これは通常WebLogic Serverのセキュリティ・レルム構成の一部として行われます。

- Oracle Entitlements Serverがポリシー・ストア、アイデンティティ・ストアおよびデータベースを使用して確立する接続の一方向SSLの構成の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』を参照してください。ブラウザを使用したOracle Entitlements Serverへのアクセスも、一方向SSLを使用して保護できます。これらの設定は、Oracle WebLogic Serverで実行されている他のアプリケーションの設定とほぼ同じです。

- ハードウェアとソフトウェアの要件、プラットフォーム、データベースおよびその他の情報の詳細は、システム要件と動作要件のドキュメントを参照してください。

- システム要件に関するドキュメントには、ハードウェア要件およびソフトウェア要件、ディスク領域とメモリーの最小要件、必要なシステム・ライブラリ、パッケージ、パッチなどの情報が記載されています。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html

- 動作保証のドキュメントには、サポートされているインストール・タイプ、プラットフォーム、オペレーティング・システム、データベース、JDKおよびサードパーティ製品が記載されています。
http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html

いずれのドキュメントもOracle Technology Network (OTN)から入手できます。

3.2 グラフィカル・インタフェースの理解

Oracle Authorization Policy ManagerはOracle Entitlements Serverのサブ・コンポーネントで、管理者向けのグラフィカル管理ツールです。これはポリシーおよび関連するポリシー・オブジェクトの管理用の、ブラウザ・ベースのインタフェースです。次の各項には、認可ポリシー・マネージャの管理コンソールについて理解するための情報が含まれています。

- 3.2.1項「Oracle Entitlements Server管理者の割当て」

- 3.2.2項「アイデンティティ・ストアの使用」

- 3.2.3項「ポリシー・ストアへのアクセス」

- 3.2.4項「Oracle Platform Security Servicesアプリケーション権限の表示」

3.2.1 Oracle Entitlements Server管理者の割当て

Oracle Entitlements Server管理コンソールへのログインやWebLogic Scripting Tool (WLST)などの管理コマンドライン・ツールの使用は、適切な権限を持ったユーザーにのみ許可されています。SystemAdminという名前のOracle Entitlements Serverのシステム・レベルの管理ロールがインストール中に作成され、WebLogic Server管理者ユーザー(weblogic)にマップされます。パスワードはインストール中に設定されます。SystemAdminには、追加の管理ロールを作成する権利と管理権限の他への委任を含む、拡張権限があります。

注意:

最初にOracle Entitlements Server管理コンソールにログインするときには、SystemAdminはインストール中に設定された資格証明を使用する必要があります。識別子とパスワードはアイデンティティ・ストアの管理ツールを使用して変更できます。

Oracle Entitlements Serverと環境を管理するために、異なるアクセス権を持つ別の管理ユーザーを作成できます。詳細は、11.6項「管理者ロールを使用したシステム管理者の管理」を参照してください。

3.2.2 アイデンティティ・ストアの使用

Oracle Entitlements Serverの管理者とユーザー・アイデンティティはアイデンティティ・ストア(通常はLDAPディレクトリ・サーバー)に保存されます。アイデンティティ・ストアに定義されたユーザーと外部ロールは読取り専用です。Oracle Entitlements Serverはそのデータを読取りおよび表示しますが、管理操作は実行できません。アイデンティティ・データの管理は、アイデンティティ・ストアのツールまたはOracle Identity Managerなどのアイデンティティ管理製品を使用して行われます。

注意:

インストール後、Oracle Entitlements Serverアイデンティティ・ストアはWebLogic Serverの組込みLDAPディレクトリに関連付けられます。サポートされているLDAPディレクトリを使用するためにOracle Entitlements Serverを再構成する手順については、3.1項「始める前に」を参照してください。

Oracle Entitlements Serverは、Oracle Platform Security Services (OPSS)アイデンティティ・ストア・サービスを使用して、複数のアイデンティティ・ストアを構成し、サポートすることができます。アイデンティティ・ストア・サービスを使用することにより、複数のアイデンティティ・タイプ(ユーザー、グループ、ロール)にアクセスおよび管理できます。アイデンティティ・ストアを拡張することにより、新しいアイデンティティ・タイプをサポートできます。アイデンティティ・ストア・サービスの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。Oracle Entitlements Serverに固有の詳細は、10.3項「Identity Directory Serviceプロファイルの構成」を参照してください。

3.2.3 ポリシー・ストアへのアクセス

セキュリティ・オブジェクトおよび定義されているポリシーの維持に使用するポリシー・ストアは、リレーショナル・データベースである必要があります。(Oracle Internet Directoryはポリシー・ストアとして使用できますが、機能に制限があります)。ハードウェア要件に関するリンクは、3.1項「始める前に」を参照してください。ポリシー・ストアの基本情報は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

3.2.4 Oracle Platform Security Servicesアプリケーション権限の表示

管理コンソールには、Oracle Entitlements Serverを使用して作成した拡張認可ポリシーと同様、Oracle Platform Security Services (OPSS)を使用して作成した、より単純なアプリケーション権限(アプリケーション・ポリシー)も表示されます。OPSSアプリケーション権限の表示では、参照、変更および削除のみが可能です。OPSSを使用して作成したアプリケーション権限は、プリンシパルとターゲットのみを使用して定義されます。図3-4は、いずれかの検索機能を使用してOPSSアプリケーション権限が表示されているOracle Entitlements Server画面のスクリーンショットです。

図3-4 OPSSアプリケーション権限表示画面

「名前」、「表示名」、「説明」の各フィールドは、Oracle Entitlements Serverを使用して作成した認可ポリシーの場合と異なり、表示されないことに注意してください。OPSSアプリケーション権限は、Oracle Entitlements Serverでは削除または変更のみが可能で、作成はできません。アプリケーション権限の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

3.3 管理コンソールへのアクセス

次の各項では、Authorization Policy Managerのグラフィカル・インタフェース(管理コンソールとも呼ばれる)について説明します。

- 3.3.1項「管理コンソールへのサイン・イン」

- 3.3.2項「管理コンソールからのサイン・アウト」

3.3.1 管理コンソールへのサイン・イン

次の手順に従い、認可ポリシー・マネージャ管理コンソールにサイン・インします。

1. ブラウザのアドレス・バーに認可ポリシー・マネージャ管理コンソールのURLを入力します。たとえば、次のように入力します。
https://hostname:port/apm/

これらの意味は、次のとおりです。

- httpsは、ユーザー・ページ・リクエストおよびWebサーバーから返されたページを暗号化および復号化できるように、Secure Socket Layer (SSL)を実装したHypertext Transfer Protocol (HTTP)を表します。

- hostnameは、Oracle Authorization Policy Manager管理コンソールをホストするコンピュータの完全修飾ドメイン名です。

- portは、認可ポリシー・マネージャ管理コンソール用に指定されたバインド・ポートです(これはWebLogic Server管理コンソール用のバインド・ポートと同じです)。

- /apm/はAuthorization Policy Managerアプリケーションのコンテキスト・ルートであり、ログイン・ページにリダイレクトされます。

2. システム管理者の資格証明を入力します。
デフォルトのシステム管理者の識別子はweblogicです。パスワードはインストール中に提供されたものと同じです。図3-5は「サインイン」ページのスクリーンショットです。

図3-5 管理コンソールの「サインイン」ページ

3. 「サインイン」をクリックします。

3.3.2 管理コンソールのサイン・アウト

次の手順に従い、認可ポリシー・マネージャ管理コンソールからサイン・アウトします。

1. 管理コンソールの右上隅にある「サインアウト」リンクをクリックします。
図3-6は「サインアウト」リンクのスクリーンショットです。

図3-6 管理コンソールの「サインアウト」リンク

2. ブラウザ・ウィンドウを閉じます。

3.4 管理コンソール内の移動

正常にログインされると、認可ポリシーマネージャの管理コンソールが表示されて、「認可管理」タブがアクティブになります。ナビゲーション・パネルが左側にあり、「ホーム」タブが右側に表示されます。ナビゲーション・パネルで選択されたオブジェクトは、右側の「ホーム」タブの横に、新しいタブとして開かれます。図3-7は管理ユーザーが正常にサイン・インした後の管理コンソールのスクリーンショットです。

図3-7 Oracle Entitlements Server管理コンソール

次のリストでは、図3-7に示されたトップ・レベル項目を説明しています。詳細は、該当するリンクを参照してください。

- 3.4.1項「主なタブの理解」

- 3.4.2項「ナビゲーション・パネルの使用」

- 3.4.3項「「ホーム」タブの使用」

- 3.4.4項「ヘルプへのアクセス」

3.4.1 主なタブについて

管理コンソールで使用される構成タブについては、次の各項を参照してください。各タブはナビゲーション・パネルとホーム領域から構成されます。

- 3.4.1.1項「「認可管理」タブ」

- 3.4.1.2項「「システム構成」タブ」

3.4.1.1 「認可管理」タブ

「認可管理」タブはポリシー・オブジェクトの検索および管理に使用します。このタブは管理コンソールに正常にログインしているときにアクティブになります。図3-8は「認可管理」タブのスクリーンショットです。

図3-8 「認可管理」タブ

「認可管理」では、左側がナビゲーション・パネルで、右側がホーム領域です。ナビゲーション・パネルで選択した項目に応じてホームの外観が変わります。詳細は、3.4.2項「ナビゲーション・パネルの使用」および3.4.3項「「ホーム」タブの使用」を参照してください。

3.4.1.2 「システム構成」タブ

「システム構成」タブはOracle Entitlements Serverデプロイメントの管理およびシステム・タイプ・オブジェクトの管理に使用します。図3-9は「システム構成」タブのスクリーンショットです。ナビゲーション・パネルで選択されたオブジェクトがホーム領域のタブを使用して表示されます。

図3-9 「システム構成」タブ

次のタスクが「システム構成」で実行されます。

- セキュリティ・モジュール定義の作成およびアプリケーションへのバインド

- システム管理者の管理(追加の管理者ロールの作成、ユーザーのシステム管理者ロールへの割当て、権限のシステム管理者ロールへの割当てなど)

- アイデンティティ・ストア・プロファイルの管理

詳細は、第10章「システム構成の管理」を参照してください。

3.4.2 ナビゲーション・パネルの使用

ナビゲーション・パネルを使用して、グローバルまたはアプリケーション情報ツリーを参照するか、簡易検索を実行することで、セキュリティ・オブジェクトを検索します。すべてのグローバルおよびアプリケーション・ポリシー・オブジェクトがナビゲーション可能なツリーで表示されます。ツリーを参照することも、定義した検索条件に基づき検索結果としてオブジェクトを表示させることもできます。図3-7は折りたたまれたノードを含むナビゲーション・パネルが表示されたスナップショットです。図3-10に、折りたたまれたノードと多くのポリシー・オブジェクトをビューに含むナビゲーション・パネルを表示しています。

図3-10 開かれたノードを含むナビゲーション・パネルの「参照」タブ

ナビゲーション・パネルには、上から下まで、次の要素が含まれます。

- 簡易検索でポリシー・オブジェクトを選択するためのプルダウン・リスト。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- 簡易検索の範囲を選択するためのプルダウン・リスト。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- 簡易検索の文字列を入力するためのテキスト・ボックス。入力した文字列は、ポリシー・オブジェクトの名前および表示名と比較されます。一致した文字列は、「検索結果」タブに表示されます。

- 「参照」タブには、展開および縮小が可能な次のノードが表示されます。

- 「グローバル」ノードには外部ロールやユーザーなどのグローバル・オブジェクトが収集されます。

- 「アプリケーション」ノードには、ログインしている管理者により管理されている1つまたは複数のアプリケーションが含まれます(ログインしているユーザーがアクセスを認可されているアプリケーションのみが表示されます)。表示されているいずれかのアプリケーションから、管理者はリソース・タイプ、資格、リソース、ポリシー、ロールなどのアプリケーション固有のポリシー・オブジェクトにアクセスできます。詳細は、第10章「システム構成の管理」を参照してください。

- 図3-11に示すように、「検索結果」タブには、最新の簡易検索の結果が表示されます。

- 選択したポリシー・オブジェクトでの操作を選択するための「アクション」および「ビュー」ドロップ・ダウン。

図3-11 ナビゲーション・パネルの「検索」タブ

ナビゲーション・パネルから、「アクション」ドロップダウン・リストに含まれる「新規」および「開く」オプションを表示するには、2つの方法があります。

- 目的のアプリケーションを特定し、ノードを開いて、目的のオブジェクトを選択します。「アクション」ドロップダウン・メニューをクリックし、「新規」または「開く」を選択します。

- 目的のアプリケーションを特定し、ノードを開き、目的のオブジェクトを右クリックして、「新規」または「開く」を選択します。

「新規」を選択して同じタイプの新しいオブジェクトを作成し、「開く」を選択してホーム領域の検索タブを表示します。ノードからオブジェクトをダブルクリックしても、ホーム領域に「検索」タブを開くことができます。

3.4.3 「ホーム」タブの使用

「ホーム」タブはナビゲーション・パネルの右側に表示され、最もよく使用されるポリシー・オブジェクトに対する「新規」画面および「検索」画面へのクイック・アクセス・リンクが含まれます。図3-12に示すように、管理コンソールの「ホーム」タブは次のセクションに分割されています。

- アプリケーション領域は、「ホーム」タブの上側の領域です。「アプリケーション名」ペインにはログイン・ユーザーが使用できるすべてのアプリケーションが表示されます。このペインの右側には、新しいポリシー・オブジェクト(資格、リソース、リソース・タイプ、アプリケーション・ロールおよび認可ポリシー)の作成や定義済のポリシー・オブジェクトの検索などの一般的な操作を実行する画面へのリンクがあります。

- グローバル・セクションは「ホーム」タブの右下の領域です。このセクションはすべてのアプリケーションで共有されるオブジェクトが対象で、外部ロール検索が含まれます。

- Entitlementsリソース・センター・セクションは「ホーム」タブの左下の領域です。最もよく使用される手順に関する情報へのリンクが含まれます。

図3-12 「ホーム」タブ

3.4.4 ヘルプへのアクセス

管理コンソールの使用中に情報を取得するには、右上隅にある「ヘルプ」リンクをクリックします(図3-6参照)。別のウィンドウが開きます。このウィンドウから、オンライン・ヘルプと、HTML形式のこのマニュアルの埋込みバージョンの両方にアクセスできます。ウィンドウが表示されたら、ドロップダウンのマニュアル・リストから、Oracle Entitlements Server管理コンソールのオンライン・ヘルプまたは『Oracle Entitlements Server管理者ガイド』のいずれかを選択します。ヘルプ・トピックはマニュアルの目次のリンクと同じように、埋込みマニュアルの対応する項へとリンクします。

3.5 Oracle Entitlements Server Basicからのアップグレード

Oracle Entitlements Serverは、使用制限を定義する契約により、他のOracle製品から切り離してライセンスすることができます。Oracle Entitlements Server Basicは、Oracle Platform Security Services (OPSS)内の組込み認可エンジンに置き換わるものであり、基本的なロールベースのアクセス制御、およびJava/JAASの権限に基づいた認可ポリシーの定義、実行および監査に使用されます。Basicライセンスは、Oracle Entitlements ServerおよびOracle Entitlements Serverセキュリティ・モジュールによって提供される制限された機能セットの使用を許可するものであり、このコンポーネントがライセンス・ドキュメントにリストされているOracle製品にのみ含まれ、そのようなOracle製品でのみ使用できます。詳細は、Oracle Fusion Middlewareのライセンスに関する情報を参照してください。

最も単純なシナリオでは、Oracle Entitlements Server Basicを含むライセンスされたOracle Fusion MiddlewareまたはFusion Applicationsテクノロジ以外はインストールする必要がありません。Oracle Entitlements Server Basicを含むOracle Fusion Middleware製品には次のものがあります。

- Oracle Entitlements Server認可エンジン(ポリシー決定ポイント)

- デフォルトのポリシー・ストア(製品環境ではサポート対象外)は、system-jazn.xmlファイルに基づいて構成されます。製品環境では、Oracleリレーショナル・データベース管理システムまたはOracle Internet Directoryのどちらかをベースにしてポリシー・ストアを構成する必要があります。

オプションでOracle Entitlements Server管理コンソール(Authorization Policy Manager)をインストールして、集中ポリシー管理を提供できます。

3.5.1 基本ポリシー認可から拡張ポリシー認可への変更

Oracle Fusion ApplicationsでAuthorization Policy Managerがインストールされている場合、Oracle Entitlements Server基本認可を使用できるように構成されます。基本認可は、ユーザー、グループおよびコード・ソースに権限が付与される権限ポリシー・モデルに基づきます。ユーザーおよびグループの場合、権限によってアクセスが許可されるユーザーまたはグループ・メンバーが決定されます。コード・ソースの場合は、これによって、コードが実行できるアクションが決定されます。拡張認可では、ロール・マッピング・ポリシーおよび階層型リソースを含む、よりきめの細かいポリシー・オブジェクトを使用できます。

次の手順を使用してAuthorization Policy Managerを再構成して、拡張認可を使用できるようにします。ここでは、WebLogic Serverがインストールされ、Fusion Middlewareホーム・ディレクトリが使用可能であることを前提としています。

1. Fusion Middlewareホーム・ディレクトリ$FMW_HOME/oracle_common/common/binに変更します。

2. wlst.shコマンドを使用してWebLogic Serverに接続します。

connect ('weblogic','weblogic1','t3://localhost:7101')

このコマンドは、ユーザー名(weblogic)、ユーザーに関連付けられているパスワード(weblogic1)および管理サーバーのT3接続URLを引数として使用します。この例では、ポート7101上でローカルに実行されます。

3. exportMetadataコマンドを使用して、Authorization Policy Manager構成ファイルをエクスポートします。

exportMetadata(application='oracle.security.apm', server='AdminServer',
toLocation='/tmp/repository/',
docs='/oracle/security/apm/config/apm-config.xml')

このコマンドにより、apm-config.xml構成ファイルが、管理サーバーがホストされているマシン上の/tmp/repositoryサブディレクトリにエクスポートされます。このコマンドでは次の引数を使用します。

- エクスポートされるドキュメントのアプリケーション所有者。この場合、デフォルト値はoracle.security.apmです。

- WebLogic Server管理サーバーの名前。

- apm-config.xmlのエクスポート先のディレクトリ。このディレクトリへのアクセス権を持っていることを確認してください。

- エクスポートされるドキュメント(この例ではoracle/security/apm/config/apm-config.xml)がエクスポートされます。ドキュメントがダウンロードされたら、管理サーバー・マシンの該当するファイル・パスへのアクセス権を持っていることを確認してください。

4. テキスト・エディタでapm-config.xml構成ファイルを開きます。
このファイルは、前の手順で指定した/tmp/repositoryディレクトリにあります。

5. このファイルのoracle.security.apm.oes.mode属性の値をbasicからadvancedに変更します。

6. 変更を保存して、ファイルを閉じます。

7. 変更したファイルをリポジトリにアップロードします。

importMetadata(application='oracle.security.apm', server='AdminServer',
fromLocation='/tmp/repository/',
docs='/oracle/security/apm/config/apm-config.xml')

このコマンドにより、apm-config.xml構成ファイルが、管理サーバーがホストされているマシンにインポートされます。このコマンドでは次の引数を使用します。

- インポートされるドキュメントのアプリケーション所有者。この場合、デフォルト値はoracle.security.apmです。

- WebLogic Server管理サーバーの名前。

- apm-config.xmlのインポート元のディレクトリ。

- インポートされるドキュメント(この例ではapm-config.xml)がoracle/security/apm/config/ディレクトリにインポートされます。

8. exitコマンドを発行します。

exit()

3.6 Oracle Entitlements Serverの例へのアクセス

http://www.oracle.com/technetwork/indexes/samplecode/index.htmlは、開発者およびOracle Entitlements Serverの管理例にアクセスできるOracle Technology Network上のリポジトリです。

4 ポリシーとポリシー・オブジェクトの管理

Oracle Entitlements Server管理コンソールを使用して、認可ポリシーとロール・マッピング・ポリシー、およびそれらの作成元のセキュリティ・オブジェクトを管理します。この章の内容は次のとおりです。

- 4.1項「ポリシーとポリシー・オブジェクトの管理の概要」

- 4.2項「認可ポリシーとそのコンポーネントの定義」

- 4.3項「認可ポリシーへの詳細な要素の追加」

- 4.4項「認可ポリシーの実装手順」

- 4.5項「アプリケーションでのポリシー・オブジェクトの管理」

- 4.6項「条件ビルダーの使用」

4.1 ポリシーとポリシー・オブジェクトの管理の概要

Oracle Entitlements Serverでは、管理者がすべてのポリシー・オブジェクトの作成、読取り、更新および削除の操作を実行できます。これは、次のいずれかの方法で実行できます。

- 管理コンソールの使用(このマニュアルの説明に従って実行)

- 管理APIの使用(『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』の説明に従って実行)

- コマンドラインでのWebLogic Scripting Toolの使用(『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』の説明に従って実行)

管理コンソールで実行される認可管理タスクでは通常、管理者がオブジェクトを特定(参照または検索による)して選択し、使用可能ないずれかの操作を選択する必要があります。オブジェクトは、ナビゲーション・パネルに表示されている主なグループに編成されます。

- アプリケーション・オブジェクトにはロール・マッピング・ポリシーと認可ポリシーの作成に使用されるオブジェクト(リソース、アプリケーション・ロールなど)が含まれます。これらは、それが定義されているアプリケーションにのみ適用され、そのアプリケーション内の認可ポリシーにのみ使用できます。ナビゲーション・パネルの「アプリケーション」ノードは、その下にすべての構成済のアプリケーション(およびそれぞれのオブジェクト)が編成されたブランチです。この章では、アプリケーションとその子オブジェクトの管理について説明します。

- グローバル・オブジェクトにはユーザーと外部ロールが含まれます。これらのオブジェクトはシステム全体にわたりすべての構成されたアプリケーションに適用できます。ナビゲーション・パネルの「グローバル」ノードは、その下にすべてのシステム全体のオブジェクトが編成されたブランチです。

注意:

Oracle Entitlements Server内では、外部ロール(およびユーザー)は読取り専用であり、Oracle Identity Managerなどのツールで管理されます。詳細は、『Oracle Fusion Middleware Oracle Identity Managerシステム管理者ガイド』を参照してください。

管理コンソールで実行されるシステム構成タスクには通常、セキュリティ・モジュール・プロファイルの定義とバインド、システム管理者構成、およびアイデンティティ・ストア・プロファイルの定義とバインドが含まれます。これらのオブジェクトについては第10章「システム構成の管理」で説明します。

注意:

Oracle Entitlements Serverでは、ポリシーのユーザー、外部ロールおよびアプリケーション・ロールへのマッピングがサポートされます。ただし、個別のユーザーおよび外部ロールに付与することによって認可を管理することは、数が増えたときに管理できなくなる可能性があるので、ポリシーをアプリケーション・ロールにマッピングすることをお薦めします。また、アイデンティティ・ストアが変更される場合(たとえば、開発、テストおよび本番環境間での移動により新しいLDAPサーバーが生じる場合)、ポリシー定義への変更は必要ありません。必要な操作は、ターゲット環境で利用可能なユーザーおよび外部ロールにアプリケーション・ロールを再マッピングすることのみです。

デフォルトでは、明示的にアクセス操作の権限を付与する認可ポリシーが作成および配置されるまで、リソースへのアクセス操作はすべて拒否されます。認可ポリシーによりリソース上の資格がロールに付与される場合、ユーザーはそれに静的に割り当てられるか、またはユーザーまたはグループを定義済のロールに割り当てるロール・マッピング・ポリシーを作成および配置する必要があります。認可ポリシーが前に付与された資格を拒否する場合、それは付与よりも優先されます。明示的なDENY認可ポリシーは無効にできません。DENYポリシーの実用的な使用法は、資格を明示的に拒否して、ユーザーまたはグループが特定のリソースへのアクセス権を取得できないようにすることです。

4.2 認可ポリシーとそのコンポーネントの定義

ポリシーの定義では、オブジェクトが特定の順番で作成されることが必要です。たとえば、リソースはリソース・タイプの定義の後にのみ作成できます。ポリシーは次に説明する順番で構成できます。

1. アプリケーションを作成します。
ナビゲーション・パネルで、アプリケーションは特定のリソースのコンポーネントを保護するポリシーおよび関連情報用の全体的なコンテナとして作成される必要があります。必要に応じて任意の数のアプリケーションを作成することができますが、保護するアプリケーションごとに1つ作成することをお薦めします。詳細は、4.5.1項「アプリケーションの管理」を参照してください。

2. リソース・タイプを作成します。
リソース・タイプは、1つ以上のリソース属性と、特定の種類のリソースで実行できるすべての有効なアクションの定義を指定します。

注意:

属性をリソース・タイプに追加するには、4.5.9項「属性および関数を拡張として管理」で説明する手順に従って、あらかじめ属性を定義する必要があります。

このアクションは標準のアクション(URLへのGETおよびPOST)の場合もビジネス・オブジェクトでのカスタム・アクション(銀行口座間の振替)の場合もあります。次のリソース・タイプとその有効なアクションを考えてみます。

- ファイルは、そのタイプに応じて、読取り、書込み、コピー、編集および削除の各アクションをサポートできます。ファイルにclearanceリソース属性を関連付けて、誰がファイルを参照できるのかを定義できます。これは、アクセスするためにサブジェクトに必要なセキュリティ・レベルを定義することによって実現できます。その値には、unclassified、restricted、confidentialまたはtopSecretが含まれます。たとえば、clearance属性の値がtopSecretである場合、条件if securityLevel = topSecretを追加することによってアクセスを付与する認可ポリシーを作成できます。

- 銀行の当座預金口座アプリケーションでは、預入れ、引出し、残高確認、履歴の確認、普通口座への振替、または普通口座からの振替がサポートされます。

リソース・インスタンスがリソース・タイプから作成されます。リソース・タイプにより定義されたアクションは、リソース・タイプから作成された保護リソース・インスタンスにアクセスするときに、権限付与または拒否されます。

注意:

リソース・インスタンスはポリシー・ドメインで定義され、リソース・タイプを参照します。詳細は、4.5.3項「リソースの管理」を参照してください。

詳細は、4.5.2項「リソース・タイプの管理」を参照してください。

3. リソース・タイプからリソースをインスタンス化します。
特定の保護ターゲット(リソース)はリソース・タイプからインスタンス化されます。リソースは保護されたターゲット(アプリケーションなど)を表し、リソース・カタログのポリシー・ドメインの下に作成されます。

注意:

ポリシー・ドメインはオプションのオブジェクトで管理と構成を委任する目的で作成されます。ポリシー・ドメインを指定しない場合、リソース・インスタンスはデフォルトのポリシー・ドメインの下に作成されます。第11章「管理ロールの委任」を参照してください。

保護されたリソースごとにリソース・インスタンスを作成する必要はありません。認可ポリシーでは、リソース名式も使用できます。ただし、リソース属性を作成する場合は、リソース・インスタンスが必要です。詳細は、4.5.3項「リソースの管理」を参照してください。

4. 認可ポリシーを作成します。
これには、結果(GRANTまたはDENY)の指定、ユーザー、グループまたはロールのポリシー・プリンシパルとしての追加、リソースおよびアクションのポリシー・ターゲットとしての追加が伴います。オプションで、責任の追加や条件の設定ができます。詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

4.3 認可ポリシーへの詳細な要素の追加

4.2項「認可ポリシーとそのコンポーネントの定義」には認可ポリシーの作成に必要な最小限のコンポーネントが記載されています。次の詳細な要素を単純なポリシーに追加できます。

- 資格
資格により、インスタンス化されたリソースとそこで実行できる適用可能なアクションが関連付けられます。リソース用のアクションのセットは、対応するリソース・タイプで定義済の有効なアクションのセットのサブセットです。詳細は、4.5.4項「資格の管理」を参照してください。

- アプリケーション・ロール
アプリケーション・ロールは、アイデンティティ・ストア内のユーザー、グループまたは外部ロール、またはポリシー・ストア内の別のアプリケーション・ロールに、静的または動的に割り当てることができます。1つのターゲット・アプリケーションが複数の異なるアプリケーション・ロールを持ち、よりきめの細かいアクセスのために、それぞれのロールに異なる権限のセットを割り当てることが可能です。詳細は、4.5.6項「ロール・カタログのアプリケーション・ロールの管理」を参照してください。

- ロール・マッピング・ポリシー
アプリケーション・ロールのメンバーシップは、ロール・マッピング・ポリシーを使用して動的に付与できます。アプリケーション・ロールはロール・マッピング・ポリシーのプリンシパルとして参照され、ユーザーに定義済のリソースへのアクセス権を付与できますが、ロール・マッピング・ポリシーは認可が決定される前に解決される必要があります。ロール・マッピング・ポリシーを解決することは、アクセスをリクエストしているユーザーにこのアプリケーション・ロールを割り当てることができますかという質問に回答することです。ロール・マッピング・ポリシーはロールのリストを返します。認可ポリシーでは、ロール・マッピング・ポリシーから得られた結果(プリンシパルが付与されたロール)は使用できますが、ロール・マッピング・ポリシー自体は使用できません。アクセスのリクエストを実行時に評価する場合、次のことが行われます。

1. アクセスをリクエストしているサブジェクトに基づいて、静的ロール・メンバーシップを取得して適用可能なロール・マッピング・ポリシーを評価することにより、アプリケーション・ロールのリストが決定されます。

2. サブジェクトおよび決定されたアプリケーション・ロールのリストに基づき、認可ポリシーのリストが評価されて、権限受領者、ターゲットの一致および制約の評価に基づいて適用できるポリシーを見つけます。リソースで許可されるアクションは認可ポリシーで定義されます。

3. 最終的な認可決定は、アルゴリズムを組み合せた拒否のオーバーライドに基づきます。

詳細は、4.5.7項「ロール・マッピング・ポリシーの管理」を参照してください。

- ポリシーに追加の不測の事態を設定する方法で、ポリシーに条件を追加できます。認可ポリシーまたはロール・マッピング・ポリシーのどちらにも適用できます。条件は式の形で作成され、trueかfalseかが決定されて、次のいずれかの結果になります。

- 式の結果がtrueの場合、ポリシーの条件は満たされ、PolicyRuleEntryに定義された結果が適用されます。

- 式の結果がtrueでない場合、ポリシーは適用されません。

ポリシーがtrueと評価されるには、条件がtrueである必要があります。条件には、なんらかのユーザー、リソース、動的属性またはシステム属性の値をテストするブール式の複雑な組合せ、または複雑なビジネス・ロジックを評価するカスタムのJava評価関数を使用できます。詳細は、4.6項「条件ビルダーの使用」を参照してください。

- 責任は認可のポリシー実行フェーズ中に評価される追加の情報を指定します。責任は対応するポリシーの結果(GRANTまたはDENY)とともに返されます。この情報がポリシー実行中に考慮されるかどうかは、アプリケーションにより定義された設定に基づきます。たとえば、アクセスのリクエストが拒否された理由を責任として返すことができます。異なるタイプの責任にはメッセージの送信を含めることができます。たとえば、特定の金額が当座預金口座から引き出される場合に、口座の名義人の登録携帯電話にテキスト・メッセージを送信します。詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

4.4 認可ポリシーの実装手順

2.4項「ポリシー・ユースケースの実装」では、ポリシーの作成についてのいくつかのユースケースが説明されています。この項には、管理コンソールを使用して認可ポリシーの作成手順(およびそれを構成する元のポリシー・オブジェクト)が記載されています。この手順では、アプリケーションを保護するためにOracle Entitlements ServerおよびJava Security Moduleがインストール済であると想定しています。

1. アプリケーションを作成します。
アプリケーション名はアプリケーション・コードで使用されるものと一致している必要があります。たとえば、HelloOESworldアプリケーションにマップされるHelloOESworldアプリケーション・オブジェクトを作成します。4.5.1.1項「アプリケーションの作成」を参照してください。

2. リソース・タイプを作成します。
リソース・タイプ名はアプリケーション・コードで使用されるものと一致している必要があります。たとえば、保護するファイルの収集に使用するために、Filesリソース・タイプ・オブジェクトを作成します。(リソース・タイプのリソース属性を作成することもできます。たとえば、値としてhtml、image、jspまたはpdfを含むfiletype属性はファイル・タイプを定義します。)writeおよびreadアクションをリソース・タイプと関連付けます。4.5.2.1項「リソース・タイプの作成」を参照してください。

3. リソースを作成します。
リソース名はアプリケーション・コードで使用されるものと一致している必要があります。さらに、リソースはリソース・タイプから作成されます。たとえば、FinanceFileリソースをFilesリソース・タイプから作成します。4.5.3.1項「リソースの作成」を参照してください。

4. 認可ポリシーを作成します。
HelloOESworldアプリケーションで、認可ポリシーを作成します。1つまたは複数のプリンシパル(ロールまたはユーザー)、1つまたは複数のターゲット(リソースまたは資格)を追加し、ターゲットのアクションを確認します。保存する前にオプションの条件または責任を追加することもできます。4.5.5.1項「認可ポリシーの作成」を参照してください。

5. セキュリティ・モジュール定義を作成し、アプリケーションにバインドします。
この手順では、バインド後、この認可ポリシーの分散先のセキュリティ・モジュールが定義されます。10.2項「セキュリティ・モジュール定義の構成」を参照してください。

6. 認可ポリシーをセキュリティ・モジュールに配布します。
第6章「ポリシー配布の管理」を参照してください。

4.5 アプリケーションのポリシー・オブジェクトの管理

次の各項では、アプリケーションに特有なポリシー・オブジェクトを管理する方法について説明します。

- 4.5.1項「アプリケーションの管理」

- 4.5.2項「リソース・タイプの管理」

- 4.5.3項「リソースの管理」

- 4.5.4項「資格の管理」

- 4.5.5項「認可ポリシーの管理」

- 4.5.6項「ロール・カタログでのアプリケーション・ロールの管理」

- 4.5.7項「ロール・マッピング・ポリシーの管理」

- 4.5.8項「ロール・カテゴリの管理」

- 4.5.9項「属性および関数を拡張として管理」

4.5.1 アプリケーションの管理

アプリケーションは特定のアプリケーションのコンポーネントを保護するポリシーおよび関連アーティファクト用の全体的なコンテナとして作成されます。これらのアーティファクトには、ロール、リソース、属性および関数がありますが、これに限定されません。必要に応じて任意の数のアプリケーション・インスタンスを作成することができますが、保護するアプリケーションごとに1つ作成することをお薦めします。次の各項では、アプリケーション・インスタンスでの管理操作について説明します。

- 4.5.1.1項「アプリケーションの作成」

- 4.5.1.2項「アプリケーションの変更」

- 4.5.1.3項「アプリケーションの削除」

4.5.1.1 アプリケーションの作成

アプリケーションを作成するには、次のようにします。

1. ナビゲーション・パネルの「アプリケーション」を右クリックして、メニューから「新規」を選択します。

注意:

または、ホーム領域の「検索」および「作成」の下の「アプリケーションの作成」をクリックします。

ホーム領域にいくつかのタブのある無題ページが表示されます。「一般」タブがアクティブです。委任管理者だけを構成して、アプリケーションが作成された後でポリシー配布の詳細を構成することができます。詳細は、4.5.1.2項「アプリケーションの変更」を参照してください。

2. 作成しているアプリケーションについての次の詳細を「一般」タブで指定します。

- 表示名: 「表示名」はオプションで、大文字と小文字が区別されます。管理コンソールに表示され、検索パラメータとして使用されることがあるため、意味のある値を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。アプリケーション・コードで使用されるものと一致している必要があります。

- 説明: オプションですが、アプリケーションに関する有用な情報を入力することをお薦めします。

3. 「保存」メニューから次のいずれかを選択します。

- 「保存」は、構成を保存し、タブの名前をアプリケーションの「表示名」に指定した値に変更し、「委任管理者」タブと「ポリシー配布」タブをアクティブにします。

- 「保存して閉じる」は、構成を保存してタブを閉じます。

- 「保存して別のものを作成」は、ポリシー・ストアに構成を保存し、ナビゲーション・パネルの情報ツリーを更新し、別のアプリケーションを作成できるように無題の領域を開いたままにします。

4.5.1.2 アプリケーションの変更

アプリケーションを変更するには、次のようにします。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 変更するアプリケーションの名前を選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
または、アプリケーション名をダブルクリックします。「アプリケーション」ページが表示され、「一般」タブ、委任管理者タブ、ポリシー配布タブがすべてアクティブになります。

4. 変更または構成するタブを選択し、パラメータの詳細については適切な項を参照します。

- 一般: 4.5.1.1項「アプリケーションの作成」

- 委任管理者: 第11章「管理者ロールの委任」

- ポリシー配布: 第6章「ポリシー配布の管理」

5. 必要に応じて、適用または保存します。

4.5.1.3 アプリケーションの削除

アプリケーション・リソース・インスタンスを削除するには、次のようにします。

1. 拡張検索を使用して削除するアプリケーションを検索します(5.3.2項「アプリケーションの検索」に記載されています)。
アプリケーションの検索ページが表示されます。

2. 問合せパラメータを入力し、「検索」をクリックします。
結果が表示されます。

3. 結果からアプリケーション名を選択し、「削除」をクリックします。

4. 次のいずれかの方法を選択して、アプリケーションを検索します。
削除の警告が表示されます。

5. 「削除」をクリックします。
アプリケーションが削除されます。または、ナビゲーション・パネルで「アプリケーション」情報ツリーを開いて、削除するアプリケーションの名前をダブルクリックすることもできます。アプリケーションのタブが表示されたら、右上隅の「削除」をクリックします。

4.5.2 リソース・タイプの管理

リソース・タイプでは、特定の種類の保護リソースの特性の全範囲を指定します。これには、1つまたは複数のリソース属性と、特定の種類のリソースで実行できるすべての有効なアクションの定義が含まれます。アクションはリソースで実行できるビジネス・プロセスでのアクティビティまたはタスクを表します。アクションは標準(URLへのGETおよびPOST)の場合も特定のビジネス・オブジェクトでのカスタム(銀行口座間の振替)の場合もあります。特定のターゲット用のリソース・インスタンスはりソース・タイプから作成されます。次の各項では、リソース・タイプでの管理操作について説明します。

- 4.5.2.1項「リソース・タイプの作成」

- 4.5.2.2項「リソース・タイプの変更」

- 4.5.2.3項「リソース・タイプの削除」

4.5.2.1 リソース・タイプの作成

リソース・タイプを作成するには、次のようにします。

1. 次のいずれかの方法を選択して、リソース・タイプを作成するページを表示します。

- ナビゲーション・パネルで情報ツリーを展開し、リソース・タイプを作成する特定のアプリケーションの下の「リソース・タイプ」を右クリックし、メニューから選択します。

- ホーム領域で、その下にリソース・タイプを作成するアプリケーション名を選択し、「リソースのタイプ」の下の「新規」をクリックします。

ホーム領域に無題ページが表示されます。または、簡易検索または「拡張検索」の結果ページで「新規」をクリックすることもできます。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

2. リソース・タイプに対して次の情報を入力します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。管理コンソールに表示され、検索パラメータとして使用されることがあるため、意味のある値を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。

- リソース・ファインダ: (オプション)oracle.security.jps.service.policystore.entitymanager.ResourceFinderインタフェースを実装するクラスです。これにより、リソースは使用されるポリシー・ストアの外から管理できます。(将来使用するために予約済。)

- 説明: オプションですが、有用な情報を入力することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

3. リソース・タイプで許可されるアクションを「アクション」セクションに追加します。

1. 「新規」をクリックして、「新規アクション」ダイアログを表示します。

2. アクションの名前を入力します。
入力した文字列はアプリケーションが認可を要求するアクションと一致する必要があります。権限クラスを追加した場合、アクションはそれに対して意味があるものである必要があります。

3. 「保存」をクリックします。

「アクション」リストは新しいアクションで更新されます。

4. 「既存の属性の検索」ダイアログを使用して、作成するリソース・タイプに属性を追加します。

1. 「属性」セクションで、「追加」をクリックし、既存の属性の検索ダイアログを表示します。
属性が表示されるようにするには、あらかじめ属性を定義する必要があります。4.5.9項「属性および関数を拡張として管理」を参照してください。

2. リストから属性「タイプ」を選択します。

3. (オプション)一致させる文字列を「検索」テキスト・ボックスに入力します。

4. 「検索」テキスト・ボックスの横の矢印アイコンをクリックして検索を開始します。

5. 追加する属性を選択し、「追加」をクリックします。
リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

これらの属性はリソースのインスタンス化で使用されます。4.5.3.1項「リソースの作成」を参照してください。

5. 残りのフィールドを構成します。
作成しているリソース・タイプにより選択内容は変わります。

- リソース階層のサポート: 「はい」または「いいえ」を選択して、リソース・タイプを階層として設定します。これは、リソース・タイプがリソースのインスタンス化に使用されるときに次のことを意味します。

- 階層型リソース・タイプから作成されたリソースに適用されるポリシーは、その子であるリソースにも適用できます。

- 階層型リソース・タイプから作成されたリソースに定義された属性は、その子であるリソースに継承されます。

- リソース名のデリミタ: リソース階層のサポートが有効な場合にのみ有効です。デフォルトのデリミタはスラッシュ(/)です。

- 評価ロジック: リソース・タイプの評価ロジックには、デフォルトの一致アルゴリズムまたは権限クラスのどちらかを使用できます。ドロップダウン・メニューから「デフォルト」または「権限クラス」を選択します。

- 権限クラス: リソース・タイプの評価ロジックが「権限クラス」として定義されている場合、権限クラス名を大/小文字を区別して指定します。権限ベースのポリシーの認可決定は、checkPermissionコールを使用してリクエストされます。

- アクション名のデリミタ: 「リソース・タイプ」が権限を表す場合に、指定した文字を使用してリスト内のアクションを区切ります。

- すべてのアクションのキーワード: ポリシーのターゲットにアクションとして定義されたキーワードが含まれる場合、そのポリシーは認可リクエストとともに渡されるアクションと一致します。たとえば、このパラメータがANYに設定されており、次のポリシーを作成するとします。

GRANT user "Michael" action:"ANY" on resource:"Resource1

「MichaelはResource1に'書込み'を実行できますか」や「MichaelはResource1で'送金'を実行できますか」のような認可リクエストの決定はALLOWを返します。このパラメータを使用すると、そのリソース・タイプに有効なアクションに適用できる1つの認可ポリシーを作成できます。

6. 「保存」メニューから次のいずれかを選択します。

- 「保存」は、構成を保存し、タブの名前をリソース・タイプの「表示名」に指定した値に変更します。

- 「保存して閉じる」は、構成を保存してタブを閉じます。

- 「保存して別のものを作成」は、ポリシー・ストアに構成を保存し、ナビゲーション・パネルの情報ツリーを更新し、別のリソース・タイプを作成できるように無題の領域を開いたままにします。

4.5.2.2 リソース・タイプの変更

リソース・タイプを変更するには、次のようにします。

1. 目的のリソース・タイプを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下の「リソース・タイプ」ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.3項「リソース・タイプの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用してリソース・タイプを検索し、「検索結果」タブでリソース・タイプ名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にリソース・タイプが作成されたアプリケーション名を選択し、「リソースのタイプ」の下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.3項「リソース・タイプの検索」を参照してください。

正しいリソース・タイプ名が表示されたら、それを選択して「開く」をクリックし、詳細を表示します。

2. 必要に応じて変更します。

3. 「適用」をクリックします。

4.5.2.3 リソース・タイプの削除

リソース・タイプを削除するには、次のようにします。

1. 目的のリソース・タイプを削除するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下の「リソース・タイプ」ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。検索結果から適切なリソース・タイプを選択し、「削除」をクリックします。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して、リソース・タイプを検索します。検索結果から該当するリソース・タイプを見つけて、ダブルクリックします。「ホーム」領域でリソース・タイプ・プロファイルが開いたら、「削除」をクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

削除の警告が表示されます。

2. 「削除」をクリックします。
リソース・タイプが削除されます。

4.5.3 リソースの管理

リソースは、保護アプリケーション内で特定の保護されたターゲットを表します。各リソースは定義済のリソース・タイプに属し、コンテナ(URL、EJB、JSP)により管理されるソフトウェア・コンポーネント、またはアプリケーション内のビジネス・オブジェクト(レポート、取引、収益のグラフ)を表すことができます。

注意:

リソースは階層型(その中で子リソースは親リソースから属性を継承)の場合も非階層型の場合もあります。階層型に編成されている(ルートから下がる)場合、親リソースに新しい属性を追加するか、または継承される既存の属性を上書きすることができます。

次の各項では、リソースでの管理操作について説明します。

- 4.5.3.1項「リソースの作成」

- 4.5.3.2項「リソースの変更」

- 4.5.3.3項「リソースの削除」

4.5.3.1 リソースの作成

リソースを作成するには、次のようにします。

1. 次のいずれかの方法を選択して、リソースを作成するページを表示します。

- ナビゲーション・パネルを使用して、適切な「アプリケーション」ノードの適用可能な「ポリシー・ドメイン」ノードを展開して、「リソース・カタログ」に移動します。「リソース・カタログ」ノードの「リソース」を右クリックし、メニューから「新規」を選択します。

- ホーム領域で、その下にリソース・インスタンスが作成されるアプリケーション名を選択し、「リソース」の下の「新規」をクリックします。

注意:

このオプションでは、アプリケーションのデフォルトのポリシー・ドメインにリソースを作成します。

ホーム領域に無題ページが表示されます。または、簡易検索または「拡張検索」の結果ページで「新規」をクリックすることもできます。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

2. 次の情報を入力します。

- リソース・タイプ: リストからオプションを選択します。ここでインスタンス属性および上書き表に表示される内容を定義します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字が区別されます。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

3. このリソースの属性を、インスタンス属性および上書きダイアログに表示される内容に追加または削除します。
上書きダイアログは階層型リソースの場合にのみ表示されます。

4. リストから属性を選択し([Ctrl]キーを押しながらクリックすると、リストから複数の項目を選択できます)、「追加」をクリックします。

5. 「保存」メニューから次のいずれかを選択します。

- 「保存」は、構成を保存し、タブの名前をリソースの「表示名」に指定した値に変更します。

- 「保存して閉じる」は、構成を保存してタブを閉じます。

- 「保存して別のものを作成」は、ポリシー・ストアに構成を保存し、ナビゲーション・パネルの情報ツリーを更新し、別のリソースを作成できるように無題の領域を開いたままにします。

4.5.3.2 リソースの変更

リソースを変更するには、次のようにします。

1. 目的のリソースを表示するには、次の方法から選択します。

- ナビゲーション・パネルを使用して、適切な「アプリケーション」ノードの適用可能な「ポリシー・ドメイン」ノードを展開し、「リソース・カタログ」に移動してダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.6項「リソースの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用してリソースを検索し、「検索結果」タブでリソース名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にリソース・タイプが作成されたアプリケーション名を選択し、「リソース」の下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。この検索ダイアログではデフォルトのポリシー・ドメインにのみ問合せます。ホーム領域での検索の詳細は、5.3.6項「リソースの検索」を参照してください。

正しいリソース名が表示されたら、それを選択して「開く」をクリックし、詳細を表示します。

2. 必要に応じてリソースを変更します。

3. 「適用」をクリックします。

4.5.3.3 リソースの削除

リソースを削除するには、次のようにします。

1. 目的のリソースを削除するには、次の方法から選択します。

- ナビゲーション・パネルを使用して、適切な「アプリケーション」ノードの適用可能な「ポリシー・ドメイン」ノードを展開し、「リソース・カタログ」に移動してダブルクリックします。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。検索結果から適切なリソースを選択し、「削除」をクリックします。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して、リソースを検索します。検索結果から該当するリソース名を見つけて、ダブルクリックします。「ホーム」領域でリソース・タイプ・プロファイルが開いたら、「削除」をクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にリソースが作成されたアプリケーション名を選択し、「リソース」の下の「検索」をクリックしますホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。(この検索ではデフォルトのポリシー・ドメインにのみ問合せます)。検索結果から適切なリソースを選択し、「削除」をクリックします。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

削除の警告が表示されます。

2. 「削除」をクリックします。
リソースが削除されます。階層型のリソース・タイプの場合、リソースの子リソースも削除されます。

4.5.4 資格の管理

リソースのインスタンス化後、そこで資格により実行できるアクションを定義します。アクションは、リソースの親リソース・タイプで定義された有効なアクションのセットを使用して定義されます。次の各項では、資格での管理操作について説明します。

- 4.5.4.1項「資格の作成」

- 4.5.4.2項「資格の変更」

- 4.5.4.3項「資格の削除」

注意:

複数のポリシーで同じリソースとアクションのペアのリストを使用する予定がある場合に、資格を作成することがあります。そうでなければ、認可ポリシーを作成するときに、リソースとアクションのペアそのものをターゲットとして直接指定することができます。詳細は、4.5.5項「認可ポリシーの管理」を参照してください。

4.5.4.1 資格の作成

資格を作成するには、次のようにします。

1. 次のいずれかの方法を選択して、資格を作成するページを表示します。

- ナビゲーション・パネルを使用して、適切な「アプリケーション」ノードの適用可能な「ポリシー・ドメイン」ノードを展開して、「リソース・カタログ」に移動します。「リソース・カタログ」ノードの「資格」を右クリックし、メニューから「新規」を選択します。

- ホーム領域で、その下に資格を作成するアプリケーション名を選択し、「資格」から「新規」をクリックします

ホーム領域に無題ページが表示されます。

2. 次の情報を入力します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 資格名: 名前は必須で、大文字と小文字は区別されません。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

3. 次のいずれかの方法を選択して、資格にリソースを追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、リソース・インスタンスで検索を実行することで、アプリケーションの使用可能なリソースを一覧表示します。リソースは資格が作成されているのと同じポリシー・ドメインで検索される必要があります。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. リソースを「検索結果」タブから「リソース」というラベルの付いた領域にドラッグ・アンド・ドロップします。

- 「ターゲットの追加」ポップ・アップ検索

1. 「ターゲット」セクションで「追加」をクリックします。
「ターゲットの追加」ダイアログが表示されます。これにより現在のポリシー・ドメインで検索されます。

2. 文字列を入力することで、使用可能なターゲットを検索します。
問合せに一致するリソースが「検索結果」に表示されます。検索文字列が入力されないと、指定したタイプのすべてのオブジェクトのリストが返されます。

3. 選択して、「選択済の追加」をクリックします。
ターゲットが「選択されたターゲット」に追加されます。リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

注意:

または、「リソース」タブの下のリソース式リンクをクリックし、「リソース・タイプ」を選択して、文字列式を入力し、「ターゲットに追加」をクリックします。これは定義済の条件を使用して、実行時に動的にターゲットを検索します。管理者権限のコンテキスト内で、文字列式を含む、選択したリソース・タイプに属するすべてのリソースが返されます。

4. 「ターゲットの追加」をクリックします。

4. 次のように、リソースにアクションを追加します。

1. リソース・リストから追加されたリソースを選択し、「リソースの詳細」セクションにリソースの詳細を表示します。

2. 選択した行を展開し、アクションの範囲を表示します。
この領域では、選択したリソースのタイプに対して許可されているアクションのみが選択可能になります。

3. 「アクション」セクションでそのリソースに対する目的のアクションを確認します。

4. 作成している資格に追加された各リソースに対し、この手順を繰り返します。

5. 「保存」メニューから次のいずれかを選択します。

- 「保存」は、構成を保存し、タブの名前を権限の「表示名」に指定した値に変更します。

- 「保存して閉じる」は、構成を保存してタブを閉じます。

- 「保存して別のものを作成」は、ポリシー・ストアに構成を保存し、ナビゲーション・パネルの情報ツリーを更新し、別の権限を作成できるように無題の領域を開いたままにします。

4.5.4.2 資格の変更

資格を変更するには、次のようにします。

1. 目的の資格を表示するには、次の方法から選択します。

- ナビゲーション・パネルを使用して、適切な「アプリケーション」ノードの適用可能な「ポリシー・ドメイン」ノードを展開し、「リソース・カタログ」に移動してダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.7項「資格の検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して資格を検索し、「検索結果」タブで資格名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下に資格が作成されたアプリケーション名を選択し、「資格」の下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.7項「資格の検索」を参照してください。

正しい資格名が表示されたら、それを選択して「開く」をクリックし、詳細を表示します。

2. 必要に応じて資格を変更します。

3. 「適用」をクリックします。

4.5.4.3 資格の削除

権限を削除するには、次のようにします。

1. 目的の資格を削除するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションのリソース・カタログの下の「資格」ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。検索結果から該当する権限を選択し、「削除」をクリックします。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して資格を検索し、「検索結果」タブで資格名をダブルクリックします。検索結果から該当する権限を選択し、「削除」をクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下に資格が作成されたアプリケーション名を選択し、「資格」の下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。検索結果から該当する権限を選択し、「削除」をクリックします。(この場合、アプリケーションのデフォルトのポリシー・ドメイン内でのみ、検索が行われます。)ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

削除の警告が表示されます。

2. 「削除」をクリックします。
資格が削除されます。

4.5.5 認可ポリシーの管理

認可ポリシーは、保護されたリソースのアクセス権を定義するメカニズムです。ユーザー、アプリケーション・ロールまたは外部ロールはポリシーの権限を付与されます。認可ポリシーには次のものが含まれる必要があります。

- 少なくとも1つのプリンシパル。これはユーザー、外部ロールまたはアプリケーション・ロールである場合があります。コード・ソースはプリンシパルになることはできません。

- 少なくとも1つのターゲット。これはリソースおよびアクション・アソシエーション(ポリシー内に作成)または資格(ポリシー外で作成し追加)の場合がありますが、両方ではありません。定義済の結果はPERMITまたはDENYです。

注意:

資格に基づくポリシーは、ビジネス機能と密接に関連しています。ビジネス機能でリソースの集まりの保護を考慮する場合は、資格に基づくポリシーを使用することをお薦めします。資格は、1つ以上の付与で使用できます。

次の各項では、認可ポリシーでの管理操作について説明します。

- 4.5.5.1項「認可ポリシーの作成」

- 4.5.5.2項「認可ポリシーの変更」

- 4.5.5.3項「認可ポリシーの削除」

4.5.5.1 認可ポリシーの作成

ポリシーを作成するには、次のようにします。

1. 次のいずれかの方法を選択して、ポリシーを作成するページを表示します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「ポリシー・ドメイン」に移動して展開します。「リソース・カタログ」ノードの「認可ポリシー」を右クリックし、メニューから「新規」を選択します。

- ホーム領域で、その下に認可ポリシーを作成するアプリケーション名を選択し、「認可ポリシー」から「新規」をクリックします(このオプションを使用する場合、ポリシーはデフォルトのポリシー・ドメインに作成されます)。

ホーム領域に無題ページが表示されます。

2. 次の情報を入力します。

- 結果: ポリシーで権限を付与する場合は「許可」を、ポリシーで権限を拒否する場合は「拒否」を選択します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

3. 次のいずれかの方法を選択して、認可ポリシーにプリンシパルを追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、ユーザー、外部ロールまたはアプリケーション・ロールで検索を実行することで、アプリケーションの使用可能なプリンシパルを一覧表示します。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. プリンシパルを「検索結果」タブから「プリンシパル」というラベルの付いた領域にドラッグ・アンド・ドロップします。

3. 「任意」または「すべて」を選択します。
「任意」の場合、ユーザーは指定したプリンシパルのうち少なくとも1つと一致する必要があります。たとえば、プリンシパルがロールの場合、ユーザーは適用する認可ポリシーの少なくとも1つのロールのメンバーである必要があります。「すべて」の場合、ユーザーは指定したプリンシパルのすべてと一致する必要があります。たとえば、プリンシパルがロールの場合、ユーザーは適用する認可ポリシーのすべてのロールのメンバーである必要があります。

- 「プリンシパルの追加」ポップ・アップ検索
ポップアップ検索ボックスの使用方法の詳細は、5.1項「管理コンソールを使用した検索」を参照してください。

1. 「プリンシパル」セクションで「追加」をクリックします。
「プリンシパルの追加」ダイアログが表示されます。

2. 適切なタブを選択し、使用可能なプリンシパルを検索します。
オプションは、「アプリケーション・ロール」、外部ロールおよび「ユーザー」です。タブ間を移動し、選択したプリンシパルを必要な数だけ追加できます。「アプリケーション・ロール」タブには、「検索」と「デフォルトのロール」の2つのリンクがあります。「検索」をクリックすると、ダイアログが開き、第5章「セキュリティ・オブジェクトの問合せ」で説明するアプリケーション・ロールのポップアップ検索を実行できます。「デフォルトのロール」をクリックすると、匿名ロールまたは認証ロールをプリンシパルに追加できます。(これらのロールの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。)図4-1は、「デフォルトのロール」ポップアップ・ボックスのスクリーンショットです。

図4-1 デフォルトのロールの追加ポップアップ

3. 文字列を入力することで、使用可能なプリンシパルを検索します。
問合せに一致するプリンシパルが「検索結果」に表示されます。

4. 選択して、「選択済の追加」をクリックします。
プリンシパルが「選択されたプリンシパル」に追加されます。リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

5. 「プリンシパルの追加」をクリックします。

6. 「任意」または「すべて」を選択します。
「任意」の場合、ユーザーは指定したプリンシパルのうち少なくとも1つと一致する必要があります。たとえば、プリンシパルがロールの場合、ユーザーは適用する認可ポリシーの少なくとも1つのロールのメンバーである必要があります。「すべて」の場合、ユーザーは指定したプリンシパルのすべてと一致する必要があります。たとえば、プリンシパルがロールの場合、ユーザーは適用する認可ポリシーのすべてのロールのメンバーである必要があります。

4. 次のいずれかの方法を選択して、認可ポリシーにターゲットを追加します。
この手順では、リソースおよびアクション・アソシエーションまたは資格あるいはその両方のいずれかを認可ポリシーに追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、検索を実行することで、アプリケーションの使用可能なリソースまたは資格を一覧表示します(認可ポリシーを追加する先と同じポリシー・ドメイン内でこれらのオブジェクトを検索することを確認してください)。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. 1つまたは複数のリソースまたは資格を「検索結果」タブから「ターゲット」というラベルの付いた領域にドラッグ・アンド・ドロップします。「ターゲット」に追加されたオブジェクトを展開して、アクションと関連付けることができます。

- 「ターゲットの追加」ポップ・アップ検索
ポップアップ検索ボックスの使用方法の詳細は、5.1項「管理コンソールを使用した検索」を参照してください。

1. 「ターゲット」セクションで「追加」をクリックします。
「ターゲットの追加」ダイアログが表示されます。

2. 適切なタブを選択し、使用可能なターゲットを検索します。
オプションは「資格」および「リソース」です。タブ間を移動し、選択したターゲットを必要な数だけ追加できます。

3. 文字列を入力することで、「資格」タブの下の使用可能なターゲットを検索します。
問合せに一致するリソースが「検索結果」に表示されます。検索文字列が入力されないと、指定したタイプのすべてのオブジェクトのリストが返されます。

4. 選択して、「選択済の追加」をクリックします。
ターゲットが「選択されたターゲット」に追加されます。リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

5. 文字列を入力することで、「リソース」タブの下の使用可能なターゲットを検索します。
問合せに一致するリソースが「検索結果」に表示されます。検索文字列が入力されないと、指定したタイプのすべてのオブジェクトのリストが返されます。

または、「リソース」タブの下のリソース式リンクをクリックし、「リソース・タイプ」を選択して、文字列式を入力し、「ターゲットに追加」をクリックします。これは定義済の条件を使用して、実行時に動的にターゲットを検索します。管理者権限のコンテキスト内で、文字列式を含む、選択したリソース・タイプに属するすべてのリソースが返されます。

6. 「ターゲットの追加」をクリックします。
追加された、権限を持たないターゲット(リソースまたはリソース名式)のアクションを選択する必要があります。

5. 「条件」タブを選択して条件を追加します。
詳細は、4.6項「条件ビルダーの使用」を参照してください。

6. 「責任」タブを選択します。
認可ポリシーにはゼロ、1つまたは複数の責任が含まれることがあります。

1. 「新規」をクリックして、「新規責任」ダイアログを表示します。

2. 「新規責任」に「名前」、(オプション)「表示名」および「説明」を入力し、「追加」をクリックします。

3. 「属性」セクションで「新規」をクリックし、責任の属性を追加します。
責任には属性のセットが含まれます。各属性は、名前と値のペアです。値は静的または事前定義された属性の値にすることができます。各責任には少なくとも1つの属性が必要です。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

4. 「新規責任属性」ダイアログに属性の「名前」を入力します。
責任の属性が静的な場合、いずれかのデータ型を選択し、値を入力します。責任が属性の場合、データ型には「属性」を選択し、事前定義された属性のリストから選択します。

5. 「追加」をクリックします。

7. 「保存」をクリックして認可ポリシーを保存します。

4.5.5.2 認可ポリシーの変更

ポリシーを変更するには、次のようにします。

1. 目的の認可ポリシーを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションのポリシー・ドメインの下の「認可ポリシー」ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.8項「認可ポリシーの検索」を参照してください。

- ホーム領域で、その下に認可ポリシーを作成したアプリケーション名を選択し、「認可ポリシー」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3.8項「認可ポリシーの検索」を参照してください。

検索結果が表示されます。

2. 表示された検索結果から適切なポリシーを選択し、「開く」をクリックして、詳細を表示します。
管理コンソールには、Oracle Entitlements Serverを使用して作成した拡張認可ポリシーに加えて、Oracle Platform Security Services (OPSS)を使用して作成した、より単純なアプリケーション権限(システム・ポリシー)も表示されます。OPSSアプリケーション権限を表示、変更または削除できるのは、管理コンソールを使用する場合のみです。OPSSを使用して作成したアプリケーション権限は、プリンシパルとターゲットのみを使用して定義されます。図4-2は、OPSSアプリケーション権限が表示されているOracle Entitlements Server画面のスクリーンショットです。

図4-2 OPSSアプリケーション権限表示画面

「名前」、「表示名」、「説明」の各フィールドは、Oracle Entitlements Serverを使用して作成した認可ポリシーの場合と異なり、表示されないことに注意してください。OPSSアプリケーション権限を、Oracle Entitlements Serverを使用して作成することはできません。アプリケーション権限の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

3. 必要に応じてポリシーを変更します。

- 変更するプリンシパルを選択します。
詳細は、4.5.5.1項「認可ポリシーの作成」を参照してください。

- 変更する(または展開する)ターゲットを選択します。
詳細は、4.5.5.1項「認可ポリシーの作成」を参照してください。

- 「条件」タブをクリックして条件を編集します。
詳細は、4.6項「条件ビルダーの使用」を参照してください。

- 「責任」タブをクリックし、責任またはその属性を変更します。

- 責任を変更するには、「責任」表から「編集」をクリックし、表示されたダイアログで変更を行い、「更新」をクリックします。

- 属性を変更するには、「属性」表から属性を選択して「編集」をクリックします。表示されたダイアログで変更を行い、「更新」をクリックします。

- 責任を変更するには、「責任」表から属性を選択して「削除」をクリックします。

4. 「適用」をクリックします。

4.5.5.3 認可ポリシーの削除

認可ポリシーを削除するには、次のようにします。

1. 認可ポリシーの検索画面を表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションのポリシー・ドメインの下の「認可ポリシー」ノードを探して右クリックし、「開く」を選択します。ホーム領域に検索ダイアログが表示されます。

- ホーム領域で、その下に認可ポリシーを作成したアプリケーション名を選択し、「認可ポリシー」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。

ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

2. 検索の条件を入力し、「検索」をクリックします。

3. 検索結果から適切な認可ポリシーを選択し、「削除」をクリックします。
管理コンソールには、Oracle Entitlements Serverを使用して作成した拡張認可ポリシーと同様、Oracle Platform Security Services (OPSS)を使用して作成した、より単純なアプリケーション権限(システム・ポリシー)も表示できます。「削除」をクリックすることによって、認可ポリシーまたはアプリケーション権限のどちらかを削除できます。

4.5.6 ロール・カタログでのアプリケーション・ロールの管理

アプリケーション・ロールはアプリケーション・レベル(したがってその名前)で定義され、Oracle Entitlements Serverを使用して作成されます。アプリケーション・ロールは、アイデンティティ・ストア内の外部ロール、ユーザーまたはグループ、またはポリシー・ストア内の別のアプリケーション・ロールに割り当てることができます。1つのターゲット・アプリケーションが複数の異なるロールを持ち、よりきめの細かい認可のために、それぞれが異なる権限のセットを割り当てられることが可能です。メンバーシップは、外部ロールまたは個別のユーザーに静的に、または実行時に処理されるロール・マッピング・ポリシーを使用して動的に、付与できます。

注意:

ロール・マッピング・ポリシーでは、ロールをサブジェクトに割り当て、認可ポリシーではロールのアクセス権限を定義します。

次の手順で関係を確立することで、アプリケーション・ロールを使用してアクセスを制御できます。

1. アプリケーション・ロールを定義して、ユーザーがアプリケーションで持つ機能ロールを表します。

2. 各アプリケーション・ロールを外部ロールまたはユーザーにマッピングします。

3. 認可ポリシーを作成し、アプリケーション・ロールの目標を達成するのに必要なレベルのアクセス権(許可/拒否)を提供します。

4. アプリケーション・ロールをプリンシパルとして1つまたは複数の認可ポリシーに追加します。

アプリケーション・ロールはロールの継承および階層を使用します。継承パターンは、サブジェクトがロールに割り当てられる(ロール・マッピング・ポリシーまたは静的ロールの割当てを使用)ようなもので、ロール・マッピング・ポリシーにより禁止されなければ、子ロールも継承します。ポリシーでアプリケーション・ロールがプリンシパルとして参照されている場合、そのロールに割り当てられたすべてのユーザーのリソースへのアクセスはそのポリシーにより管理されます。次の各項では、アプリケーション・ロールでの管理操作について説明します。

- 4.5.6.1項「アプリケーション・ロールの作成」

- 4.5.6.2項「アプリケーション・ロールの変更」

- 4.5.6.3項「アプリケーション・ロールへの外部ロールのマッピング」

- 4.5.6.4項「外部ユーザーのアプリケーション・ロールへのマッピング」

- 4.5.6.5項「アプリケーション・ロールの削除または外部ロール・マッピングの削除」

- 4.5.6.6項「外部ユーザー・マッピングの削除」

4.5.6.1 アプリケーション・ロールの作成

次の手順では、新しいアプリケーション・ロールを作成する手順について説明します。同時にメンバーをロールに追加する必要はなく、保存したロールに後で戻ることができます。アプリケーション・ロールを作成するには、次のようにします。

1. 次のいずれかの方法を選択して、アプリケーション・ロールを作成するページを表示します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードの下のロール・カタログに移動します。ロール・カタログ・ノードを右クリックし、メニューから「新規」を選択します。

- ホーム領域で、その下にアプリケーション・ロールを作成するアプリケーション名を選択し、「アプリケーション・ロール」から「新規」をクリックします

「一般」(アクティブ)、「アプリケーション・ロール階層」、「外部ロール・マッピング」および外部ユーザー・マッピングの、4つのタブのある無題ページがホーム領域に表示されます。

2. 次の情報を「一般」タブで入力します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- ロール名: 名前は必須で、大文字と小文字は区別されません。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

- ロール・カテゴリ: ロール・カテゴリは、管理を容易にするためにロールに割り当てることができるタグです。4.5.8項「ロール・カテゴリの管理」を参照してください。

3. 「保存」をクリックします。
ページは「ロール名」に指定したエントリと一致する名前になり、「アプリケーション・ロール階層」、「外部ロール・マッピング」および外部ユーザー・マッピングのタブがアクティブになります。この時点で、「ポリシーの作成」またはポリシーの検索をそれぞれクリックして、このアプリケーション・ロールをプリンシパルとして使用してポリシーを作成するか、このアプリケーション・ロールをプリンシパルとして使用してポリシーを検索することができます。アプリケーション・ロール階層を定義するには、次の手順に続きます。

4. オプションで、「アプリケーション・ロール階層」タブを選択し、このアプリケーション・ロールが権限を継承する元のロール(「継承」)を定義し、このロールが継承するロールのリスト(「継承者」)を参照します。階層は必須ではありませんが、定義する場合には、次の例のサブ手順が前のオプションに特有の手順です。

1. 「継承」をクリックします。

2. 「追加」をクリックします。

3. 階層を追加しているロールに対応するラジオ・ボタンを選択します。
階層にロールを追加する場合、その下で作業中のロールにロールを追加するか、またはアプリケーション・ロール階層表で選択できるロールに追加することができます。

4. ロールの追加ダイアログの条件フィールドを完成し、「検索」をクリックします。
結果が「検索結果」表に表示されます。空の文字列の場合、すべてのロールをフェッチします。

5. このロールが「検索結果」表から権限を継承する元のロールを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

6. 「追加」をクリックします。
選択したロールがアプリケーション・ロール階層タブに表示され、アプリケーション・ロールはそこから権限を継承します。

外部ロール・マッピングの詳細は、4.5.6.3項「外部ロールのアプリケーション・ロールへのマッピング」を参照してください。外部ユーザー・マッピングの詳細は、4.5.6.4項「外部ユーザーのアプリケーション・ロールへのマッピング」を参照してください。

4.5.6.2 アプリケーション・ロールの変更

アプリケーション・ロールを変更または表示するには、次のようにします。

1. 目的のアプリケーション・ロールを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下のロール・カタログ・ノードを探して右クリックし、「開く」を選択します。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

正しいアプリケーション・ロールが表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

2. 変更するパラメータを含むタブを選択し、「追加」をクリックします。
使用可能なタブの詳細は、次を参照してください。

- アプリケーション・ロール階層: 4.5.6.1項「アプリケーション・ロールの作成」

- 外部ロール・マッピング: 4.5.6.3項「アプリケーション・ロールへの外部ロールのマッピング」

- 外部ユーザー・マッピング: 4.5.6.4項「外部ユーザーのアプリケーション・ロールへのマッピング」

4.5.6.3 アプリケーション・ロールへの外部ロールのマッピング

外部ロールをアプリケーション・ロールにマッピングするには、次のようにします。

1. 目的のアプリケーション・ロールを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下のロール・カタログ・ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用してアプリケーション・ロールを検索し、「検索結果」タブでアプリケーション・ロール名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

正しいアプリケーション・ロールが表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。

2. 「外部ロール・マッピング」タブを選択します。

3. 「追加」をクリックして、「ロールの追加」ダイアログを表示します。

4. ロールの追加ダイアログの問合せフィールドを完成し、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果が外部ロール検索表に表示されます。

5. 表内で、マップする外部ロールの名前をクリックして、外部ロールを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

6. ロールのマップをクリックします。
選択したロールが「外部ロール・マッピング」タブに表示されます。

4.5.6.4 外部ユーザーのアプリケーション・ロールへのマッピング

外部ユーザーをアプリケーション・ロールにマッピングするには、次のようにします。

1. 目的のアプリケーション・ロールを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下のロール・カタログ・ノードを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用してアプリケーション・ロールを検索し、「検索結果」タブでアプリケーション・ロール名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

正しいアプリケーション・ロールが表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。

2. 外部ユーザー・マッピング・タブを選択します。

3. 「追加」をクリックして、「ユーザーの追加」ダイアログを表示します。

4. 「ユーザーの追加」ダイアログの問合せフィールドを完成し、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果が外部ユーザー検索表に表示されます。

5. 表内で、マップするユーザーの名前を選択して、ユーザーを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

6. ユーザーのマップをクリックします。
選択したロールが「外部ユーザー・マッピング」タブに表示されます。

4.5.6.5 アプリケーション・ロールの削除または外部ロール・マッピングの削除

アプリケーション・ロールを削除する、またはアプリケーション・ロールから外部ロール・マッピングを削除するには、次のようにします。

1. 目的のアプリケーション・ロールを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下のロール・カタログ・ノードを探して右クリックし、「開く」を選択します。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

2. 「検索結果」アプリケーション・ロールを選択し、次を行います。

- 「削除」をクリックしてロールを削除します。

- 外部ロール・マッピング表から適切なマッピングを選択し、「削除」をクリックします。

- 外部ユーザー・マッピングを削除するには、4.5.6.6項「外部ユーザー・マッピングの削除」を参照してください。

4.5.6.6 外部ユーザー・マッピングの削除

アプリケーション・ロールから外部ユーザー・マッピングを削除するには、次のようにします。

1. 目的のアプリケーション・ロールを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションの下のロール・カタログ・ノードを探して右クリックし、「開く」を選択します。ホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックしますホーム領域に検索ダイアログが表示されます。検索の条件を入力し、「検索」をクリックします。

ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

2. 「検索結果」表でアプリケーション・ロールを選択し、「開く」をクリックします。
新しいタブでアプリケーション・ロールの詳細が開きます。

3. 「外部ユーザー・マッピング」タブをクリックします。

4. 該当するユーザーを選択し、「削除」をクリックします。
確認を求めるダイアログ・ボックスが表示されます。

5. 「削除」をクリックして外部ユーザー・マッピングを削除します。
「外部ロール・マッピング」タブをクリックして外部ロール・マッピングを削除することもできます。

4.5.7 ロール・マッピング・ポリシーの管理

アプリケーション・ロールへのメンバーシップは、ロール・マッピング・ポリシーを使用して静的または動的に付与できます。アプリケーション・ロールはロール・マッピング・ポリシーで参照され、ユーザーに定義済のリソースへのアクセス権を付与できます。次の各項では、ロール・マッピング・ポリシーでの管理操作について説明します。

- 4.5.7.1項「ロール・マッピング・ポリシーの作成」

- 4.5.7.2項「ロール・マッピング・ポリシーの変更」

- 4.5.7.3項「ロール・マッピング・ポリシーの削除」

4.5.7.1 ロール・マッピング・ポリシーの作成

ロール・マッピング・ポリシーを作成するには、次のようにします。

1. 次のいずれかの方法を選択して、ロール・マッピング・ポリシーを作成するページを表示します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードに移動して、ロール・カタログ・ブランチを展開します。ロール・マッピング・ポリシーを右クリックし、メニューから「新規」を選択します。

- ホーム領域で、その下にロール・マッピング・ポリシーを作成するアプリケーション名を選択し、ロール・マッピング・ポリシーから「新規」をクリックします。

ホーム領域に無題ページが表示されます。

2. 次の情報を入力します。

- 影響: ポリシーでアプリケーション・ロールのメンバーシップを付与する場合は「許可」を、ポリシーでアプリケーション・ロールのメンバーシップを拒否する場合は「拒否」を選択します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。

- 説明: オプションですが、ポリシーに関する有用な情報を入力することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

3. 次のいずれかの方法を選択して、アプリケーション・ロールを追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、検索を実行することで、アプリケーションの使用可能なアプリケーション・ロールを一覧表示します詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. アプリケーション・ロールを「検索結果」タブから「アプリケーション・ロール」というラベルの付いた領域にドラッグ・アンド・ドロップします。

- 「アプリケーション・ロールの追加」ダイアログ

1. 「アプリケーション・ロール」セクションで「追加」をクリックします。
「アプリケーション・ロールの検索」ダイアログが表示されます。

2. 文字列を入力することで、アプリケーション・ロールを検索します。
問合せに一致するリソースが「検索結果」に表示されます。

3. 追加するプリンシパルを選択し、アプリケーション・ロールの追加をクリックします。
リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

注意:

このリリースのこのダイアログでは、プリンシパルの検索のタイトルと「プリンシパルの追加」ボタンが表示されます。

4. 次のいずれかの方法を選択して、プリンシパルを追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、検索を実行することで、アプリケーションの使用可能なユーザーおよび外部ロールを一覧表示します。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. ユーザーおよび外部ロールを「検索結果」タブから「プリンシパル」というラベルの付いた領域にドラッグ・アンド・ドロップします。

- 「プリンシパルの追加」ダイアログ

1. 「プリンシパル」セクションで「追加」をクリックします。
プリンシパルの検索ダイアログが表示されます。

2. 文字列を入力することで、使用可能なプリンシパル(この場合、ユーザーまたは外部ロール)を検索します。
問合せに一致するリソースが「検索結果」に表示されます。

3. 追加するプリンシパルを選択して、「プリンシパルの追加」をクリックします。
リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

5. オプションで、次のいずれかの方法を選択して、リソース(ターゲットとも呼ばれます)を追加します。

- ドラッグ・アンド・ドロップ

1. ナビゲーション・パネルを使用して、検索を実行することで、アプリケーションの使用可能なリソースを一覧表示します詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. 1つまたは複数のリソースまたは資格を「検索結果」タブから「リソース」というラベルの付いた領域にドラッグ・アンド・ドロップします。

- 「ターゲットの追加」ポップ・アップ検索

1. 「リソース」セクションで「追加」をクリックします。
「ターゲットの追加」ダイアログが表示されます。

2. リソースを含むポリシー・ドメインを選択します(適用可能な場合)。

3. 文字列を入力し、「検索」をクリックします。
問合せに一致するリソースが「検索結果」に表示されます。検索文字列が入力されないと、指定したタイプのすべてのオブジェクトのリストが返されます。

4. 追加する適切なターゲットを選択して、「選択済の追加」をクリックします。
ターゲットが「選択されたターゲット」に追加されます。リストから複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。

5. リソース式リンクをクリックし、ターゲットとして式を追加します。
リソース・タイプを選択し、文字列式を入力して、「ターゲットに追加」をクリックします。これは定義済の条件を使用して、実行時に動的にターゲットを検索します。管理者権限のコンテキスト内で、文字列式を含む、選択したリソース・タイプに属するすべてのリソースが返されます。

6. 「ターゲットの追加」をクリックします。

6. 条件ビルダーの使用の詳細は、4.6項「条件ビルダーの使用」を参照してください。

7. 「保存」をクリックします。

4.5.7.2 ロール・マッピング・ポリシーの変更

ロール・マッピング・ポリシーを変更するには、次のようにします。

1. 目的のロール・マッピング・ポリシーを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションのロール・カタログ・ノードの下のロール・マッピング・ポリシーを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、ロール・マッピング・ポリシーの下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

正しいロール・マッピング・ポリシーが表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。

2. 必要に応じてポリシーを変更します。

3. 「適用」をクリックします。

4.5.7.3 ロール・マッピング・ポリシーの削除

ロール・マッピング・ポリシーを削除するには、次のようにします。

1. 目的のロール・マッピング・ポリシーを表示するには、次の方法から選択します。

- ナビゲーション・パネルで情報ツリーを展開し、適切なアプリケーションのロール・カタログ・ノードの下のロール・マッピング・ポリシーを探して、ダブルクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ホーム領域で、その下にアプリケーション・ロールが作成されたアプリケーション名を選択し、ロール・マッピング・ポリシーの下の「検索」をクリックします。ホーム領域に検索ダイアログが表示されます。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

正しいロール・マッピング・ポリシーが表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。

2. 削除するロール・マッピング・ポリシーをダブルクリックします。
ホーム領域にロール・マッピング・ポリシーが表示されます。

3. ホーム領域の右上隅の「削除」をクリックします。

4.5.8 ロール・カテゴリの管理

ロール・カテゴリは管理を容易にするためにロールに割り当てることができるタグです。ロール・カテゴリを作成または削除することはできますが、変更はできません。ロール・カテゴリを作成するには、次のようにします。ロール・カテゴリの削除手順は、最後の手順の後に詳しく説明します。

1. ナビゲーション・パネルで、適切な「アプリケーション」ノードを展開し、ロール・カテゴリ・ノードをダブルクリックします。

ホーム領域にロール・カテゴリ・ページが表示されます。

2. 「新規」をクリックして、「新規カテゴリ」ダイアログ・ボックスを表示します。

3. 次の情報を入力します。

- 名前

- 表示名

- 説明

4. 「作成」をクリックします。
ロール・カテゴリ・リストに新しいカテゴリが表示されます。

ロール・カテゴリを削除するには、ナビゲーション・パネルで、適切な「アプリケーション」ノードを展開し、ロール・カテゴリ・ノードをダブルクリックします。削除するロール・カテゴリを選択し、「削除」をクリックします。

4.5.9 属性および関数を拡張として管理

属性と関数はそれらが作成されたアプリケーションの「拡張」ノードの下に編成された定義です。属性および関数の定義は条件や責任で使用することができます。条件については、属性および関数の定義を使用して、保護リソースへのアクセスをさらに制限するためにポリシーに追加できるオプションの式を作成できます。責任については、このオプションの名前と値のペアのセットは、ポリシー決定とともに、追加の情報をコール側アプリケーションに返します。責任を定義するには次の2つの方法があります。

- 絶対値を含む属性が返される場合に、静的に定義。

- 属性値またはカスタム関数が実行時に評価され出力が返される場合に、動的に定義。

属性は、実行時に動的に定義される値(たとえばユーザーの地域)や、保護リソースのタイプに基づく値(たとえばテキスト・ファイルの作成日)の場合があります。ポリシーの評価中に、属性値はアプリケーションにより渡されることができるか、またはOracle Entitlements Serverが属性リトリーバ・コンポーネントを使用して取得できます。属性には定義済の型が必要です。ブール、整数、日付、時間および文字列がOracle Entitlements Serverの事前定義済の型です。属性は、単数または複数の値のリストである場合があります。関数は外部で実装されたロジックの定義です。ポリシーの結果に対する条件としてポリシーに追加できます。次の各項では、属性および関数での管理操作について説明します。

- 4.5.9.1項「属性の作成」

- 4.5.9.2項「属性の変更」

- 4.5.9.3項「属性の削除」

- 4.5.9.4項「関数の作成」

- 4.5.9.5項「関数の変更」

- 4.5.9.6項「関数の削除」

4.5.9.1 属性の作成

属性を作成するには、次のようにします。

1. ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。

2. 「属性」ノードを右クリックし、メニューから「新規」を選択します。
ホーム領域に無題ページが表示されます。

3. 属性に対して次の情報を入力します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

- カテゴリ: 「リソース」および「動的」からこの必要なパラメータの値を選択します。リソース属性は、Oracle Entitlements Serverを使用して定義され、維持されます。それ以外のすべての属性では「動的」を選択します。

- タイプ: 「ブール」、「日付」、「日時」、「整数」、「文字列」「時間」、「Base64バイナリ」、「日時期間」、「DNS名」、「Double」、「電子メール」、「16進バイナリ」、「IPアドレス」、「URI」、「X500名」または「年月期間」から選択します。

- 入力値: 「単一」および「複数」から選択します。

4. 「保存」メニューから次のいずれかを選択します。

- 「保存」は、構成を保存し、タブの名前をリソースの「表示名」に指定した値に変更します。

- 「保存して閉じる」は、構成を保存してタブを閉じます。

- 「保存して別のものを作成」は、ポリシー・ストアに構成を保存し、ナビゲーション・パネルの情報ツリーを更新し、別の属性を作成できるように無題の領域を開いたままにします。

4.5.9.2 属性の変更

属性を変更するには、次のようにします。

1. 目的の属性を表示するには、次の方法から選択します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。属性をダブルクリックしてホーム領域に検索ダイアログを表示します。ホーム領域での検索の詳細は、5.3.9項「属性の検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して属性を検索し、「検索結果」タブで属性名をダブルクリックします。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

正しい属性が表示されたら、それを選択して「開く」をクリックし、詳細をホーム領域に表示します。

2. 必要に応じて属性を変更します。

3. 「適用」をクリックします。

4.5.9.3 属性の削除

属性を削除するには、次のようにします。

1. 属性を表示するには、次の方法から選択します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。属性を右クリックして「開く」を選択し、ホーム領域に検索ダイアログを表示します。検索の条件を入力し、「検索」をクリックします。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して属性を検索し、「検索結果」タブで属性名を右クリックして「開く」を選択し、ホーム領域に属性を表示します。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. 属性を選択し、「削除」をクリックします。
削除の警告が表示されます。

3. 「はい」をクリックします。
使用中の属性は削除できません。

4.5.9.4 関数の作成

関数を作成するには、次のようにします。

1. ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。

2. 「関数」ノードを右クリックし、メニューから「新規」を選択します。
ホーム領域に無題ページが表示されます。

3. 関数に対して次の情報を入力します。

- 表示名: 「表示名」はオプションで、大文字と小文字は区別されません。表示名は管理コンソールに表示され、管理者にオブジェクトの特定に役立つ追加情報を提供するため、わかりやすい表示名を指定することをお薦めします。

- 名前: 名前は必須で、大文字と小文字は区別されません。アプリケーションは実行時にこの文字列を渡して、ユーザーのこのリソースへのアクセスが認可されているかどうかを判断します。

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。説明の文字列では、大文字と小文字は区別されません。

- 関数クラス名: 機能を提供するクラスの名前です。
InspectableOesFunctionインタフェースに基づいて実装されたカスタム関数を作成する場合、Oracle Entitlements Serverはそのインタフェースに基づいてメタデータをロードし、動的にクラスを評価してその有効性を確認します。詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。

- 入力パラメータ: 関数に渡されるパラメータの型のリストです。

- 戻り型: 関数により戻されるデータ型を選択します。

- 構文プレビューは関数の構文をプレビュー表示します。

4. 「保存」メニューから次のいずれかを選択します。

- 「保存して閉じる」で構成を保存し、「表示名」に指定した値を使用してタブの名前を変更します。

- 保存して別に作成ではナビゲーション・パネルの情報ツリーに構成が保存されますが、別に作成するための無題の領域は開かれたままです。

4.5.9.5 関数の変更

関数を変更するには、次のようにします。

1. ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。

2. 関数をダブルクリックしてホーム領域に検索ダイアログを表示します。

3. 関数を表示する検索条件を入力します。
ホーム領域での検索の詳細は、5.3.10項「関数の検索」を参照してください。

4. 「検索結果」から関数を選択し、「開く」をクリックします。
ホーム領域に関数の詳細が表示されます。

5. 必要に応じて関数を変更します。

6. 「適用」をクリックします。

4.5.9.6 関数の削除

関数を削除するには、次のようにします。

1. 関数を表示するには、次の方法から選択します。

- ナビゲーション・パネルで、適切な「アプリケーション」ノードの下の「拡張」に移動して拡張します。関数を右クリックして「開く」を選択し、ホーム領域に検索ダイアログを表示します。検索の条件を入力し、「検索」をクリックします。「検索結果」から適切な関数を選択します。ホーム領域での検索の詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ナビゲーション・パネルの検索機能を使用して関数を検索し、「検索結果」タブで関数名を右クリックして「開く」を選択し、ホーム領域に関数を表示します。ナビゲーション・パネルでの検索の詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

2. 「削除」をクリックします。
削除の警告が表示されます。

3. 「はい」をクリックします。
使用中の関数は削除できません。

4.6 条件ビルダーの使用

ポリシー・ルールのオプションの条件を使用して、アクセスのリクエストへの応答で返された認可決定の適用性を評価できます。たとえば、条件を使用して、リクエストが特定の場所からまたは特定の時間に発行された場合にかぎり、リソースへのアクセス権を付与することができます。

注意:

ロール・マッピング・ポリシーの条件は、認可ポリシーの条件と同じ機能を提供し、同じ形式をとります。

条件は式の形で作成され、trueかfalseかが決定されます。式の結果がtrueの場合、ポリシーの条件は満たされ、ポリシーが適用されます。式の結果がtrueでない場合、ポリシーは適用されません。式は属性、関数またはリテラルを操作できます。Oracle Entitlements Serverには挿入できる事前定義済の属性および関数が含まれますが、カスタムの属性および関数を作成することもできます。リテラルはサポートされるデータ型に属する定数です。

注意:

すべての属性と関数(カスタムおよび事前定義済の両方)は、アプリケーションの「拡張」ノードの下で、作成、収集、およびさらに管理されます。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

条件ビルダーにより、管理者は条件式をすばやく作成して、認可ポリシーまたはロール・マッピング・ポリシーに追加することができます。次の手順では、条件ビルダーを使用してポリシーに条件を作成する方法について説明します。条件を作成するには、認可ポリシーまたはロール・マッピング・ポリシーを作成または変更します。次のいずれかの手順に従うことで、条件を作成できます。

- 4.5.5.1項「認可ポリシーの作成」

- 4.5.5.2項「認可ポリシーの変更」

- 4.5.7.1項「ロール・マッピング・ポリシーの作成」

- 4.5.7.2項「ロール・マッピング・ポリシーの変更」

適切な画面が表示されたら、次の手順に従います。

1. 「条件」タブをクリックします。

2. 「条件の編集」をクリックします。
条件ビルダーが(図4-3に表示されているように)表示されます。左側の条件式には、2つの「追加」置換可能と演算子のドロップダウン(オペランドが追加されるまでは空白)が表示されます。右側の「属性」タブ、「関数」タブおよび「リテラル」タブからコンポーネントを追加して、式を構築します。

図4-3 条件ビルダー

3. 条件に追加するコンポーネントのタイプが含まれる適切なオペランド値のタブをクリックします。
図4-4は「属性」タブ、「関数」タブおよび「リテラル」タブのスクリーンショットです。これらのタブに表示されている属性と関数は、ポリシーが作成されているアプリケーションに基づいてフィルタされます。たとえば、Application 1で作成されたカスタム関数は、条件ビルダーがApplication 2でポリシーを作成するためにアクティブにされている場合には表示されません。

図4-4 オペランド値のタブ

注意:

「関数」タブにアクセスしてInspectableOesFunctionインタフェースに基づいて実装されたカスタム関数を追加する場合、Oracle Entitlements Serverは入力された値をそのインタフェースの実装方法に基づいて動的に評価します。詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。

4. 条件に追加するコンポーネントを含む行を選択し、「追加」をクリックします。
青いiをクリックし、コンポーネントに関する詳細を含む「詳細」ボックスを表示します。図4-5は文字列値をとるSYS_APP属性が追加された後のスナップショットです。

図4-5 リテラルの条件への追加

5. 適切なオペランド値を選択し、「追加」をクリックすることで、値を式の右側に移入します。

6. ドロップ・ダウンをクリックし、項目を選択することで、演算子を条件ビルダーの右側に指定します。
演算子のオプションはオペランド値により異なります。

7. 該当する場合は、式の最後の矢印をクリックし、ドロップ・ダウン・メニューからAND、ORまたはNOTを選択することで、式を追加します。
REMOVEによりすべてのコンポーネントの式がクリアされるので、再び開始できます。

8. 該当する場合、適切なオペランド値タブから、追加の式に対するコンポーネントを選択します。
現在の式の最後の矢印をクリックし、オペランド値タブから選択することで、必要な数の式(およびコンポーネント)を追加できます。

9. 「完了」をクリックして条件を完成させます。

式を作成するために条件ビルダー内を移動するときには、次の点を考慮する必要があります。

- 条件ビルダーには追加の詳細のためにほとんどのフィールドにツール・ヒントが含まれています。

- オペランド値の情報については、適切な青いiをクリックします。

- 少なくとも、式には2つのオペランドと1つの演算子が含まれている必要があります。

- 属性と属性、属性と関数、属性とリテラル、関数と関数、関数とリテラルを比較できます。

- 関数の入力パラメータには、属性、リテラルまたは関数を使用できます。

- 表示された演算子の選択は最初のオペランドの選択と直接関係します。たとえば、「次より小さい」または「次と等しい」を文字列で実行することはできません。

- 式内で表示された2番目のオペランド値の選択も最初のオペランドの選択と直接関係します。

- REMOVEによりすべてのコンポーネントに関係する式がクリアされるので、再び開始できます。全部の条件がクリアされるわけではありません。

- 完成した条件(式)は実行時にOracle Entitlements Serverにより評価されます。解釈は優先のルールにより管理されます。

- この条件の出力はブールである必要があります。

次の各項では、さらに複雑な条件の手順を示します。

- 4.6.1項「複雑な式の作成」

- 4.6.2項「関数間でのパラメータの受渡」

4.6.1 複雑な式の作成

この手順では、カッコを使用して複雑な式を作成する方法について説明します。

1. 次のいずれかの手順に従うことで、条件ビルダーを使用できます。

- 4.5.5.1項「認可ポリシーの作成」

- 4.5.5.2項「認可ポリシーの変更」

- 4.5.7.1項「ロール・マッピング・ポリシーの作成」

- 4.5.7.2項「ロール・マッピング・ポリシーの変更」

2. 「条件」タブをクリックします。

3. 「条件の編集」をクリックします。
条件ビルダーは図4-3のように表示されます。

4. 「属性」タブをクリックします。

5. DateAttrカスタム属性を選択し、「追加」をクリックします。
DateAttrは事前定義済のOracle Entitlements Serverの属性ではないので、この手順はカスタム属性が4.5.9項「属性および関数を拡張として管理」に記載されているとおりに定義されていることを前提とします。DateAttrは演算子の左側に追加されます。

6. 演算子として等号(=)を選択します。

7. CURRENT_GMT_DATE事前定義属性を選択し、「追加」をクリックします。
CURRENT_GMT_DATEは事前定義済のOracle Entitlements Serverの属性で、「属性」タブで表示できます。これは演算子の右側に追加されます。

8. コードの最後の行で適切なAND、ORまたはNOT操作を選択することで、条件をより複雑にします。
カッコは一致する必要があります。開きカッコと閉じカッコの数は等しくなければなりません。コードの最後の行で操作を選択する場合、操作にはコード自体が含まれます。条件全体の最後で操作を選択する場合、全体として条件に追加できます。

9. 必要に応じて、「属性」、「関数」または「リテラル」から値を選択することで条件を追加します。

10. 完了後、「完了」をクリックします。

4.6.2 関数間でのパラメータの受渡し

この手順では、パラメータを関数に渡す方法について説明します。

注意:

InspectableOesFunctionインタフェースに基づいて実装されたカスタム関数を追加する場合、Oracle Entitlements Serverは実行中にクラスを評価してその有効性を確認します。詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。

1. 次のいずれかの手順に従うことで、条件ビルダーを使用できます。

- 4.5.5.1項「認可ポリシーの作成」

- 4.5.5.2項「認可ポリシーの変更」

- 4.5.7.1項「ロール・マッピング・ポリシーの作成」

- 4.5.7.2項「ロール・マッピング・ポリシーの変更」

2. 「条件」タブをクリックします。

3. 「条件の編集」をクリックします。
条件ビルダーは図4-3のように表示されます。

4. 「関数」タブをクリックします。

5. STRING_EQUALを選択し、「追加」をクリックします。
図4-6は追加された関数を示し、渡す必要がある2つのパラメータのプレースホルダを含んでいます。この関数は2つの文字列(1つは事前定義済属性の値)を比較します。

図4-6 関数の追加

6. まだの場合、最初のパラメータを選択します。

7. 「属性」タブをクリックします。

8. SYS_USERを選択し、「追加」をクリックします。
2番目のパラメータが強調表示され、「リテラル」タブがアクティブになります。

9. 2番目のパラメータの値を入力し、「追加」をクリックします。
この例では、joeです。演算子の右側のブールが強調表示され、「リテラル」タブがアクティブになります。

10. 適切な演算子を選択します。

11. 「ブール」置換可能をクリックし、この関数の出力がtrueまたはfalseのいずれである必要があるかを選択します。

12. 適切と思われるオペランドを追加します。

13. 完了後、「完了」をクリックします。

5 セキュリティ・オブジェクトの問合せ

Oracle Entitlements Serverでは、Oracle Entitlements Server管理コンソール内から、ポリシーおよびポリシー・オブジェクトを問合せできます。この章では、検索機能のタイプおよび検索機能を使用する目的について説明します。内容は次のとおりです。

- 5.1項「管理コンソールを使用した検索」

- 5.2項「簡易検索を使用したオブジェクトの検索」

- 5.3項「拡張検索を使用したオブジェクトの検索」

- 5.4項「オブジェクト名の大/小文字の区別の理解」

5.1 管理コンソールを使用した検索

Oracle Entitlements Serverでは、管理コンソールを使用して、様々な種類の検索問合せを実行できます。

- 簡易検索では、名前および表示名のみを照合します。ナビゲーション・パネルの先頭から検索が生成され、結果はナビゲーション・パネルに表示されます。詳細は、5.2項「簡易検索を使用したオブジェクトの検索」を参照してください。

- 拡張検索では、より高度なマッチングが可能な演算子を使用します。ナビゲーション・パネルで、または「ホーム」領域から、オブジェクトをダブルクリックすると、拡張検索画面が起動します。「ホーム」領域に検索ボックスが開き、そこに結果も表示されます。詳細は、5.3項「拡張検索を使用したオブジェクトの検索」を参照してください。

- ブラインド・サーチでは、検索条件を指定しないでオブジェクトを検索します。これは、簡易検索または拡張検索として実行できます。ブラインド・サーチでは、システムの最大300個のオブジェクトを表示します。Oracle Entitlements Serverでは、検索結果として最大300行しか表示されません。

- ポリシーが作成または変更されている場合、「認可ポリシー」画面またはロール・マッピング・ポリシー画面内から、緑色の「追加」ボタン(プラス記号)をクリックすることによって、ポップアップ検索が開きます。ポップアップ検索ボックスでは、ショッピング・カート・パラダイムを使用します。検索ボックスの上部にある複数の表示されたタブから選択された内容を、検索ボックスの下部にある「選択」ボックスに追加します。「追加」をクリックすると、「選択」ボックス内のすべての選択内容が追加されます。
図5-1は、プリンシパルを追加するためのポップアップ検索ボックスのスクリーン・ショットです。1つ以上のポリシー・サブジェクトを選択し、それを「選択されたプリンシパル」ボックスに追加して、3つのタブ(「アプリケーション・ロール」、「外部ロール」および「ユーザー」)をクリックできます。「プリンシパルの追加」をクリックすると、すべてのタブから追加されたすべての選択内容が、ポリシーに追加されます。

図5-1 ポップアップ検索ボックス

5.2 簡易検索を使用したオブジェクトの検索

簡易検索では、名前および表示名のみを照合します。図5-2に示すように、ナビゲーション・パネルの「認可管理」タブの上部分にあるフィールドを使用して、簡易問合せを指定します。

図5-2 ナビゲーション・パネルの簡易検索のフィールドと「検索結果」タブ

簡易検索を指定するには、次のようにします。

1. 「対象」リストから、検索対象のポリシー・オブジェクトを選択します。
使用可能なオブジェクト・タイプは次のとおりです。

- アプリケーション・ロール

- 外部ロール

- ユーザー

- リソース

- リソース・タイプ

- 資格

- 属性

2. 「次を含む」リストから、検索範囲を選択します。
検索範囲は、検索が行われるレベルを定義します。アプリケーション・ロール、リソース、リソース・タイプ、資格および属性を検索する場合、検索範囲はアプリケーションです。外部ロールおよびユーザーの場合、検索範囲として、「グローバル」(デフォルト・オプション)または特定のIdentity Directory Serviceプロファイルにバインドされているアプリケーションの名前を選択できます。

注意:

後者の場合、検索はアプリケーションがバインドされているIdentity Directory Serviceプロファイルに対応するアイデンティティ・データ・ストア内で実行されます。詳細は、10.3項「Identity Directory Serviceプロファイルの構成」を参照してください。

資格およびリソースの場合、検索範囲はアプリケーション内のポリシー・ドメインです。リソース検索を実行している場合、タイプ・リストからリソース・タイプも選択します。

3. オプションで、一致させる文字列をテキスト・ボックスに入力します。
簡易検索では、ワイルドカード文字のパーセント(%)およびアスタリスク(*)がサポートされています。

4. テキスト・ボックスの隣にある矢印アイコンをクリックして、検索を開始します。
指定した基準に一致する名前および表示名が返され、「検索結果」タブに表示されます。検索文字列が入力されないと、指定したタイプのすべてのオブジェクトのリストが返されます。

5. オブジェクトをダブルクリックして編集するか、オブジェクトを右クリックして「新規」を選択して作成するか、またはオブジェクトの情報アイコンをクリックして詳細を表示します。
ポリシー・オブジェクトの管理の詳細は、第4章「ポリシーとポリシー・オブジェクトの管理」を参照してください。

5.3 拡張検索を使用したオブジェクトの検索

拡張検索を開始するには、通常、ナビゲーション・パネルで、または「ホーム」領域にあるオブジェクトの「検索」リンクから、オブジェクト名をダブルクリックします。拡張検索では、次の演算子を使用できます。

- 次で始まる

- 次で終わる

- 次を含む

- 次と等しい

拡張検索では、ワイルドカード文字はサポートされていません。特に、アスタリスク(*)またはパーセント(%)の文字は、拡張検索パラメータではプレーン・テキストとして処理されます。次の各項では、拡張検索によるポリシー・オブジェクトの検索の詳細を説明します。

- 5.3.1項「外部ロールの検索」

- 5.3.2項「アプリケーションの検索」

- 5.3.3項「リソース・タイプの検索」

- 5.3.4項「アプリケーション・ロールの検索」

- 5.3.5項「ロール・マッピング・ポリシーの検索」

- 5.3.6項「リソースの検索」

- 5.3.7項「資格の検索」

- 5.3.8項「認可ポリシーの検索」

- 5.3.9項「属性の検索」

- 5.3.10項「関数の検索」

- 5.3.11項「ユーザーの検索」

5.3.1 外部ロールの検索

外部ロールを検索するには、次のようにします。

1. 次の方法から選択して、外部ロールの検索ページを表示します。

- ナビゲーション・パネルで、「グローバル」を開き、「外部ロール」をダブルクリックします。
または、「外部ロール」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、検索および作成セクションから検索 - 外部ロールをクリックします。

2. 次の問合せパラメータを入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。パーソナライズ...を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、保存...をクリックして、現在の問合せパラメータに名前を付けます。
名前付き検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
結果は、「検索結果」に表示されます。

5.3.2 アプリケーションの検索

アプリケーションを検索するには、次のようにします。

1. 次の方法から選択して、アプリケーションの検索ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」をダブルクリックし、アプリケーションの検索ページを表示します。
または、「アプリケーション」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、検索および作成セクションから検索 - アプリケーションをクリックします。

2. 次の問合せパラメータを入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。パーソナライズ...を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
結果は、「検索結果」に表示されます。

5.3.3 リソース・タイプの検索

リソース・タイプを検索するには、次のようにします。

1. 次の方法から選択して、図5-3に示すようなリソース・タイプの検索ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」ノードを開き、「リソース・タイプ」をダブルクリックします。
または、「リソース・タイプ」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、適切なアプリケーション名を選択し、「リソース・タイプ」の下の「検索」をクリックします。

図5-3 リソース・タイプの検索

2. 次の問合せパラメータを入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- アクション: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
図5-4に示すように、問合せ指定に一致するすべての結果が「検索結果」表に表示されます。

図5-4 リソース・タイプの検索結果

5.3.4 アプリケーション・ロールの検索

アプリケーション・ロールを検索するには、次のようにします。

1. 次の方法から選択して、ロール・カタログの検索ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な指定されたアプリケーション・ノードを開き、「ロール・カタログ」をダブルクリックします。
または、「ロール・カタログ」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、アプリケーション名を選択し、「アプリケーション・ロール」から「検索」をクリックします。

図5-5に示すように、ロール・カタログの検索タブが表示されます。

図5-5 ロール・カタログでのアプリケーション・ロールの検索

2. 次の問合せパラメータを入力します。

- ロール名: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- カテゴリ: リストからロール・カテゴリを選択します。(Oracle Entitlements Serverでは、ロール・カテゴリの等号検索のみをサポートします。)

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
図5-6に示すように、問合せ指定に一致するすべての結果が「検索結果」表に表示されます。

図5-6 アプリケーション・ロールの検索結果

5.3.5 ロール・マッピング・ポリシーの検索

1. 次の方法から選択して、ロール・マッピング・ポリシーの検索ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な指定したアプリケーション・ノードを開き、「ロール・マッピング・ポリシー」をダブルクリックします。
または、「ロール・マッピング・ポリシー」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、アプリケーション名を選択し、「ロール・マッピング・ポリシー」から「検索」をクリックします。

図5-7に示すように、ロール・ポリシーの検索ページが表示されます。

図5-7 ロール・マッピング・ポリシーの検索

2. 「検索」セクションで、次のように問合せパラメータを入力します。

- 影響: リストからポリシーの影響(付与/拒否)を選択します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- ロール: リストから演算子を選択し、一致させる文字列を入力します。

- プリンシパル: リストから演算子を選択し、一致させる文字列を入力します。

- ターゲット: リストから演算子を選択し、一致させる文字列を入力します。

3. 「検索」をクリックします。
図5-8に示すように、問合せ指定に一致するすべての結果が「検索結果」表に表示されます。

図5-8 ロール・マッピング・ポリシーの検索結果

5.3.6 リソースの検索

リソースは、階層的(サブ・リソースが親リソースから属性を継承するシナリオ)または非階層的にすることができます。リソースが階層的な場合、その階層組織が検索結果に表示されます。リソースを検索するには、次のようにします。

1. 次の方法から選択して、「リソースの検索」ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な名前付きアプリケーション・ノードを開きます。適切なポリシー・ドメインおよびリソース・カタログを開き、「リソース」をダブルクリックします。
または、「リソース」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、アプリケーション名を選択し、「リソース」から「検索」をクリックします。

図5-9に示すように、リソースの検索ページが表示されます。

図5-9 リソースの検索

2. 次の問合せパラメータを入力します。

- リソース・タイプ: リストからリソース・タイプを選択します。このパラメータは必須です。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

3. 「検索」をクリックします。
問合せ指定に一致するすべての結果が「検索結果」表に表示されます。

5.3.7 資格の検索

資格を検索するには、次のようにします。

1. 次の方法から選択して、資格の検索ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な名前付きアプリケーション・ノードを開きます。適切なポリシー・ドメインおよびリソース・カタログを開き、「権限」をダブルクリックします。
または、「権限」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、アプリケーション名を選択し、「権限」から「検索」をクリックします。(この場合、デフォルトのポリシー・ドメイン内でのみ、検索が行われます。)

図5-10に示すように、「ホーム」領域に資格の検索タブが表示されます。

図5-10 資格の検索

2. 次の問合せパラメータを入力します。

- 資格名: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- リソース名: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
問合せ指定に一致するすべての結果が「検索結果」表に表示されます。

5.3.8 認可ポリシーの検索

ポリシー名、プリンシパルまたはターゲットを指定することによって、認可ポリシーを検索できます。認可ポリシーを検索するには、次のようにします。

1. 次の方法から選択して、「ポリシーの検索」ページを表示します。

- ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な名前付きアプリケーション・ノードを開きます。適切なポリシー・ドメインおよびリソース・カタログを開き、「認可ポリシー」をダブルクリックします。
または、「認可ポリシー」を右クリックして、「開く」を選択します。

- 「ホーム」領域で、アプリケーション名を選択し、「認可ポリシー」の下の「検索」をクリックします。(この場合、デフォルトのポリシー・ドメイン内で、検索が行われます。)

図5-11に示すように、「ポリシーの検索」タブが表示されます。

図5-11 ポリシーの検索

2. 「検索条件」リストから、検索タイプを選択します。
問合せパラメータは、選択内容に応じて変わります。オプションには、「ポリシー」、「プリンシパル」または「ターゲット」があります。図5-11は、「ポリシー」が選択された場合のスクリーンショットです。図5-12は、「ターゲット」が選択された場合のスクリーンショットです。

図5-12 ターゲットによるポリシーの検索

3. 前の選択に基づいたオプションを使用して検索します。

- 「検索条件」が「ポリシー」の場合: 次の問合せパラメータを入力します。

- 影響: リストからポリシーの影響(付与/拒否)を選択します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- プリンシパル: リストから演算子を選択し、一致させる文字列を入力します。

- ターゲット: リストから演算子を選択し、一致させる文字列を入力します。

- 「検索条件」が「プリンシパル」または「ターゲット」の場合: リストから演算子を選択し、一致させる文字列を入力します。
「リソース」または「リソース・タイプ」演算子が選択されている場合、リソース・タイプを指定する必要があります。

4. 「検索」をクリックします。
管理コンソールには、Oracle Entitlements Serverを使用して作成した認可ポリシーと同様、Oracle Platform Security Services (OPSS)を使用して作成した、より単純なアプリケーション権限(システム・ポリシー)も表示できます。OPSSアプリケーション権限の表示では、参照、変更および削除のみが可能です。OPSSを使用して作成したアプリケーション権限は、ポリシー名や説明が指定されていません。これらは、プリンシパルおよびターゲットとのみ定義されます。図5-13は、OPSSアプリケーション権限が表示されているOracle Entitlements Server画面のスクリーンショットです。

図5-13 OPSSアプリケーション権限表示画面

「名前」、「表示名」、「説明」の各フィールドは、Oracle Entitlements Serverを使用して作成した認可ポリシーの場合と異なり、表示されないことに注意してください。OPSSアプリケーション権限は、Oracle Entitlements Serverでは削除または変更のみが可能で、作成はできません。アプリケーション権限の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

5.3.9 属性の検索

属性を検索するには、次のようにします。

1. ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な名前付きアプリケーション・ノードを開きます。

2. 「拡張子」を開き、「属性」をダブルクリックして、「属性の検索」ページを表示します。
または、「属性」を右クリックして、「オープン」を選択します。

3. 次の問合せパラメータを入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- タイプ: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

4. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

5. 「検索」をクリックします。

5.3.10 関数の検索

アプリケーション関数を検索するには、次のようにします。

1. ナビゲーション・パネルで、「アプリケーション」および検索に適用可能な名前付きアプリケーション・ノードを開きます。

2. 「拡張子」を開き、「関数」をダブルクリックして、「検索機能」ページを表示します。
または、「関数」を右クリックして、「オープン」を選択します。

3. 次の問合せパラメータを入力します。

- 名前: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

4. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

5. 「検索」をクリックします。

5.3.11 ユーザーの検索

ユーザーを検索するには、次のようにします。

1. 次の方法から選択して、外部ロールの検索ページを表示します。

- ナビゲーション・パネルで、「グローバル」を開き、「ユーザー」をダブルクリックします。(または、「ユーザー」を右クリックして、「開く」を選択します。)

- 「ホーム」領域で、「検索および作成」セクションから「検索 - ユーザー」をクリックします。

2. 次の問合せパラメータを入力します。

- ユーザー名: リストから演算子を選択し、一致させる文字列を入力します。

- 表示名: リストから演算子を選択し、一致させる文字列を入力します。

オプションで、以前に保存した検索の「保存済検索」ドロップダウン・リストから選択します。問合せパラメータは、検索フィールドに自動的に移入します。「パーソナライズ...」を選択して、以前に保存した検索のオプションを設定します。

3. オプションで、「保存...」をクリックして、現在の問合せパラメータを保存済検索として保存します。
この検索は、「保存済検索」リストに追加されます。

4. 「検索」をクリックします。
結果は、「検索結果」に表示されます。

5.4 オブジェクト名の大/小文字の区別の理解

このセクションでは、ポリシー・オブジェクトを定義する大/小文字の区別に関する情報を提供します。次のオブジェクトは大/小文字が区別されます。このリストに含まれていないオブジェクトは大/小文字が区別されません。

- プリンシパル(管理ロールまたはアプリケーション・ロールに定義)

- 付与アクション

- 権限クラス名

- リソース名

- リソース・タイプ

- リソース・アクション

- リソース名式

- リソース・タイプ・リソース・マッチャ

- ポリシー・アクション

- ポリシー権限受領者

ポリシー・オブジェクトの詳細は、第2章「ポリシー・モデルの理解」を参照してください。

6 ポリシー配布の管理

ポリシー配布は、Oracle Entitlements Server管理サーバーから指定されたセキュリティ・モジュールへ構成済のポリシーとポリシー・オブジェクトを配布するプロセスです。ポリシー配布に成功した後は、管理サーバーがオンラインでなくても、データを配布された各セキュリティ・モジュールがアクセス・リクエストを評価できます。ポリシーの評価によって、アクセス・リクエストに対して付与または拒否の認可決定が下されます。この章の内容は次のとおりです。

- 6.1項「配布モードの定義」

- 6.2項「ポリシー配布の理解」

- 6.3項「ポリシーの配布」

- 6.4項「デフォルトまたはサード・パーティのデジタル証明書の使用」

- 6.5項「ポリシー配布のデバッグ」

6.1 配布モードの定義

Oracle Entitlements Serverポリシー配布コンポーネントでは、アプリケーションおよびサービスを保護する個々のセキュリティ・モジュールへのポリシーの配布タスクを処理します。ポリシー・データは、制御された方法または制御されない方法のいずれかで配布されます。配布モードは、各セキュリティ・モジュールに対して、jps-config.xml構成ファイルで定義されます。指定した配布モードは、そのセキュリティ・モジュールにバインドされたすべてのアプリケーション・オブジェクトに適用可能です。詳細は、次の各項を参照してください。

- 6.1.1項「制御された配布」

- 6.1.2項「制御されない配布」

6.1.1 制御された配布

制御された配布は、ポリシー配布コンポーネントによって開始され、最後の配布以降に作成または変更されたポリシー・データをPDPクライアント(セキュリティ・モジュール)が受信することを保証します。この点において、配布は、新規または更新済のポリシー・データを配布するための明示的なアクションを実行する、ポリシー管理者によって制御されます。(ポリシー配布コンポーネントは、ポリシー変更および配布を追跡するバージョニング・メカニズムを維持します。)制御された配布を有効化すると、セキュリティ・モジュールは、ポリシー配布コンポーネントの配布を直接リクエストできません。

注意:

セキュリティ・モジュールが開始し、それ自体を構成IDを持つポリシー配布コンポーネントに登録する場合は例外です。セキュリティ・モジュールにバインドされた適切なアプリケーションが(ポリシーの)配布の準備完了とマークされているかぎり、この登録に基づいてポリシーがセキュリティ・モジュールに配布されます。

制御された配布の場合、ポリシー配布コンポーネントは、ローカルの永続キャッシュ(ポリシー・オブジェクトを格納し、ポリシー・ストアから独立するためにPDPによって維持されているファイルベースのキャッシュ)にデータを格納するセキュリティ・モジュールに、新規または更新済のポリシー・データを配布します。ポリシー配布コンポーネントは、セキュリティ・モジュール・クライアントへの一定のライブ接続を維持しません。ポリシーを配布する前に接続を確立します。そのため、セキュリティ・モジュールは、ポリシーを決定する際にポリシー・ストアに依存しません。ポリシー・ストアがオフラインの場合、それ自体のローカル・キャッシュを使用できます。セキュリティ・モジュールが開始すると、ポリシー・ストアが使用可能かどうかチェックされます。使用不可の場合、セキュリティ・モジュールはローカルの永続キャッシュからポリシー・データを使用します。制御された配布では、ポリシー配布操作が失敗すると、ポリシー配布全体が失敗します。

注意:

制御された配布は、データベース・タイプのポリシー・ストアでのみサポートされ、LDAPベースのポリシー・ストアではサポートされません。LDAPポリシー・ストア用に配布APIが呼び出される場合、それは操作不能になります。

6.1.2 制御されない配布

PDPクライアント(セキュリティ・モジュール)がポリシー・ストアからポリシーおよびポリシー変更を定期的に取得(プル)する場合、これは制御されない配布と呼ばれます。ポリシー変更がポリシー・ストアに保存されるとすぐに、制御されない配布によってポリシー変更が使用可能になります。制御されない配布は、セキュリティ・モジュールによって開始され、完了していないポリシーを取得することがあります。ポリシー・ストアは、オンラインで、制御されない配布に対して常に使用可能である必要があります。制御されない配布は、リレーショナル・データベース、LDAPディレクトリまたはXMLを含む任意のポリシー・ストア・タイプでサポートされます。

6.2 ポリシー配布について

ポリシーの管理とポリシーの配布は、異なる操作です。ポリシー管理操作は、ポリシー・ストア内のポリシーを定義、変更および削除するために使用されます。ポリシー配布コンポーネントは、保護されたリソースへのアクセス権を付与または拒否するためにデータを使用するセキュリティ・モジュールで、ポリシーを使用可能にします。ポリシーは、配布されるまで適用できません。理論的には、ポリシー配布には、次のアクションのいずれかまたはすべてが含まれます。

- ポリシー・ストアからのポリシーの読取り。

- 認可リクエスト処理中に使用するセキュリティ・モジュールによって維持されるメモリー内ポリシー・キャッシュにあるポリシー・オブジェクトのキャッシング。

- ポリシー配布コンポーネントに対してローカルな、ポリシー・ストアから独立したファイルベースの永続キャッシュにあるポリシー・オブジェクトの保存。

中央のOracle Entitlements Server管理コンソールと、(保護されたアプリケーションに)ローカルにインストールされたセキュリティ・モジュールの両方に、ポリシー配布コンポーネントコンポーネントが含まれます。このアーキテクチャによって、次の2つのデプロイメント・シナリオが認められます。1つ目は、多くのセキュリティ・モジュールと通信できる集中ポリシー配布コンポーネントに関係し、2つ目は、1つのセキュリティ・モジュールに対してのみローカルで、1つのセキュリティ・モジュールとのみ通信するポリシー配布コンポーネントに関係します。

注意:

ポリシー配布用のセキュリティ・モジュール・パラメータの構成の詳細は、A.1項「ポリシー配布構成」を参照してください。定義の作成およびセキュリティ・モジュールのバインドの詳細は、10.2項「セキュリティ・モジュール定義の構成」を参照してください。

次の各項では、詳細を説明します。

- 6.2.1項「集中ポリシー配布コンポーネントの使用」

- 6.2.2項「ローカル・ポリシー配布コンポーネントの使用」

6.2.1 集中ポリシー配布コンポーネントの使用

集中ポリシー配布コンポーネント・シナリオは、セキュリティ・モジュールのポリシー配布コンポーネント・クライアントと通信するサーバーとして機能する、(管理コンソール内の)ポリシー配布コンポーネントの使用に関係します。図6-1は、このシナリオで、セキュリティ・モジュールのポリシー配布コンポーネント・クライアントがポリシー・ストアと通信しない方法を示します。ポリシーの配布は、Oracle Entitlements Server管理者によって開始され、ポリシー配布コンポーネント・クライアントにプッシュされます。現在、6.1.1項「制御された配布」で説明しているように、制御された方法でのみデータをプッシュできます。このシナリオでは、多くのセキュリティ・モジュールと通信できる集中ポリシー配布コンポーネントが許可されます。

図6-1 Oracle Entitlements Serverポリシー配布コンポーネントの使用

6.2.2 ローカル・ポリシー配布コンポーネントの使用

ローカルの(セキュリティ・モジュールへの)シナリオは、ポリシー・ストアと直接通信するセキュリティ・モジュールのポリシー配布コンポーネントに関係します。このシナリオでは、ローカルのポリシー配布コンポーネントは、1つのセキュリティ・モジュールのみと通信できます。アプリケーションは、管理操作を管理し、ポリシー配布コンポーネントのセキュリティ・モジュール・インスタンスがポリシーまたはポリシー・デルタを配布するタイミングを決定します。このデプロイメントでは、図6-2に示すように、ポリシー配布コンポーネントは、(配布されるデータがあるかポリシー・ストアを定期的にチェックすることによって、)ポリシー・ストアからデータをプルし、ポリシー・ストアからポリシー・データを送信して、管理者が開始したポリシー配布の後にPDPに対して使用可能にします。

図6-2 セキュリティ・モジュール・ポリシー配布コンポーネントの使用

現在、6.1.1項「制御された配布」で説明しているような制御された方法、または、6.1.2項「制御されない配布」で説明しているような制御されない方法のいずれかで、データをプルできます。

6.3 ポリシーの配布

上位レベルから、ポリシーを配布できるポイント到達するように、次の手順を実行する必要があります。これらの手順を(管理コンソールまたはAPIから)使用してポリシーを配布する方法は、制御された配布でのみ有効です。制御されない配布用に構成されたセキュリティ・モジュールは、ポリシー・ストアから直接ポリシー・データを取得するので、明示的な配布は必要ありません。

1. セキュリティ・モジュール定義を作成します。
10.2.1項「セキュリティ・モジュール定義の作成」を参照してください。

2. 定義を適切なアプリケーションにバインドします。
10.2.2項「セキュリティ・モジュールへのアプリケーションのバインド」を参照してください。セキュリティ・モジュールをバインド解除するには、10.2.3項「セキュリティ・モジュールからのアプリケーションのバインド解除」を参照してください。

3. 「ホーム」領域でアプリケーションを開きます。
6.3.1項「管理コンソールを使用したポリシーの配布」を参照してください。

4. ポリシーを配布します。
6.3.1項「管理コンソールを使用したポリシーの配布」を参照してください。

6.3.1 管理コンソールを使用したポリシーの配布

ポリシーは、アプリケーション内から配布されます。次の手順では、管理コンソールを使用したポリシーの配布方法を説明します。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 配布するポリシーが含まれるアプリケーションを選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
「一般」タブ、委任管理者タブおよびポリシー配布タブはすべてアクティブです。

4. ポリシー配布タブをクリックします。

5. 「配布」をクリックします。
ポリシーは、アプリケーションにバインドされているすべてのセキュリティ・モジュールに配布されます。

6. 「リフレッシュ」をクリックして、配布の進行状況を更新します。

6.4 デフォルトまたはサード・パーティのデジタル証明書の使用

Secure Sockets Layer (SSL)は、公開鍵暗号化テクノロジを使用して、サーバーのアイデンティティと信頼を確立および確認します。公開鍵暗号化では、サーバーの公開鍵と秘密鍵が生成されます。公開鍵で暗号化されたデータは対応する秘密鍵でのみ復号化でき、秘密鍵で暗号化されたデータは対応する公開鍵でのみ復号化できます。秘密鍵は、その所有者のみが公開鍵で暗号化されたメッセージを復号化できるように保護されます。公開鍵は、公開鍵の所有者を示す他の情報(名前、住所および電子メール・アドレスなど)とともにデジタル証明書に埋め込まれています。

注意:

デジタル証明書に埋め込まれたデータは、認証局(CA)によって検証され、信頼できるCAのデジタル証明書を使用して署名されています。信頼できるCAのデジタル証明書により、アプリケーションのデジタル証明書自体の信頼が確立されます。

SSL接続に参加しているアプリケーションは、そのデジタル証明書を相手が評価して受け入れた場合に認証されます。Webブラウザ、サーバーおよび他のSSL対応アプリケーションは一般に、信頼できる認証局によって署名されるか、または他の方法で有効とされているデジタル証明書を本物として受け入れます。

セキュリティ・モジュール・インスタンスを作成する際に(詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照)、デフォルトのOracle Entitlements Serverセキュリティ・モジュール(クライアント)デジタル証明書はyour_oes_sm_folder/oes_sm_instances/your_oes_sm/security/identity.jksに格納され、信頼できる認証局(CA)デジタル証明書はyour_oes_sm_folder/oes_sm_instances/your_oes_sm/security/trust.jksに格納されます。どちらも、セキュリティ・モジュール・インスタンスの作成中に定義されたパスワードが設定されているJavaキーストアです。このパスワードは、暗号化されて、標準Oracleウォレットに(自動ログオンで)格納されます。デフォルトのOracle Entitlements Serverクライアント・キーは、それ自体によって生成され、登録プロセス中に署名されます。次の各項では、サード・パーティ証明書を適用可能なセキュリティ・モジュールで使用する方法について説明します。

- 6.4.1項「WebLogic Serverセキュリティ・モジュールによるサード・パーティ証明書の使用」

- 6.4.2項「WebサービスまたはJavaのセキュリティ・モジュールによるサード・パーティ証明書の使用」

- 6.4.3項「WebSphere Application Serverセキュリティ・モジュールによるサード・パーティ証明書の使用」

- 6.4.4項「TomcatまたはJBossのセキュリティ・モジュールによるサード・パーティ証明書の使用」

注意:

デフォルトでは、WebLogic Serverのインストール時にDemoIdentity.jksとDemoTrust.jksがそれぞれアイデンティティ・ストアとトラスト・ストアとして作成および使用されます。これらのストアの場所へのフルパスは、WebLogic Serverコンソールで確認できます。トラスト・ストアのデフォルトのパスワードは、DemoTrustKeyStorePassPhraseです。

6.4.1 WebLogic Serverセキュリティ・モジュールによるサード・パーティ証明書の使用

次の手順では、WebLogic Serverセキュリティ・モジュールでサード・パーティ証明書を使用する方法を説明します。

1. 次のコマンドを使用して、サード・パーティにより生成された証明書をWebLogic Serverトラスト・ストアにインポートします。

keytool -import -alias keyAlias -file cert_file -keystore ./DemoTrust.jks
-storepass DemoTrustKeyStorePassPhrase -storetype JKS -keypass password

WebLogic Serverでは、DemoIdentity.jksとDemoTrust.jksがそれぞれデフォルトのアイデンティティ・ストアとトラスト・ストアとして使用されます。

2. keytoolコマンドライン・インタフェースを使用して、管理CA証明書をクライアント・トラスト・ストアにインポートします。
次のコマンドにより、デフォルトのトラスト・ストアのCA証明書をクライアント・トラスト・ストアにインポートします。クライアント・トラスト・ストアへの絶対パスは、WebLogic管理コンソールで定義されています。コマンドのパラメータは、デプロイメントに合わせて変更します。

keytool -importkeystore -srckeystore ./DemoTrust.jks
-destkeystore yourTrustStore -srcstorepass DemoTrustKeyStorePassPhrase
-deststorepass passwordForYourTrustStore
-srcalias wlscertgencab -destalias wlscertgencab

デフォルトのトラスト・ストアを使用する場合は、この手順を実行する必要はありません。

3. WebLogic ServerドメインでWebLogic Server管理コンソールを使用して、適切なセキュリティ・モジュール用にサード・パーティ・キーストアを構成します。

1. 管理コンソールの左ペインで、「環境」を開き、「サーバー」を選択します。

2. アイデンティティ・キーストアおよび信頼キーストアを構成するサーバーの名前をクリックします。

3. 「構成」→「キーストア」をクリックします。

4. 「キーストア」フィールドで、秘密鍵/デジタル証明書のペアおよび信頼できるCA証明書を格納および管理する方法を選択します。使用可能なオプションは、表6-1を参照してください。

表6-1 証明書オプションの格納と管理

デモIDとデモ信頼: デモ用のIDキーストアと信頼キーストア(WLS_HOME\server\libディレクトリに存在)およびJDK cacertsキーストア(JAVA_HOME\jre\libディレクトリに存在)がデフォルトで構成されます。開発目的にのみ使用してください。

カスタムIDとJava標準信頼: ユーザーが作成するキーストア、およびcacertsファイル(JAVA_HOME\jre\libディレクトリに存在)ディレクトリで定義されている信頼できるCAが構成されます。

カスタムIDとカスタム信頼: ユーザーが作成するアイデンティティ・キーストアおよび信頼キーストアが構成されます。

カスタムIDとコマンドライン信頼: ユーザーが作成するアイデンティティ・キーストア、および信頼キーストアの場所を指定するコマンドライン引数が構成されます。

5. 「ID」セクションで、アイデンティティ・キーストア属性の値を定義します。表6-2に属性を定義します。

表6-2 アイデンティティ・キーストア属性の使用

カスタムIDキーストア: IDキーストアへの絶対パスです。

カスタムIDキーストアのタイプ: キーストアのタイプです。一般に、この属性はJavaキーストア(JKS)を定義します。空白のままにすると、デフォルトでJKSを定義します。

カスタムIDキーストアのパスフレーズ: キーストアの読取りまたは書込み時に入力するパスワードです。この属性は、キーストアのタイプに応じてオプションまたは必須になります。すべてのキーストアではキーストアへの書込みにパスフレーズが必要ですが、一部のキーストアではキーストアからの読取りにパスフレーズは不要です。WebLogic Serverはキーストアからのみ読取りを行うため、このプロパティを定義するかどうかは、キーストアの要件によって異なります。

注意: デモ用IDキーストアのパスフレーズは、DemoIdentityKeyStorePassPhraseです。

6. 「信頼」セクションで、信頼キーストア属性の値を定義します。
キーストアとしてJava標準信頼を選択した場合(表6-1を参照)、キーストアの作成時に定義したパスワードを指定し、確認します。カスタム信頼を選択した場合は、表6-3で説明されている属性を定義します。

表6-3 信頼キーストア属性の使用

「カスタム信頼キーストア」: 信頼キーストアの完全修飾パス。

「カスタム信頼キーストアのタイプ」- キーストアのタイプ。一般に、この属性にはJKSを指定します。空白のままにすると、デフォルトでJKSに設定されます。

カスタム信頼キーストアのパスフレーズ: キーストアの読取りまたは書込み時に入力するパスワード。この属性は、キーストアのタイプに応じてオプションまたは必須になります。すべてのキーストアでは、キーストアへの書込みにパスフレーズが必要です。ただし、一部のキーストアでは、キーストアからの読取りにパスフレーズは不要です。WebLogic Serverはキーストアからのみ読取りを行うため、このプロパティを定義するかどうかは、キーストアの要件によって異なります。

7. 「保存」をクリックします。

8. 管理コンソールの「チェンジ・センター」で、「変更のアクティブ化」をクリックします。
変更内容によってはサーバーを再起動する必要があります。

6.4.2 WebサービスまたはJavaのセキュリティ・モジュールによるサード・パーティ証明書の使用

次の手順では、WebサービスまたはJavaのセキュリティ・モジュールでサード・パーティ証明書を使用する方法を説明します。

1. 次のコマンドを使用して、サード・パーティにより生成された証明書を管理トラスト・ストアにインポートします。

keytool -import -alias keyAlias -file cert_file -keystore ./DemoTrust.jks
-storepass DemoTrustKeyStorePassPhrase -storetype JKS -keypass password

管理サーバーでは、デフォルトではDemoIdentity.jksとDemoTrust.jksがそれぞれデフォルトのアイデンティティ・ストアとトラスト・ストアとして使用されます。

2. keytoolコマンドライン・インタフェースを使用して、管理CA証明書をクライアント・トラスト・ストアにインポートします。
次のコマンドにより、デフォルトのトラスト・ストアのCA証明書をクライアント・トラスト・ストアにインポートします。クライアント・トラスト・ストアへの絶対パスは、WebLogic管理コンソールで定義されています。コマンドのパラメータは、デプロイメントに合わせて変更します。

keytool -importkeystore -srckeystore ./DemoTrust.jks
-destkeystore yourTrustStore -srcstorepass DemoTrustKeyStorePassPhrase
-deststorepass passwordForYourTrustStore
-srcalias wlscertgencab -destalias wlscertgencab

デフォルトのトラスト・ストアを使用する場合は、この手順を実行する必要はありません。

3. 次のプロパティをjps-config.xmlで構成します。

- oracle.security.jps.pd.client.ssl.identityKeyStoreFileName

- oracle.security.jps.pd.client.ssl.trustKeyStoreFileName

- oracle.security.jps.pd.client.ssl.identityKeyStoreKeyAlias

詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

4. 適切なSM-instance/binディレクトリでoesPassword.shを実行して、トラスト・ストアのパスワード、キーストアのパスワードおよび鍵のパスワードを資格証明ストアに保存します。

- トラスト・ストア、キーストアおよび鍵のすべてで同一のパスワードを使用する場合、./oesPassword.shを実行します。

- トラスト・ストア、キーストアおよび鍵のすべてで異なるパスワードを使用する場合、./oesPassword.sh -diffpassを実行します。identity.jksキーストア、trust.jksトラスト・ストアおよび鍵のパスワードを入力(および確認)するように要求されます。

デフォルトのキーストア(アイデンティティ・ストア)、キーストアに入力されているそれぞれの鍵、およびデフォルトのトラスト・ストアは、パスワードとしてwelcome1を使用します。

6.4.3 WebSphere Application Serverセキュリティ・モジュールによるサード・パーティ証明書の使用

次の手順では、WebSphere Application Serverセキュリティ・モジュールでサード・パーティ証明書を使用する方法を説明します。

1. 次のコマンドを使用して、サード・パーティにより生成された証明書を管理トラスト・ストアにインポートします。

keytool -import -alias keyAlias -file cert_file -keystore ./DemoTrust.jks
-storepass DemoTrustKeyStorePassPhrase -storetype JKS -keypass password

管理サーバーでは、デフォルトではDemoIdentity.jksとDemoTrust.jksがそれぞれデフォルトのアイデンティティ・ストアとトラスト・ストアとして使用されます。

2. keytoolコマンドライン・インタフェースを使用して、管理CA証明書をクライアント・トラスト・ストアにインポートします。
次のコマンドにより、デフォルトのトラスト・ストアのCA証明書をクライアント・トラスト・ストアにインポートします。クライアント・トラスト・ストアへの絶対パスは、WebLogic管理コンソールで定義されています。コマンドのパラメータは、デプロイメントに合わせて変更します。

keytool -importkeystore -srckeystore ./DemoTrust.jks
-destkeystore yourTrustStore -srcstorepass DemoTrustKeyStorePassPhrase
-deststorepass passwordForYourTrustStore
-srcalias wlscertgencab -destalias wlscertgencab

デフォルトのトラスト・ストアを使用する場合は、この手順を実行する必要はありません。

3. WebSphere Application Serverコンソール(servername:port/ibm/console)を使用して、サード・パーティ・キーストアとトラスト・ストアを構成します。
IBM WebSphereセキュリティ・モジュール自体の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

1. keytoolコマンドライン・インタフェースを使用して、WebLogic ServerのDemoTrust.jksキーストアまたはOracle Entitlements Serverのtrust.jksを.DERファイルにエクスポートします。

keytool -exportcert -keystore yourtruststore -alias wlscertgencab
-file ~/was.der

2. 生成されるwas.derファイルをWebSphereのデフォルトの信頼キーストアおよびセルのデフォルトの信頼キーストアの各ノードにインポートします。

1. 「Security」→「SSL certificate and key management」→「Key stores and certificates」に移動し、適切な名前<NodeDefaultTrustStore>または<CellDefaultTrustStore>を選択し、「Signer certificates」に移動して、WebSphere Administration Serverコンソールの「Signer certificates」ページにアクセスします。

2. 「Add」をクリックして、別名(たとえばwlscertgencab)を入力します。

3. エクスポート済のwas.derファイルを選択し、データ型にDERを選択します。

3. 発行済の秘密鍵をIBM WebSphereノードのデフォルト・キーストアにインポートします。

1. 「Security」→「SSL certificate and key management」→「Key stores and certificates」→「NodeDefaultKeyStore」→「Personal certificates」に移動して、WebSphere Administration Serverコンソールの「Personal certificates」ページにアクセスします。

2. 「Import」をクリックします。

3. 「Keystore」を選択し、キーストア・ファイルへのパスを入力します。

4. タイプに「JKS」を選択し、キーストア・ファイルの作成に使用したパスワードを入力します。

5. 証明書別名を入力します。

4. WebSphereセキュリティ・モジュールが実行されているサーバーに対するインバウンドSSLを有効化します。

1. 「Security」→「SSL certificate and key management」→「Manage endpoint security configurations」に移動して、WebSphere Administration Serverコンソールの「Manage endpoint security configurations」ページにアクセスします。

2. 「Inbound」→「DefaultCell(CellDefaultSSLSettings)」→「nodes」→「DefaultCellFederatedNode」→「servers」に移動してインバウンド・ツリーを開き、IBM WebSphereセキュリティ・モジュールが実行されているサーバー名を選択します。

3. 「General Properties」ページで「Override inherited values」を選択します。

4. SSL構成リストから「NodeDefaultSSLSettings」を選択します。

5. 「Certificate alias」で新規インポート済の秘密鍵の別名を選択します。
詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

6. 「適用」をクリックします。

5. WebSphereセキュリティ・モジュールが実行されているサーバーに対するアウトバウンドSSLを有効化します。

1. 「Security」→「SSL certificate and key management」→「Manage endpoint security configurations」に移動して、WebSphere Administration Serverコンソールの「Manage endpoint security configurations」ページにアクセスします。

2. 「Outbound」→「DefaultCell(CellDefaultSSLSettings)」→「nodes」→「DefaultCellFederatedNode」→「servers」に移動してアウトバウンド・ツリーを開き、IBM WebSphereセキュリティ・モジュールが実行されているサーバー名を選択します。

3. 「General Properties」ページで「Override inherited values」を選択します。

4. SSL構成リストから「NodeDefaultSSLSettings」を選択します。

5. 「Update certificate alias list」ボタンをクリックし、「Certificate alias from the key store」リストで新規インポート済の秘密鍵の別名を選択します。

6. 「適用」をクリックします。

6.4.4 TomcatまたはJBossのセキュリティ・モジュールによるサード・パーティ証明書の使用

次の手順では、Tomcat Application ServerまたはJBoss Application Serverのセキュリティ・モジュールでサード・パーティ証明書を使用する方法を説明します。

1. 次のコマンドを使用して、サード・パーティにより生成された証明書を管理トラスト・ストアにインポートします。

keytool -import -alias keyAlias -file cert_file -keystore ./DemoTrust.jks
-storepass DemoTrustKeyStorePassPhrase -storetype JKS -keypass password

管理サーバーでは、デフォルトではDemoIdentity.jksとDemoTrust.jksがそれぞれデフォルトのアイデンティティ・ストアとトラスト・ストアとして使用されます。

2. keytoolコマンドライン・インタフェースを使用して、管理CA証明書をクライアント・トラスト・ストアにインポートします。
次のコマンドにより、デフォルトのトラスト・ストアのCA証明書をクライアント・トラスト・ストアにインポートします。クライアント・トラスト・ストアへの絶対パスは、WebLogic管理コンソールで定義されています。コマンドのパラメータは、デプロイメントに合わせて変更します。

keytool -importkeystore -srckeystore ./DemoTrust.jks
-destkeystore yourTrustStore -srcstorepass DemoTrustKeyStorePassPhrase
-deststorepass passwordForYourTrustStore
-srcalias wlscertgencab -destalias wlscertgencab

デフォルトのトラスト・ストアを使用する場合は、この手順を実行する必要はありません。

3. server.xmlファイルでSSLコネクタのkeystoreFileプロパティとtruststoreFileプロパティを設定します。次のものが含まれます。

- keystoreFile: キーストアの場所

- keystorePass: キーストアのパスワード

- keyAlias: キーストアの証明書の別名

- keyPass: 証明書の別名のパスワード

- truststoreFile: トラスト・ストアの場所

- truststorePass: トラスト・ストアのパスワード

Tomcat Application Serverセキュリティ・モジュールの場合、server.xmlはTOMCAT_HOME/conf/ディレクトリにあります。JBoss Application Serverセキュリティ・モジュールの場合、使用するプロファイルに応じて場所が異なり、たとえばJBOSS_HOME/server/jbossProfileName/deploy/jbossweb.sar/server.xmlにあります。

6.5 ポリシー配布のデバッグ

ポリシー配布コンポーネントのデバッグの詳細は、13.8.3項「ポリシー配布のデバッグ」を参照してください。

7 ポリシー決定ポイントのデプロイ

この章では、ポリシー決定ポイント(PDP)がデプロイされる理由および方法について説明します。この章には次の項目があります。

- 7.1項「PDPデプロイメント・モデルの理解」

- 7.2項「セキュリティ・モジュールのプロキシ・モードの使用」

- 7.3項「XACMLゲートウェイの使用」

7.1 PDPデプロイメント・モデルについて

Oracle Entitlements Serverでは、アクセス・リクエストを評価する場所に応じてポリシー決定ポイント(PDP)の配置が異なる様々なデプロイメント・モデルがサポートされています。たとえば、Javaクライアントには、アプリケーションに埋め込まれたセキュリティ・モジュールをローカル・コールするオプションおよびプロキシ経由でRemote Method Invocation (RMI)またはWebサービスのセキュリティ・モジュールをリモート・コールするオプションがあります。これらのモデルは、相互に排他的ではないので、任意に組み合せることができます。

PDPは、アプリケーションにローカルに埋め込んだり、他の(アプリケーション以外の)場所にインストールしてリモート通信したりできます。リアルタイムまたはほぼリアルタイムのアプリケーション(それぞれ株式取引アプリケーションまたは銀行アプリケーション)では通常、応答時間を短くするために埋込みモデル(セキュリティ・モジュールが分散されるモデル)が使用されます。また、アプリケーションをオフライン(バック・エンドに接続されていない)で実行する必要がある場合もこれを使用する必要があります。PDPの数を最小化する必要がある場合またはセキュリティ上の懸念によりPDPをアプリケーションに隣接してデプロイすることができない場合(DMZ内など)は、リモートPDP(中央にある1つのセキュリティ・モジュールが複数のクライアントとの共通機能として提供される)を使用できます。また、リモート起動に伴うオーバーヘッドが許容される場合またはJava以外のプログラミング言語(C、C++、C#)で記述されたアプリケーションからPDPが起動される場合に使用できます。

注意:

プロキシ・モードは、認可リクエストをリモートPDPに送信するようにセキュリティ・モジュールを構成する場合に使用します。これは、アクセス・リクエストを発行してGRANTまたはDENYの決定を受信する機能を提供します。7.2項「セキュリティ・モジュールのプロキシ・モードの使用」を参照してください。

次の各項では、追加情報を提供します。

- 7.1.1項「PDPのローカルな埋込み」

- 7.1.2項「PDPのリモートへの配置」

7.1.1 PDPのローカルな埋込み

分散デプロイメント・モデルでは、セキュリティ・モジュール/PDPは、保護されたアプリケーションのコンテナ内に埋め込まれ、同一プロセスで実行されます。ポリシーはセキュリティ・モジュールに配布され、認可決定はローカルに下されてキャッシュされるので、中央のサーバーへのネットワーク・コールは必要ありません。また、アプリケーション自体を変更する必要はありません。典型的な埋込みPDPデプロイメントを図7-1に示します。

図7-1 PDPの埋込みデプロイメント

7.1.2 PDPのリモートへの配置

集中デプロイメント・モデルでは、PDPが実行されるプロセスは、保護されたアプリケーションとは別のプロセスであり、保護されたリソースから離れた場所でホストされています。中央のPDP (Oracle Entitlements Serverまたはセキュリティ・モジュール)は、複数のクライアントから認可リクエストを受信し、適切なポリシーを評価して、認可決定(GRANTまたはDENY)をPEPに返して実行します。図7-2は、この集中デプロイメント・モデルを示します。

図7-2 PDPのリモート・デプロイメント

中央のPDPは、XACMLゲートウェイ、RMIまたはSOAPを使用して起動されます。そこには、ロール、ポリシー、ポリシー決定および属性のローカル・キャッシュが維持され、要求時または起動時に更新されます。

7.2 セキュリティ・モジュールのプロキシ・モードの使用

Oracle Entitlements Serverでは、クライアントが認可サービスをリモートで起動できるプロキシ・モードがサポートされます。アプリケーションでOracle Entitlements Server PEP APIによって認可コールが実行されると、アプリケーションのホスト上に、(別のマシン上の)リモート・セキュリティ・モジュールと通信してアクセス決定を要求するプロキシを設定できます。WebサービスまたはRemote Method Invocation (RMI)は、プロキシの通信オプションです。図7-3に、このトポロジを示します。

図7-3 プロキシ・モード・デプロイメント

アプリケーションからのOracle Entitlements Server PEP APIコールは、コール対象が埋込みPDPまたはリモートPDPのどちらであるかに関係なく、実行できます。プロキシ・モードは、セキュリティ・サービス(認可キャッシュ、ロギングおよびフェイルオーバーを含む)をローカルに提供するように構成でき、RMIまたはSOAPを使用してPDPと通信できます。

7.3 XACMLゲートウェイの使用

XACMLゲートウェイは、Webサービス機能を使用し、XACMLリクエスト/レスポンス・プロトコルによる通信を実現するSOAPエンドポイントです。XACMLゲートウェイは(クライアントではなく)PDPとともに存在し、Webサービス・セキュリティ・モジュールをインスタンス化することによって使用できます。XACMLゲートウェイを使用するために、特別な構成は必要ありません。Webサービス・セキュリティ・モジュールは、クライアントにローカルにインスタンス化された場合は、Webサービス・コールを使用します。そのエンドポイントでSOAPエンベロープを受信すると、XACMLゲートウェイを使用します。図7-4に、XACMLゲートウェイ・デプロイメントを示します。

図7-4 XACMLゲートウェイ・デプロイメント

注意:

アプリケーションがXACMLリクエスト/レスポンス・プロトコルを使用している場合、PEP APIは使用しません。

8 セキュリティ・モジュールの構成の管理

セキュリティ・モジュール構成ユーザー・インタフェース(SMConfig UI)は、OESクライアントが正常にインストールされ、セキュリティ・モジュール・タイプがインスタンス化された後に、セキュリティ・モジュールを構成するために使用します。基本構成はインストール・プロセスおよびインスタンス化プロセスで実行されますが、SMConfig UIでは詳細な構成を実行したり、セキュリティ・モジュール・プロファイルを変更したりできます。この章の内容は次のとおりです。

- 8.1項「始める前に」

- 8.2項「SMConfig UIの起動」

- 8.3項「セキュリティ・モジュールの構成の変更」

- 8.4項「セキュリティ・モジュールのインスタンス化後の構成」

- 8.5項「RMIまたはWebサービスのPDPプロキシ・クライアントの構成」

8.1 始める前に

SMConfig UIでは、次のOracle Entitlements Serverインストール手順が完了済であることを前提としています。

- Oracle Entitlements Serverのインストールの詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

- OESクライアントのインストールおよびセキュリティ・モジュールのインスタンス化の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

OESクライアントにより、セキュリティ・モジュール・ビットとSMConfigツールがインストールされます。SMConfigツールでは、セキュリティ・モジュール・タイプを定義し、セキュリティ・モジュール・インスタンスごとのディレクトリ構造を作成します。インスタンスのホーム・ディレクトリが$OES_CLIENT_HOME/oes_sm_instances/SM_Name/に作成されます。ここには、該当するセキュリティ・モジュールSMConfig UIスクリプトを実行するために使用する構成ファイルがあります。oessmconfig.shとoessmconfig.batはセキュリティ・モジュール・インスタンスのホーム・ディレクトリの/binディレクトリにあります。

注意:

Oracle Entitlements Server 11gR2以降は、セキュリティ・モジュールをFusion Middlewareドメインのバージョン11gR1 PS5 (11.1.1.6.0)以降にインストールできます。また、Oracle Entitlements Serverセキュリティ・モジュールがJRFドメインにインストールされている場合は、非制御モードのみがサポートされます。

8.2 SMConfig UIの起動

SMConfig UIは、OESクライアント・インストール・パッケージで配布されるJavaベースのスタンドアロン・ツールです。このツールでは、各種のデータの中でも特に、ポリシー決定ポイント(PDP)、ポリシー情報ポイント(PIP)およびポリシー・ストアを構成します。SMConfig UIスクリプトは、セキュリティ・モジュールをインスタンス化する際に作成されるディレクトリ($OES_CLIENT_HOME/oes_sm_instances/SM_Name/bin/など)にあります。

注意:

SMConfig UIスクリプトは、SMConfigツールを終了した後にのみ実行されます。詳細は、8.1項「始める前に」を参照してください。

SMConfig UIスクリプトの名前は、Linux環境ではoessmconfig.sh、Windows環境ではoessmconfig.batです。SMConfig UIを起動するには、適切なセキュリティ・モジュール・インスタンスのディレクトリのbinディレクトリに変更して、コマンドラインから次のスクリプトを実行します。

cd $OES_CLIENT_HOME/oes_sm_instances/SM_Name/bin/
./oessmconfig.sh

SMConfig UIは、セキュリティ・モジュールと同じホストで実行されます。このスクリプトにより、セキュリティ・モジュールのjps-config.xmlファイルが変更されます。jps-config.xmlの場所は、最初にセキュリティ・モジュールを作成するときに、入力パラメータとして指定できます。このパラメータが指定されない場合、(セキュリティ・モジュールのホーム・ディレクトリ$OES_CLIENT_HOME/oes_sm_instances/SM_Name/configにある)デフォルト・ファイルが使用されます。

注意:

WebLogic Serverセキュリティ・モジュールの場合は、oessmconfig.shの使用時に、user_projects/domains/domain_name/config/oeswlssmconfig/AdminServerの下にあるjps-config.xmlファイルを指定します。ファイルの場所は、-jpsconfigパラメータを使用して、ツールに渡します。詳細は、次のコマンドを入力してください。

./oessmconfig.sh -help

図8-1は、Javaセキュリティ・モジュールのSMConfig UIのスクリーンショットです。

図8-1 Javaセキュリティ・モジュールのSMConfig UI

セキュリティ・モジュール・タイプに応じて、次の一部またはすべてを構成する可能性があります。

- 非制御モードでインストールされている場合、「ポリシー・ストア・タイプ」としてLDAP、Oracle DBまたはXMLのいずれかを構成します。

- データベースの場合、場所のURLとデータベース資格証明を定義して、データベースへの接続を確認します。

- LDAPストアの場合、場所のURLとLDAP資格証明を定義して、LDAPへの接続を確認します。

- 制御プッシュ・モードでインストールされている場合、ポリシー配布のホスト、配布ポート、リスナー・ポート、ユーザー名およびパスワードを構成します。

- プロキシ・モードでインストールされている場合、通信プロトコルおよびセキュリティ・モジュールのホストと配布ポイントを構成します。

8.3 セキュリティ・モジュールの構成の変更

管理者は、SMConfig UIを使用して、特定のセキュリティ・モジュール・インスタンス化のパラメータ値を細かく調整できます。これには、次のパラメータ・グループが含まれます。

- PIPパラメータは、属性リトリーバによって使用される情報です。PIPパラメータの変更には、事前定義済LDAP属性リトリーバ、事前定義済RDBMS属性リトリーバおよびカスタム属性リトリーバの値および特定の属性リトリーバによる作成および関連付けが可能な個別の属性の値の管理が含まれます。詳細は、表8-5「Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)」および表8-6「Javaセキュリティ・モジュールのPIPパラメータ(属性)」を参照してください。

注意:

セキュリティ・モジュールがプロキシ・モードで構成されている場合、PIPパラメータの変更は無効です。

- セキュリティ・モジュールのパラメータの多くは、特定のセキュリティ・モジュール・タイプに合わせて調整されます。これらのパラメータの詳細は、A.2項「セキュリティ・モジュール構成」を参照してください。

- ポリシー配布に関するパラメータの詳細は、次の項を参照してください。

- 非制御モードでポリシーを配布する場合、A.4項「ポリシー・ストア・サービス構成」を参照してください。

- 制御プッシュ・モードでJava、RMIまたはWebサービスのセキュリティ・モジュールにポリシーを配布する場合、A.1.2.1項「ポリシー配布コンポーネントのクライアントJava Standard Edition構成(制御プッシュ・モード)」を参照してください。

- 制御プッシュ・モードでWebLogic Server、WebSphere Application Server、JBossまたはTomcatのセキュリティ・モジュールにポリシーを配布する場合、A.1.2.2項「ポリシー配布コンポーネントのクライアントJava Enterprise Editionコンテナ構成(制御プッシュ・モード)」を参照してください。

- 制御プル・モードでポリシーを配布する場合、A.4項「ポリシー・ストア・サービス構成」を参照してください。

- プロキシ・モードを有効にする場合、oracle.security.jps.pdp.PDPTransportパラメータの指定を伴います。プロキシ・モード・パラメータについては、A.3項「PDPプロキシ・クライアントの構成」を参照してください。

注意:

SMConfig UIでは、セキュリティ・モードのタイプを変更できません。別のセキュリティ・モジュール・タイプを作成するには、SMConfigツールを実行して新しいセキュリティ・モジュール・インスタンスを作成します。

8.4 セキュリティ・モジュールのインスタンス化後の構成

次の各項では、セキュリティ・モジュール・タイプに固有で、インスタンス化後に変更可能なパラメータについて説明します。詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

- 8.4.1項「Javaセキュリティ・モジュールの構成」

- 8.4.2項「RMIセキュリティ・モジュールの構成」

- 8.4.3項「Webサービス・セキュリティ・モジュールの構成」

- 8.4.4項「WebLogic Serverセキュリティ・モジュールの構成」

- 8.4.5項「SharePoint Server (MOSS)セキュリティ・モジュールの構成」

- 8.4.6項「.NETセキュリティ・モジュールの構成」

- 8.4.7項「WebSphere、TomcatおよびJBossのセキュリティ・モジュールの構成」

- 8.4.8項「Oracle Service Busセキュリティ・モジュールの構成」

8.4.1 Javaセキュリティ・モジュールの構成

表8-1では、Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成プロパティについて説明します。

表8-1 Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成

プロパティ名

jps-config.xmlのプロパティ

* SM名

oracle.security.jps.runtime.pd.client.sm_name

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.policyDistributionMode

クライアント構成

- ローカル・ポリシー作業フォルダ: oracle.security.jps.runtime.pd.client.localpolicy.work_folder

- 増分配布: oracle.security.jps.runtime.pd.client.incrementalDistribution

- 登録再試行間隔: oracle.security.jps.runtime.pd.client.registrationRetryInterval

- 配布待機時間: oracle.security.jps.runtime.policyDistributionWaitTime

- * 登録サーバーURL: oracle.security.jps.runtime.pd.client.RegistrationServerURL

- バックアップ登録サーバーURL: oracle.security.jps.runtime.pd.client.backupRegistrationServerURL

- * 配布サービス・ポート: oracle.security.jps.runtime.pd.client.DistributionServicePort

- * SSLモード: oracle.security.jps.pd.client.sslMode

- * SSLアイデンティティ・キー・ストア・ファイル名: oracle.security.jps.pd.client.ssl.identityKeyStoreFileName

- * SSL信頼キー・ストア・ファイル名: oracle.security.jps.pd.client.ssl.trustKeyStoreFileName

- SSLアイデンティティ・キー・ストア・キー別名: oracle.security.jps.pd.client.ssl.identityKeyStoreKeyAlias

表8-2では、Javaセキュリティ・モジュールの制御プル・クライアントの構成プロパティについて説明します。構成プロパティは「クライアント構成」タブと「ポリシー・ストア」タブに編成されています。

表8-2 Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成

プロパティ名

jps-config.xmlのプロパティ

* SM名

oracle.security.jps.runtime.pd.client.sm_name

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.policyDistributionMode

クライアント構成

- ローカル・ポリシー作業フォルダ: oracle.security.jps.runtime.pd.client.localpolicy.work_folder

- 増分配布: oracle.security.jps.runtime.pd.client.incrementalDistribution

- 登録再試行間隔: oracle.security.jps.runtime.pd.client.registrationRetryInterval

- 配布待機時間: oracle.security.jps.runtime.policyDistributionWaitTime

- ポーリング・タイマー: oracle.security.jps.pd.client.PollingTimerEnabled

- ポーリング・タイマー間隔: oracle.security.jps.pd.client.PollingTimerInterval

ポリシー・ストア

- ポリシー・ストア・タイプ: 制御された配布はデータベースを使用する場合のみ動作するので、policystore.typeの値にはDB_ORACLEのみを使用します。

- URLによるデータベース構成。

- JDBC URL: jdbc.url

- * JDBCドライバ: jdbc.driver

- ユーザー名: security.principal

- パスワード: security.credential

- JNDI名によるデータベース構成。

- * データソースJNDI名: datasource.jndi.name

- * 最大検索フィルタ長: max.search.filter.lengthは検索フィルタの最大長を定義します。値として整数(1024など)を使用します。

- * ファーム名: oracle.security.jps.farm.name。

- リソース・タイプ強制モード: oracle.security.jps.policystore.resourcetypeenforcementmode。

表8-3では、Javaセキュリティ・モジュールの制御されない配布のプロパティについて説明します。

表8-3 Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成

プロパティ名

jps-config.xmlのプロパティ

* SM名

oracle.security.jps.runtime.pd.client.sm_name

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー・ストア

ポリシー・ストア・タイプ: policystore.typeの値にはOIDまたはDB_ORACLEを使用します。

DB

- URLによるデータベース構成。

- JDBC URL: jdbc.url

- * JDBCドライバ: jdbc.driver

- ユーザー名: security.principal

- パスワード: security.credential

- JNDI名によるデータベース構成。

- * データソースJNDI名: datasource.jndi.name

- * 最大検索フィルタ長: max.search.filter.lengthは検索フィルタの最大長を定義します。値として最大長を定義する整数(1024など)を使用します。

- * ファーム名: oracle.security.jps.farm.name。

- リソース・タイプ強制モード: oracle.security.jps.policystore.resourcetypeenforcementmode。

LDAP

- LDAP URL: ldap.urlはLDAPポリシー・ストアの場所を定義します。

- * 最大検索フィルタ長: max.search.filter.lengthは検索フィルタの最大長を定義します。値として整数(1024など)を使用します。

- * LDAPルート名: oracle.security.jps.ldap.root.name。

- * ファーム名: oracle.security.jps.farm.name。

- リソース・タイプ強制モード: oracle.security.jps.policystore.resourcetypeenforcementmode。

- ユーザー名: security.principal

- パスワード: security.credential

FILE

- * ポリシー・ストア・ファイル: ポリシー・ストアとして使用されるファイルの場所

表8-4では、Javaセキュリティ・モジュールの拡張構成プロパティについて説明します。

表8-4 Javaセキュリティ・モジュールの拡張プロパティ

プロパティ名

jps-config.xmlのプロパティ

ロールメンバー・キャッシュ・タイプ

oracle.security.jps.policystore.rolemember.cache.type

ロールメンバー・キャッシュ方式

oracle.security.jps.policystore.rolemember.cache.strategy

ロールメンバー・キャッシュ・サイズ

oracle.security.jps.policystore.rolemember.cache.size

ロールメンバー・キャッシュ・ウォームアップ有効

oracle.security.jps.policystore.rolemember.cache.warmup.enable

ポリシー遅延ロード有効

oracle.security.jps.policystore.policy.lazy.load.enable

ポリシー・キャッシュ方式

oracle.security.jps.policystore.policy.cache.strategy

ポリシー・キャッシュ・サイズ

oracle.security.jps.policystore.policy.cache.size

ポリシー・キャッシュ更新可能

oracle.security.jps.policystore.cache.updateable

リフレッシュ有効

oracle.security.jps.policystore.refresh.enable

リフレッシュ・パージ・タイムアウト

oracle.security.jps.policystore.refresh.purge.timeout

リフレッシュ・パージ間隔

oracle.security.jps.ldap.policystore.refresh.interval

アプリケーション・ポリシー問合せTTLなし

oracle.security.jps.pdp.missingAppPolicyQueryTTL

デシジョン・キャッシュ有効

oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled

デシジョン・キャッシュ追出し容量

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionCapacity

デシジョン・キャッシュ追出しパーセンテージ

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage

デシジョン・キャッシュTTL

oracle.security.jps.pdp.AuthorizationDecisionCacheTTL

匿名ロール有効

oracle.security.jps.pdp.anonymousrole.enable

認証済ロール有効

oracle.security.jps.pdp.authenticatedrole.enable

表8-5では、ポリシー情報ポイント(PIP)として属性リトリーバを定義するためのパラメータについて説明します。「新規」をクリックすると、各属性リトリーバ・タイプのパラメータが表示されます。

表8-5 Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)

名前

定義

属性リトリーバ

属性リトリーバのタイプをドロップダウン・メニューから選択します。オプションには「LDAP」、「DB」および「カスタム」が含まれます。

LDAP

- 名前: serviceInstanceタグで定義される属性リトリーバの名前。

<serviceInstance name="dbname"
provider="pip.service.provider">

- 説明: serviceInstanceタグで定義される説明(オプション)。

<serviceInstance name="description"
value="dbdescription">

- LDAP URL: ldap.urlはLDAPポリシー・ストアの場所を定義します。JEEアプリケーションおよびJSEアプリケーションで有効で、LDAPストアにのみ適用します。値としてldap://host:portという形式のURIを使用します。

- 失敗したサーバーの再試行間隔: failed.server.retry.intervalプロパティに定義されている、失敗したサーバーへの接続を再試行する時間間隔。

- ユーザー名: security.principal

- パスワード: security.credential

DB

- 名前: 事前定義済属性リトリーバの名前。

- 説明: 説明(オプション)。

- URLによるデータベース構成。

- JDBC URL: jdbc.urlはデータベース・ポリシー・ストアの場所を定義します。Java Database Connectivity (JDBC) APIを使用してデータベースに接続する場合は定義される必要があります。値としてカンマ区切りのURLのリストを使用し、先頭はプライマリとして使用されます。たとえば、jdbc:oracle:thin:@scl58116.domainexample.com:1521:orclと定義します。

- * JDBCドライバ: jdbc.driverではJDBC APIを使用してデータベースに接続する場合のドライバの場所を定義します。値として、たとえばoracle.jdbc.driver.OracleDriverを使用します。

- ユーザー名: security.principal

- パスワード: security.credential

- JNDI名によるデータベース構成。

- * データソースJNDI名: JDBCから直接ではなく、データソース経由でPIPインスタンスを動作させる場合のデータソースJNDI名。データ・ソース・シナリオは、WebLogic ServerおよびWebSphere Application Serverのみでサポートされます。値として事前定義済データソース・オブジェクトのJNDI名を使用します。

- 失敗したサーバーの再試行間隔: この属性は、プライマリ・リポジトリとの通信が失敗した後、プライマリ・リポジトリにスイッチ・バックする前にバックアップ・リポジトリが使用される時間間隔を定義します。値として秒数を使用します。デフォルト値は15です。

カスタム

- 名前: カスタム属性リトリーバの名前

- 説明: 説明(オプション)。

- * クラス名: 1つ以上のクラス名

表8-6では、適切なポリシー情報ポイント(PIP)から取得する必要がある属性を定義するパラメータについて説明します。これには、LDAPとデータベースの両方のストアのパラメータが含まれます。

表8-6 Javaセキュリティ・モジュールのPIPパラメータ(属性)

名前

jps-config.xmlのプロパティ

属性リトリーバ

ドロップダウン・メニューから定義済属性リトリーバを選択します。

名前

ポリシー・ストアで定義される属性の名前。事前定義済LDAP属性リトリーバを使用している場合、Oracle Entitlements Serverに定義される属性名は、LDAPストアで定義される属性名と同じである必要があります。現在、名前マッピング機能はありません。

問合せ

次にLDAP問合せの例を示します。

<property name="query" value="(cn=xUSERATTR)"/>

次にデータベース問合せの例を示します。

<property name="query" value="select description from bookstore where author='jimmy'"/>

* 検索ベース

LDAPストアの検索ベース。データベースの場合は表示されません。

存続時間

cachedが有効化されている場合、cached属性値の存続時間(秒)。

キャッシュされた属性

属性値のキャッシュを有効にします。

8.4.2 RMIセキュリティ・モジュールの構成

RMIセキュリティ・モジュールをインスタンス化後に構成する場合のパラメータは、次のリンク先で説明します。

- RMIセキュリティ・モジュールの制御プッシュ・クライアントの構成プロパティは、表8-1「Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成」で説明します。

- RMIセキュリティ・モジュールの制御プル・クライアントとストアの構成プロパティは、表8-2「Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成」で説明します。

- RMIセキュリティ・モジュールの非制御ポリシー・ストアの構成プロパティは、表8-3「Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成」で説明します。

- RMIセキュリティ・モジュールの拡張構成プロパティは、表8-4「Javaセキュリティ・モジュールの拡張プロパティ」で説明します。

- RMIセキュリティ・モジュールのPIPパラメータのプロパティは、表8-5「Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)」および表8-6「Javaセキュリティ・モジュールのPIPパラメータ(属性)」で説明します。

プロパティの詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

ヒント:

プロキシ・モードのJBOSSセキュリティ・モジュールをPEPとして使用し、RMIセキュリティ・モジュールをPDPとして使用する場合、RMIセキュリティ・モジュールのCLASSPATHにjbossx.jarを追加する必要があります。

8.4.3 Webサービス・セキュリティ・モジュールの構成

Webサービス・セキュリティ・モジュールをインスタンス化後に構成する場合のパラメータは、次のリンク先で説明します。

- Webサービス・セキュリティ・モジュールの制御プッシュ・クライアントの構成プロパティは、表8-1「Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成」で説明します。

注意:

Webサービス・セキュリティ・モジュールの場合、表8-1のSSL関連のプロパティは表示されないか、または構成できません。

- Webサービス・セキュリティ・モジュールの制御プル・クライアントとストアの構成プロパティは、表8-2「Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成」で説明します。

- Webサービス・セキュリティ・モジュールの非制御ポリシー・ストアの構成プロパティは、表8-3「Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成」で説明します。

- Webサービス・セキュリティ・モジュールの拡張構成プロパティは、表8-4「Javaセキュリティ・モジュールの拡張プロパティ」で説明します。

- Webサービス・セキュリティ・モジュールのPIPパラメータのプロパティは、表8-5「Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)」および表8-6「Javaセキュリティ・モジュールのPIPパラメータ(属性)」で説明します。

プロパティの詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。WebLogic Server上でWebサービス・セキュリティ・モジュールを使用する場合、8.4.4項「WebLogic Serverセキュリティ・モジュールの構成」を参照してください。

ヒント:

プロキシ・モードのJBOSSセキュリティ・モジュールをPEPとして使用し、Webサービス・セキュリティ・モジュールをPDPとして使用する場合、Webサービス・セキュリティ・モジュールのCLASSPATHにjbossx.jarを追加する必要があります。

8.4.4 WebLogic Serverセキュリティ・モジュールの構成

WebLogic Serverセキュリティ・モジュールをインスタンス化後に構成する場合のパラメータは、次のリンク先で説明します。これらのパラメータは、WebLogic Server上でWebサービス・セキュリティ・モジュールを使用する場合も有効です。

注意:

WebLogic Server上にインストールされている場合、Webサービス・エントリ・ポイントを構成する必要はありません。

- WebLogic Serverセキュリティ・モジュールの制御プッシュ・クライアントの構成プロパティは、表8-1「Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成」で説明します。次のWLS構成パラメータは、セキュリティ・プロバイダが有効な場合にWebLogic Serverに固有であり(9.4.1項「WebLogic Serverとの統合」を参照)、permit、abstainまたはdenyとして定義できます。

- 未定義のアプリケーションの影響

- 適用可能ポリシーなしの影響

- WebLogic Serverセキュリティ・モジュールの制御プル・クライアントとストアの構成プロパティは、表8-2「Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成」で説明します。次のWLS構成パラメータは、セキュリティ・プロバイダが有効な場合にWebLogic Serverに固有であり(9.4.1項「WebLogic Serverとの統合」を参照)、permit、abstainまたはdenyとして定義できます。

- 未定義のアプリケーションの影響

- 適用可能ポリシーなしの影響

- WebLogic Serverセキュリティ・モジュールの非制御ポリシー・ストアの構成プロパティは、表8-3「Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成」で説明します。次のWLS構成パラメータは、セキュリティ・プロバイダが有効な場合にWebLogic Serverに固有であり(9.4.1項「WebLogic Serverとの統合」を参照)、permit、abstainまたはdenyとして定義できます。

- 未定義のアプリケーションの影響

- 適用可能ポリシーなしの影響

- WebLogic Serverセキュリティ・モジュールの拡張構成プロパティは、表8-4「Javaセキュリティ・モジュールの拡張プロパティ」で説明します。

- WebLogic Serverセキュリティ・モジュールのPIPパラメータのプロパティは、表8-5「Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)」および表8-6「Javaセキュリティ・モジュールのPIPパラメータ(属性)」で説明します。

プロパティの詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

8.4.5 SharePoint Server (MOSS)セキュリティ・モジュールの構成

SMConfig UIでは、MOSSセキュリティ・モジュール自体のパラメータは構成されません。SharePointセキュリティ・モジュールのリモートPDPとして機能するWebサービス・セキュリティ・モジュールが構成されます。詳細は、8.4.3項「Webサービス・セキュリティ・モジュールの構成」を参照してください。MOSSセキュリティ・モジュールの構成の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

8.4.6 .NETセキュリティ・モジュールの構成

SMConfig UIでは、.NETセキュリティ・モジュール自体のパラメータは構成されません。.NETセキュリティ・モジュールのリモートPDPとして機能するWebサービス・セキュリティ・モジュールが構成されます。詳細は、8.4.3項「Webサービス・セキュリティ・モジュールの構成」を参照してください。MOSSセキュリティ・モジュールの構成の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

8.4.7 WebSphere、TomcatおよびJBossのセキュリティ・モジュールの構成

WebSphere、TomcatおよびJBossのセキュリティ・モジュールをインスタンス化後に構成する場合のパラメータは、次のリンク先で説明します。

- 制御プッシュ・クライアントの構成プロパティは、表8-1「Javaセキュリティ・モジュールの制御プッシュ・クライアントの構成」で説明します。

- 制御プル・クライアントとストアの構成プロパティは、表8-2「Javaセキュリティ・モジュールの制御プル・クライアントとストアの構成」で説明します。

- 非制御ポリシー・ストアの構成プロパティは、表8-3「Javaセキュリティ・モジュールの非制御ポリシー・ストアの構成」で説明します。

- 拡張構成プロパティは、表8-4「Javaセキュリティ・モジュールの拡張プロパティ」で説明します。

- PIPパラメータのプロパティは、表8-5「Javaセキュリティ・モジュールのPIPパラメータ(属性リトリーバ)」および表8-6「Javaセキュリティ・モジュールのPIPパラメータ(属性)」で説明します。

ヒント:

セキュリティ・モジュールでJBOSSプリンシパルを認識するために、org.jboss.security.SimplePrincipalが含まれるJBOSS_HOME/common/lib/jbosssx.jarをRMI/WSサーバーのCLASSPATHに追加します。

プロパティの詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

8.4.8 Oracle Service Busセキュリティ・モジュールの構成

Oracle Service Bus (OSB)セキュリティ・モジュールは、WebLogic Serverコンソールを使用してOracle Entitlements Server認可プロバイダが有効化されている場合(9.4.1項「WebLogic Serverとの統合」で定義)にのみ機能します。OSBセキュリティ・モジュールのパラメータをインスタンス化後に構成する場合の詳細は、表8-6「WebLogic Serverセキュリティ・モジュールの構成」を参照してください。

注意:

Oracle Entitlements Serverセキュリティ・モジュールがJRFドメインにインストールされている場合、非制御モードのみがサポートされます。

OSBセキュリティ・モジュールを構成するには、次の手順を使用します。

1. OSBサーバーとOracle Entitlements Serverをインストールして起動した後、OESClientをインストールします。
『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

2. インストールしたOESClientとoracle_commonディレクトリにOpatchを適用します。
oracle_commonディレクトリはOSBのインストール中に作成されます。

3. smconfig.prpファイルを変更します。
smconfig.prpはOES_CLIENT_HOME/oessm/SMConfigToolディレクトリにあります。『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

4. SMConfigツールを使用して、OSBセキュリティ・モジュールを作成します。
Oracle Entitlements Serverが稼働中であることを確認します。『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

1. binディレクトリに変更します。
cd OES_CLIENT_HOME/oessm/bin

2. SMConfigツールを実行します。
./config.sh -smType wls -smConfigId osbSM -serverLocation ../wlserver_10.3/

3. コマンド・ウィンドウで、Oracle Entitlements Serverポリシー・ストアにアクセスする権限を持つユーザーの名前とパスワードを入力します。

4. Fusion Middleware構成ウィザードの拡張ソースの選択で、Oracle Entitlements Server Security Module On Service Bus -11.1.2.0[oesclient]を選択し、「次へ」を選択します。

5. OSBドメインでjps-config.xmlファイルのポリシー・ストア構成を変更します。

6. WebLogic Serverコンソールを使用して、Oracle Entitlements Serverの認可プロバイダとロール・マッピング・プロバイダを有効にします。
9.4.1項「WebLogic Serverとの統合」を参照してください。

7. OSBサーバーを再起動します。

8.5 RMIまたはWebサービスのPDPプロキシ・クライアントの構成

Oracle Entitlements Serverでは、クライアントが認可サービスをリモートで起動できるプロキシ・モードがサポートされます。アプリケーションでOracle Entitlements Server PEP APIによって認可コールが実行されると、アプリケーションのホスト上に、(別のマシン上の)リモート・セキュリティ・モジュールと通信してアクセス決定を要求するPDPプロキシ・クライアントを設定できます。PDPプロキシ・クライアントでは、キャッシュ、ロギングおよびフェイルオーバーのサポートを含むローカル・セキュリティ・サービスが提供されます。PDPプロキシ・クライアントとリモート・セキュリティ・モジュールの間の通信には、Remote Method Invocation (RMI)コールまたはWebサービス・コールを使用できます。セキュリティ・サービスをリモート起動できるのは、RMIおよびWebサービスのセキュリティ・モジュールのみです。

注意:

XACMLの用語では、プロキシおよびリモート・セキュリティ・モジュールは、それぞれPDPプロキシおよびPDPに似ています。

アプリケーションからのOracle Entitlements Server PEP APIコールは、コール対象が埋込みPDPまたはリモートPDPのどちらであるかに関係なく、実行できます。プロキシ・モードは、セキュリティ・サービス(認可キャッシュ、ロギングおよびフェイルオーバーを含む)をローカルに提供するように構成でき、RMIまたはSOAPを使用してPDPと通信できます。

ローカルPDPプロキシ・クライアントおよびリモート・セキュリティ・モジュールの両方に関連する構成があります。プロキシ側では、クライアント構成はjps-config.xml構成ファイル内でPDPサービス・インスタンスに統合されています。サーバー側では、RMIとWebサービスの両方のセキュリティ・サービスの構成パラメータも、jps-config.xml構成ファイル内でPDPサービス・インスタンスに統合されています。構成パラメータの詳細は、付録A「インストール・パラメータおよび構成パラメータ」を参照してください。

9 環境固有のリソースの保護

この章では、特定のセキュリティ・モジュールを使用してリソースを保護する方法について説明します。この章には次の項目があります。

- 9.1項「セキュリティ・モジュール・タイプの選択」

- 9.2項「Microsoft Office SharePoint Serverのリソースの保護」

- 9.3項「Oracle Service Busリソースの保護」

- 9.4項「WebLogic Serverリソースの保護」

9.1 セキュリティ・モジュール・タイプの選択

Oracle Entitlements Server管理者は、保護されるリソースのタイプに基づいてセキュリティ・モジュール・タイプを選択します。セキュリティ・モジュール・タイプは、OESクライアントのSMConfigツールを使用してセキュリティ・モジュールをインスタンス化する際に定義します(第8章「セキュリティ・モジュールの構成の管理」を参照)。

注意:

OESクライアントのインストール手順は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

SMConfigツールを使用してセキュリティ・モジュールをインスタンス化する際、セキュリティ・モジュール・タイプ、構成IDおよび適切なコンテナへのパスなどのパラメータを定義します。表9-2に、インスタンス化可能なセキュリティ・モジュール・タイプをリストします。(SMType属性値はセキュリティ・モジュール列のカッコ内に定義されています。)

表9-1に記載されているセキュリティ・モジュール・タイプでは、環境に固有のリソースは保護されません。これらは、認可を要求するJavaコールを受信するポリシー決定ポイント(PDP)です。セキュリティ・モジュールは単純に、アプリケーションによりコールされる認可APIを提供します。

表9-1 一般的な保護セキュリティ・モジュール・タイプ

セキュリティ・モジュール

目的

プロキシ・モード

コンテナ・サポート

Java (java)

認可を要求するJavaコールを受信するポリシー決定ポイント(PDP)

サポート

Java Standard Edition (JSE)アプリケーションおよび複雑な統合で使用されます。

WebSphere (was)

アプリケーションから認可リクエストを直接受信するJavaセキュリティ・モジュール

サポート

WebSphere Application Server

Webサービス(ws)

Webサービス・コールを受信するマルチプロトコル・セキュリティ・モジュール。XACMLゲートウェイまたはSOAPを使用してWebサービス・セキュリティ・モジュールと通信するように、プロキシ・モードの他のセキュリティ・モジュール(Java、WLS)を構成します。

未サポート

JSEスタンドアロン・プロセスとして、またはWebLogic Serverコンテナ上で実行されるWebサービスとして、サポートされます。プロキシ・モードの他のセキュリティ・モジュールにより使用可能です。Webサービス・リクエストを作成可能な場合またはアプリケーションが非標準プログラミング言語(Pythonなど)で作成されている場合に使用できます。

RMI (rmi)

Remote Method Invocation (RMI)コールを受信するように強化されたJavaセキュリティ・モジュールであるマルチプロトコル・セキュリティ・モジュール

未サポート

Webサービスの負荷が高い場合にJSEアプリケーションでのみ使用されます。

.NET (dotnet)

C#で記述されたアプリケーションがC#でPEP APIをコールすることによりWebサービス・セキュリティ・モジュールに認可リクエストを送信できるようにします。

プロキシ・モードでのみサポートされます。.NETセキュリティ・モジュールはWebサービス・セキュリティ・モジュールと通信するプロキシとして機能します。

.NETコンテナ

JBoss (jboss)

アプリケーションから認可リクエストを直接受信するJavaセキュリティ・モジュール

サポート

JBoss Application Server

Tomcat (tomcat)

アプリケーションから直接認可リクエストを受信するJavaセキュリティ・モジュール。Oracle Platform Security Servicesの認可/ログイン・モジュールまたはcheckPermissionをサポートしません。

サポート

Apache Tomcatアプリケーション・サーバー

表9-2に記載されているセキュリティ・モジュールは、アプリケーションから直接受信する認可コールを処理する機能以外に、それらがデプロイされている環境の固有のリソースを保護する機能はありません。

表9-2 環境固有のセキュリティ・モジュール・タイプ

セキュリティ・モジュール

目的

プロキシ・モード

コンテナ・サポート

Sharepoint (moss)

コンテンツに対するSharepointリクエストをインターセプトして、Microsoft Sharepoint Serverリソースを保護します。9.2項「Microsoft Office SharePoint Serverのリソースの保護」を参照してください。

プロキシ・モードでのみサポートされます。Sharepointセキュリティ・モジュール自体はWebサービス・セキュリティ・モジュールと通信するプロキシ(C#で記述)として機能します。

.NETコンテナ

WebLogic Server (wls)

Oracle Entitlements Serverセキュリティ・プロバイダが有効化されていて(9.4.1項「WebLogic Serverとの統合」を参照)セキュリティ・モジュールがWebLogic Serverコールを処理可能な場合を除いて、Javaセキュリティ・モジュールと完全に同じ動作を示します。9.4項「WebLogic Serverリソースの保護」を参照してください。

サポート(Oracle Entitlements Serverセキュリティ・プロバイダが有効化されてWebLogic Serverリクエストをインターセプトする場合を除く)

WebLogic Server

Oracle Service Bus (osb)

Oracle Entitlements Serverセキュリティ・プロバイダが有効化されている場合に、Oracle Service Busからの認可リクエストをインターセプトするWebLogicセキュリティ・モジュール。9.3項「Oracle Service Busリソースの保護」を参照してください。

サポート

これらのセキュリティ・モジュールとその構成方法の詳細は、第8章「セキュリティ・モジュールの構成の管理」を参照してください。これらの動作の詳細は、1.3項「Oracle Entitlements Serverのアーキテクチャの概要」と第7章「ポリシー決定ポイントのデプロイ」を参照してください。

9.2 Microsoft Office SharePoint Serverのリソースの保護

企業は、Oracle Entitlements Serverを使用して、MOSSポータル環境を管理できます。MOSSとの統合はMOSSセキュリティ・モジュール・プラグインにより実現されます。このプラグインはSharePoint Server内で認可コールをインターセプトし、統合されたWebサービス・セキュリティ・モジュール(PDP)に送信します。PDPは認可決定をMOSSセキュリティ・モジュール・プラグインに返し、決定が実行されます。詳細は、次の各項を参照してください。

- 9.2.1項「SharePointリソースの保護」

- 9.2.2項「MOSSとWebサービスのセキュリティ・モジュールのインスタンス化」

- 9.2.3項「MOSSセキュリティ・モジュールの統合と統合解除」

- 9.2.4項「SharePointセキュリティの構成」

9.2.1 SharePointリソースの保護

保護可能なSharePointコンポーネントには、Webサイト、Webページ、Webパーツ、リスト・アイテムおよびナビゲーション・バー・アイテムなどがあります。リソースは、コンポーネントに基づいて異なる方法で保護されます。SharePointリソースは、次のリストに従ってカテゴリ分けされます。

- アイテムは最小のSharePointコンポーネント(ドキュメント、タスク、連絡先、ページまたは通知など)です。

- リストは単一タイプのSharePointコンポーネントのコレクションです。ドキュメント・リスト、連絡先リスト、タスク・リストなどを作成できます。

- フォルダはリスト内に存在し、複数のアイテムとサブフォルダのコンテナとして機能します。

- サイトはリストのコレクションです。たとえば、SharePointのデフォルトのドキュメント・センター・サイトは、「お知らせ」、「ドキュメント」および「タスク」の3つのリストで構成されています。

- SharePointサイト・ページ上のナビゲーション・バー・アイテムは、MOSSコンポーネントの操作に使用できます。

注意:

すべてのMOSSリソースのリソース・タイプは1つのみです。この項では、MossResourceTypeという名前を使用します。

次の各項では、詳細を説明します。

- 9.2.1.1項「WebサイトとWebページの保護」

- 9.2.1.2項「Webパーツの保護」

- 9.2.1.3項「リストの保護」

- 9.2.1.4項「Webページ内の機密コンテンツの保護」

9.2.1.1 WebサイトとWebページの保護

MOSS Webサイトは、1つ以上のWebページで構成されます。組織は一般に、社内の1つの部門を示す1つのWebサイトをMOSSで編成します。MOSSに付属のメインWebサイトには、デフォルトのサブ・サイトが存在します。サブ・サイトは、上端または左右のナビゲーション・バー上に、または他のWebページ上でリンクとして、表示されます。これらのすべてのWebサイトに、固有のURLが存在します。

MOSSのWebサイトまたはWebページのURLにより、Oracle Entitlements Serverで作成されるリソース・インスタンスが定義されます。http://Sharepoint_Server_Name/TestSiteと定義されたURLの場合、対応するリソースは、アプリケーションMossAppの下にリソース・タイプMossResourceTypeのインスタンスとしてリソース/TestSiteを定義することによって作成されます。この場合、ポリシーはOracle Entitlements Serverオブジェクトを使用して作成されます。

カスタムHTTPモジュールは、Oracle Entitlements Serverによって実装され、MOSS Webサイトを保護します。ユーザーが保護されたコンポーネントへのアクセスを試みた場合、そのリクエストはカスタムHTTPモジュールによってインターセプトされ、ポリシーを評価するためにOracle Entitlements Serverに転送されます。決定がカスタムHTTPモジュールに返され、ユーザーがアクセスを拒否された場合、その場所を表示する権限がないことを示すメッセージを含むカスタム・エラー・ページが表示されます。

注意:

カスタムHTTPモジュールは、MOSSサイト構成ファイルweb.configでHttpModules要素を定義することによって有効化されます。9.2.4項「SharePointセキュリティの構成」を参照してください。

9.2.1.2 Webパーツの保護

MOSS Webパーツは、Webページ内にコンテンツを公開するために使用されるという点がポートレットに似ています。1つのWebページに1つ以上のWebパーツが存在できます。Webパーツは、リソース・インスタンス名として固有のMOSS表示名を定義することによって、Oracle Entitlements Serverで表現されます。リソース・インスタンスは、親Webページのリソースの子として作成されます。

ユーザーが保護されたコンポーネントへのアクセスを試みた場合、そのリクエストはOracle Entitlements Serverに作成されたMOSS委任制御によってインターセプトされます。つまり、委任制御を使用すると、SharePointページに、そのページ自体を変更することなく、任意のカスタム.NETコードを配置できます。このカスタム・コードは、Oracle Entitlements Serverから決定を取得して、認可されていないWebパーツをページから削除するために使用されます。この場合、エラー・メッセージは表示されません。

注意:

委任OES認可制御は、Webパーツ・ページに明示的に追加されるか、またはWebサイトのマスター・ページで暗黙的に定義されます。9.2.4項「SharePointセキュリティの構成」を参照してください。

9.2.1.3 リストの保護

MOSSリストは、Webページ上のWebパーツ内のアイテムのコレクションです。MOSS Webサイトを作成する場合、使用するテンプレートに応じて一連のリストも作成されます。各リスト・アイテムはURLによって識別され、Oracle Entitlements Serverリソースとして表されます。これらのリストは、ドキュメント・リストまたは非ドキュメント・リストのどちらであるかに応じて、Oracle Entitlements Serverに組み込まれます。

- ドキュメント・リストは、http://Sharepoint_Server_Name/TestSite/SharedDocuments/Forms/AllItems.aspxに移動することによって表示できます。/TestSite/SharedDocuments/Forms/AllItems.aspxという名前でトップレベル・リソースを作成します。次に、リストのアイテムごとに、トップレベル・リソースのサブリソースとして個別のリソース・オブジェクトを作成します。たとえば、リストのScott.sqlという名前のアイテムに/TestSite/SharedDocuments/Scott.sqlという名前でサブリソースを作成できます。

- 非ドキュメント・リストは、http://Sharepoint_Server_Name/TestSite/Lists/Announcements/AllItems.aspxに移動することによって表示できます。/TestSite/Lists/Announcements/AllItems.aspxという名前でリソースを作成します。次に、同じレベルにリソース/TestSite/Lists/Announcements/EditForm.aspxとリソース/TestSite/Lists/Announcements/DispForm.aspxを作成します。ここでリストの任意のアイテムをクリックすると、URLとしてhttp://Sharepoint_Server_Name/web1/Lists/Announcements/DispForm.aspx?ID=2&Source=http%3A%2F%2Fsharepoint01%2FTestSite%2FLists%2FAnnouncements%2FAllItems%2Easpxが表示されます。このURLのURLパラメータとして定義されたIDをメモします。このIDは非ドキュメント・アイテムの名前として使用され、EditForm.aspxとDispForm.aspxの両方のサブリソースとして作成されます。この手順は、非ドキュメント・リスト内のすべてのアイテムについて実行する必要があります。または、アイテムのリンクの上にマウスを移動して、ブラウザのステータス・バーに表示されるURLに含まれるIDをメモします。

注意:

リスト・アイテムの場合のみ、EditForm.aspxに対するポリシーを作成する必要はありません。同じDispForm.aspxに対するviewまたはANYを付与できます。viewの場合はReadOnlyアクセスが付与され、ANYの場合は完全なアクセス(編集、削除など)が付与されます。

9.2.1.4 Webページ内の機密コンテンツの保護

管理者は、SharePointサーバーを使用して、アクセス制御が必要な機密情報が含まれるカスタム・ページを公開できます。開発者は、Oracle Entitlements Serverタグ・ライブラリに対応するASPタグ内に機密情報を包含することができます。タグ・ライブラリはOracle Entitlements Serverと通信してアクセス決定を取得し、それに基づいて認可されたユーザーにのみコンテンツが表示されます。

注意:

ASPタグ・ライブラリは、MOSSページで名前空間、タグ接頭辞およびアセンブリを登録し、タグを使用して機密コンテンツを包含するMOSSページ開発者が使用するサーバー側Webコントロールです。このライブラリは、アクセス制御を提供するためにタグが使用されているカスタム・コンテンツ・ページにエンド・ユーザーがアクセスを試みたときに起動されます。

9.2.2 MOSSとWebサービスのセキュリティ・モジュールのインスタンス化

MOSSセキュリティ・モジュールは、Webサービス・セキュリティ・モジュールと連携して、MOSSリソースのきめ細やかな認可を提供します。セキュリティ・モジュールをインスタンス化する前に、前提となるMOSS環境が設定済であることを確認します。これには、MOSSのインストールおよび保護されるWebアプリケーションの作成が含まれます。

注意:

この手順では、Webアプリケーションの環境の詳細(ポート番号、URLなど)が必要です。

MOSSセキュリティ・モジュールとWebサービス・セキュリティ・モジュールは、同一サーバーへのデプロイと異なるサーバーへのデプロイが可能です。両方のセキュリティ・モジュールをインスタンス化するには、$ORACLE_CLIENT_HOME/oessm/SMConfigTool/binディレクトリにあるSMConfigツールを使用します。

- MOSSセキュリティ・モジュールとWebサービス・セキュリティ・モジュールを同時にインスタンス化するには、config.sh with the parameter -smType mosswsを実行します。

- これらのセキュリティ・モジュールを別々にインスタンス化するには、config.shを2回、1回目はパラメータ-smType mossで、2回目はパラメータ-smType wsで、実行します。

さらに、選択しているデプロイメントに応じてSMConfigツールを実行します。たとえば、MOSSと同じWindowsマシンにデプロイされているセキュリティ・モジュールをインスタンス化するには、次のコマンドを使用します。

config.sh –smType mossws –prpFileName file_name –mossprpFileName file_name
–smConfigId -WSListeningPort –pdServer –pdPort

ここで、prpFileNameはWebサービス・セキュリティ・モジュールの作成に使用されたsmconfig.prpであり、mossprpFileNameはMOSSサーバーの構成に使用されたプロパティ・ファイルです。

注意:

mossprpFileNameテンプレートは、$ORACLE_CLIENT_HOME/oessm/mosssm /adm/configtool/moss_config.propertiesにあります。moss_config.propertiesには、環境に従って定義する必要がある必須プロパティおよび未定義の場合はデフォルト値が使用されるオプション・プロパティが存在します。

異なるWindowsマシンにデプロイされているセキュリティ・モジュールをインスタンス化するには、先にWebサービス・セキュリティ・モジュールをインスタンス化します(特別な手順はありません)。その後で次のコマンドを使用して、MOSSセキュリティ・モジュールを構成します。

config.sh –smType moss –prpFileName file_name –mossprpFileName file_name

OESクライアントのインストール手順の詳細は、『Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイド』を参照してください。

9.2.3 MOSSセキュリティ・モジュールの統合と統合解除

テンプレートmossprpFileNameのmoss.enableOESプロパティの値を使用して、Oracle Entitlements ServerをMOSSアプリケーションと統合するか、またはOracle Entitlements ServerとMOSSアプリケーションの統合を解除することができます。

- moss.enableOES=trueの場合、config.shをパラメータ-smType mossで実行すると、Oracle Entitlements ServerがMOSSアプリケーションと統合されます。

- moss.enableOES=falseの場合、config.shをパラメータ-smType mossで実行すると、MOSSアプリケーションがそのデフォルト認可プロセスを使用するように構成されます。

9.2.4 SharePointセキュリティの構成

次の手順は、SMConfigツールによって開始される自動構成以外にMOSSアプリケーションの認可を手動で構成する手順を示します。この手順は、9.2.2項「MOSSとWebサービスのセキュリティ・モジュールのインスタンス化」でconfig.shスクリプトによって自動実行される手順と同じであり、SMConfigツールを使用しない手順が必要な場合に使用できます。

この手順では、セキュリティ・モジュールがインスタンス化済であることを前提としています。インスタンス化後は、生成される構成IDとサービス・レジストリURLをメモします。この手順で、configIDはMOSS、サービス・レジストリURLはhttp://hostname:port/ServiceRegistryです。

1. Oracle Entitlements Server管理コンソールを使用して、次の手順を実行します。

- Webサービス・セキュリティ・モジュール定義を作成します。
第10章「システム構成の管理」を参照してください。

- 保護されるMOSSアプリケーションを表すアプリケーション・ポリシー・オブジェクトを作成します。
アプリケーションの名前は、moss_config.propertiesファイルで定義されているmoss.app.nameプロパティの値と一致している必要があります。

第4章「ポリシーとポリシー・オブジェクトの管理」を参照してください。

- アプリケーションをWebサービス・セキュリティ・モジュール・プロファイルにバインドします。
第10章「システム構成の管理」を参照してください。

2. $OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/libディレクトリからOES.SharePoint.dllとlog4net.dllをC:/WINDOWS/assemblyディレクトリにドラッグ・アンド・ドロップします。
これにより、アセンブリがWindowsのグローバル・アセンブリ・キャッシュに登録され、ホスト・マシン上のすべての.NETアプリケーションから使用できるようになります。

3. MOSS 2007 (IIS 6)を使用している場合、次のコードをdefault.masterファイルのHTML HEADセクションに追加して、Oracle Entitlements Server委任制御を宣言します。

<SharePoint:DelegateControl runat="server" ControlId="PageHeader"/>

default.masterファイルはC:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL\ディレクトリにあります。この手順は、MOSS 2010 (IIS 7)を使用している場合は必要ありません。

注意:

default.masterを「ワードパッド」で開くと、既存の文字のかわりに疑問符(?)が表示されている箇所が散見されます。ファイルを変更して保存する前に、これが修正されていることを確認してください。または、ファイルを「メモ帳」で開いてください。

4. ユーザーがMOSSコンポーネントへのアクセスを認可されていない場合にメッセージを表示するカスタム・エラー・ページを追加します。
CustError.aspxとcustError2010.aspxは、Oracle Entitlements ServerのMOSS用カスタム・エラー・ページです。これらは、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/adm/pagesディレクトリにあります。

- MOSS 2007 (IIS 6)を使用している場合、custError.aspxをC:\ Program Files\Common Files\Microsoft Shared\web server extensions\12\template\layoutsにコピーします。

- MOSS 2010 (IIS 7)を使用している場合、custError2010.aspxをC:\Program Files\Common Files\Microsoft Shared\web server extensions\14\template\layoutsにコピーし、名前をcustError.aspxに変更します。

5. Sharepoint Serverのweb.config構成ファイルを編集して、Oracle Entitlements ServerとMOSSの統合を有効化します。
web.configはSharePointアプリケーションの仮想ディレクトリ(C:\Inetpub\wwwroot\wss\VirtualDirectories\port-numberなど)にあります。ここで、port-numberはアプリケーションのポートです。

注意:

web.configを「ワードパッド」で開くと、既存の文字のかわりに疑問符(?)が表示されている箇所が散見されます。ファイルを変更して保存する前に、これが修正されていることを確認してください。または、ファイルを「メモ帳」で開いてください。

1. 表9-3に記載されているプロパティをappSettingsセクションに追加します。例9-1は、appSettingsセクションを示しています。値はmossprpFileNameとして定義されているファイルから取得されています。

例9-1 Sharepoint web.configファイルのappSettingsセクション

<add key="SsmUrl" value="${moss.SmUrl}/ServiceRegistry"/>
<add key="SsmId"
value="${oracle.security.jps.runtime.pd.client.sm_name}"/>
<add key="ApplicationID" value="${application.id}"/>
<add key="PolicyDomain" value="${policy.domain}"/>
<add key="ResourceType" value="${moss.resourcetype}"/>
<add key="log4NetXmlfile" value="${moss.log4NetXmlfile}”/>
<add key="sharepointSite" value="${moss.sharepointSite}"/>
<add key="EnableOES" value="${moss.EnableOES}"/>
<add key="IgnoredExtensions" value="${moss.IgnoredExtensions}"/>
<add key="IgnoredURLExpression" value=”${moss.IgnoredURLExpression}"/>

表9-3 MOSSアプリケーションのappSettingsプロパティ

プロパティ

説明

SsmUrl

WebサービスSMのレジストリURL (http://oesw2k8:9400/ServiceRegistryなど)。

SsmId

このセキュリティ・モジュールの名前(MOSSなど)。

IdentityAsserterName

Oracle Entitlements Serverで構成されているIDアサーション・プロバイダの名前。現時点ではOESIdentityAssertionのみがサポートされています。

ApplicationID

保護されたMOSSリソースを表す構成済Oracle Entitlements Serverアプリケーションの名前。

ResourceType

すべてのMOSSリソースのリソース・タイプ(MossResourceTypeなど)。保護されたすべてのMOSSコンポーネントのリソース・タイプは、moss_config.propertiesファイルで定義されているmoss.resource.typeプロパティの値と一致している必要があります。

log4NetXmlfile

log4Net.xml構成ファイルへの完全修飾パス。log4Net.xmlファイルで定義されているログ・ファイルは、ログ・メッセージを書き込めるように読取り/書込みアクセス権がEveryoneに付与されている既存ディレクトリに存在する必要があります。

sharepointSite

トップレベルSharePointサイト(http://alesw2k8:9581/など)。

Enable OES

OES統合を有効化するフラグで、値としてtrueまたはfalseを設定します。

IgnoredExtensions

OESアクセス制御で無視されるファイル拡張子パターンのカンマ区切りリスト。次に例を示します。

png,js,css,axd

これらのリソースへのアクセスがリクエストされた場合、常に付与されます。

IgnoredURLExpression

OESアクセス制御で無視されるファイル名パターンのカンマ区切りリスト。次に例を示します。

/_layouts/Authenticate.aspx,/_login/default.aspx,/_forms/default.aspx

これらのリソースへのアクセスがリクエストされた場合、常に付与されます。

2. 表9-3に記載されているSafeControl AssemblyエントリをSafeControlsセクションに追加します。

例9-2 SafeControl Assemblyエントリ

<SafeControls>
...
<SafeControl Assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=68b08a2fa869dfdc" Namespace="OES.Sharepoint.Controls"
TypeName="*" Safe="True" />
<SafeControl Assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=68b08a2fa869dfdc" Namespace="OES.Sharepoint.Modules"
TypeName="*" Safe="True" />
</SafeControls>

3. 使用するサーバーに基づいてカスタムhttpModulesを定義します。
MOSS 2007 (IIS 6)を使用している場合、次の記述をhttpModulesセクションに追加します。

<add name="CustHTTPModule" type="OES.Sharepoint.Modules.CustHTTPModule,
OES.Sharepoint, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=68b08a2fa869dfdc " />

MOSS 2010 (IIS 7)を使用している場合、例9-3をassembliesセクションに、例9-4をmodulesセクション(最後の<remove>より後で最初の<add>より前の位置)に、それぞれ追加します。

例9-3 add assemblyエントリ

<assemblies>
…
<add assembly="OES.Sharepoint, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=68b08a2fa869dfdc" />
…
</assemblies>

例9-4 add nameエントリ

<modules runAllManagedModulesForAllRequests="true">
…
<add name="CustHTTPModule" preCondition="integratedMode"
type="OES.Sharepoint.Modules.CustHTTPModule, OES.Sharepoint,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc" />
…
</modules>

4. カスタム・コンテンツを公開する必要がある仮想パスでPageParserPaths (SafeModeセクション)を更新します。カスタム・コンテンツは、ソリューションによって提供されるタグ・ライブラリを介して認可できます。例9-5に例を示します。

例9-5 PageParserPathsエントリ

<PageParserPaths>
<PageParserPath VirtualPath="/Pages/*" CompilationMode="Always"
AllowServerSideScript="true" IncludeSubFolders="true"/>
</PageParserPaths>

5. MOSSのPortalSiteMapProviderの詳細(例9-6を参照)をOracle Entitlements ServerのPortalSiteMapProviderの詳細(例9-7を参照)で更新します。
Oracle Entitlements ServerのカスタムPortalSiteMapProviderは、ナビゲーション・バー・アイテムを保護します。

例9-6 MOSSのPortalSiteMapProvider

<SiteMap>
<Providers>
…
<add name="GlobalNavigation" description="Provider for MOSS Global Navigation"
type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider,
Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" NavigationType="Combined" Version="14" />
<add name="CurrentNavigation" description="Provider for MOSS Current Navigation"
type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider,
Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" NavigationType="Current" Version="14" />
…
</Providers>
</SiteMap>

例9-7 Oracle Entitlements ServerのPortalSiteMapProvider

<SiteMap>
<Providers>
…
<add NavigationType="Combined" Version="1" description="Provider for MOSS
Global Navigation" name="GlobalNavigation"
type="OES.Sharepoint.Controls.OESPortalSiteMapProvider, OES.Sharepoint,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc"/>
<add NavigationType="Current" Version="1" description="Provider for MOSS
Current Navigation" name="CurrentNavigation"
type="OES.Sharepoint.Controls.OESPortalSiteMapProvider, OES.Sharepoint,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=68b08a2fa869dfdc"/>
…
</Providers>
</SiteMap>

6. IISサーバーを再起動して、前述の変更をIISサーバーに反映させます。

6. OESAuthorizationFeatureディレクトリをMOSS FEATURESディレクトリにコピーします。

- MOSS 2007 (IIS 6)を使用している場合、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/lib/OESAuthorizationFeatureディレクトリをC:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURESディレクトリにコピーします。

- MOSS 2010 (IIS 7)を使用している場合、$OES_CLIENT_HOME/oes_sm_instances/MOSS_SM_Name/lib/OESAuthorizationFeature2010ディレクトリをC:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURESディレクトリにコピーし、ディレクトリ名をOESAuthorizationFeatureに変更します。

7. 次のいずれかのコマンドを使用して、指定したサイトにOESAuthorizationFeatureをインストールし、アクティブ化します。
OES認可機能は、「サイトの設定」→「すべてのサイト設定の変更」→「サイトの機能」に移動して、WebサイトごとおよびサブWebサイトごとに個別にアクティブ化できます。サブWebに対してアクティブ化した場合、サブWeb内部のすべてのWebページのすべてのWebパーツにアクセス制御を適用できます。

- MOSS 2007 (IIS 6)を使用している場合、コマンド・プロンプトを開き、次のコマンドを実行します。

“C:\Program Files\Common Files\Microsoft Shared\web server
extensions\12\BIN\STSADM.EXE” –o installfeature –name
OESAuthorizationFeature

“C:\Program Files\Common Files\Microsoft Shared\web server
extensions\12\BIN\STSADM.EXE” –o activatefeature –name
OESAuthorizationFeature –url http://alesw2k3:9581

- MOSS 2010 (IIS 7)を使用している場合、コマンド・プロンプトを開き、次のコマンドを実行します。

“C:\Program Files\Common Files\Microsoft Shared\web server
extensions\14\BIN\STSADM.EXE” –o installfeature –name
OESAuthorizationFeature

“C:\Program Files\Common Files\Microsoft Shared\web server
extensions\14\BIN\STSADM.EXE” –o activatefeature –name
OESAuthorizationFeature –url http://aleswin2k8:9581

8. IISサーバーを再起動します。

9. %OES_CLIENT_HOME%\oessm\mosssm\libディレクトリにあるMOSSResourceDiscovery.exeを使用して、SharePointサーバーのすべての保護されたリソースのリストを取得します。

注意:

MOSSリソースは、Oracle Entitlements Serverのリソースに、階層的にマップされます。したがって、検出されたすべてのリソースをポリシー・ストアに定義する必要はありません。たとえば、10,000個のドキュメント名を個別にコピーするのではなく、これらのドキュメントが存在するフォルダの名前をコピーし、リソース名式(/lib/*など)を使用してポリシーを作成します。

この実行可能ファイルはMOSSセキュリティ・モジュールに含まれ、object1という名前のプレーン・テキスト・ファイルおよびdiscovered-jazn-data.xmlという名前のXMLファイルを生成します。MOSSリソースは両方のファイルで定義されます。MOSSResourceDiscovery.exe実行可能ファイルは、次の情報の入力を要求します。

- ファイルを作成するディレクトリへのパス(c:\inetpub\wwwroot\wss\VirtualDirectories\9581\policyなど)。このディレクトリは事前に作成済である必要があります。

- 管理URLファイルが存在するディレクトリへのパス($OES_CLIENT_HOME/oessm/mosssm/adm/Discovery/AdmUrls.txtなど)。

- Sharepoint ServerサイトURL (http://amw2k8:9581など)。URLの末尾にスラッシュ(/)を付けないでください。

- MOSSアプリケーションを表すOracle Entitlements Serverアプリケーション・オブジェクトの名前(MossAppなど)。

- Oracle Entitlements Serverリソース・タイプの名前。この値は常にMossResourceTypeである必要があります。

XMLファイルはポリシー移行ツールで使用できます。詳細は、13.5項「ポリシーの移行」を参照してください。テキスト・ファイルは、次の手順でリソースをOracle Entitlements Serverポリシー・ストアにインポートするために使用されます。

10. テキスト・ファイルをポリシー移行ツールmanage-policy.cmd|shの入力として使用して、MOSSリソースをOracle Entitlements Serverポリシー・ストアにインポートします。
manage-policy.cmd|shは、%OES_CLIENT_HOME%\oessm\binディレクトリにあります。このインポートにより、MOSSリソースがポリシー・ストアに追加されます。既存のMOSSアプリケーション(および関連するポリシー)は削除されません。入力値(アプリケーション名、リソース・タイプおよび生成されるリソース・ファイル)は、前述の手順でMOSSResourceDiscovery.exeで使用した入力と一致している必要があります。

manage-policy.cmd|shを実行する前に、スクリプトを次のように変更します。

- ユーザー環境が反映されるようにOES_CLIENT_HOME変数とOES_INSTANCE_NAME変数を変更します。

- 付録A「ポリシー・ストア・サービス構成」の定義に従って、jps-config.xmlのポリシー・ストア属性を変更します。

このツールは1回のみ実行します。新しいリソースは、管理コンソールを使用して手動で作成します。

11. 管理コンソールを使用してポリシーを配布します。

9.3 Oracle Service Busリソースの保護

Oracle Service Bus (OSB)は、多数の分散サービス・エンドポイントを中央で管理および制御するように設計されています。Oracle Entitlements Serverを使用することで、企業はOSBランタイム・リソースへのアクセスを制御し、認可された後にのみそれらがアクセス可能になるようにできます。一般に、OSBランタイム・リソースは、isAccessAllowed()認可APIに渡されるリソースです。

注意:

Oracle Entitlements Serverでは、OSBコンソールなど、OSB構成時に使用されるリソースは保護されません。

次の各項には、OSBリソース・オブジェクトの詳細とその値をOracle Entitlements Serverポリシー・オブジェクトにマップする方法の詳細が含まれています。

- 9.3.1項「OSBリソース・オブジェクトの調査」

- 9.3.2項「セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」

- 9.3.3項「非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」

- 9.3.4項「WebLogic Serverプロバイダの有効化」

9.3.1 OSBリソース・オブジェクトの調査

OSBランタイム・リソースはオブジェクトとして表されます。リソースを表すオブジェクトには、オブジェクトのコンテキスト(OSBプロジェクトまたはタスクなど)を表す値を定義するKEYS文字列配列が含まれます。OSBリソースを保護するには、認可ポリシーの定義に使用するOracle Entitlements Serverセキュリティ・オブジェクトを作成する際に、リソース・オブジェクトのKEYSに渡される値を反映する必要があります。OSBリソース・オブジェクトで定義されるKEYSのリストを次に示します。このOSBリソース・オブジェクトのタイプは常に<alsb-proxy-service>です。

- proxyは、保護されるリソースに関連付けられたOSBプロキシ・サービスの名前を定義します。この値によって1つのOSBプロキシ・サービスが一意に識別されます。

- pathは、OSBプロキシ・サービスへのフルパス(Project-name/Folder-nameなど)です。

- Project-nameは、プロキシ・サービスが関連付けられているOSBプロジェクトの名前です。

- Folder-nameは、プロキシ・サービスにオプションで定義されるディレクトリ構造です。/folder_name/sub_folder_nameのように、文字列セパレータ/を使用すると、複数のディレクトリを定義できます。

この値によって、proxyで参照されているOSBプロキシ・サービスと同じOSBプロキシ・サービスが一意に識別されます。

- actionは、OSBプロキシ・サービスへのエントリがセキュアかどうかを定義し、次のいずれかの値が設定されます。

- invokeはOSBプロキシ・サービスへのエントリに対するアクセス制御を表します。

- wss-invokeはOSBプロキシ・サービスの操作へのエントリに対するセキュア・アクセス制御を表します。OSB Webサービス・セキュリティは、このアクションを使用して構成されます。

- operationは、起動されるWebサービス操作の名前を定義します。actionがinvokeの場合、この値はnullです。

注意:

OSBプロキシ・サービスでWebサービス・セキュリティを使用する場合、OSBはトランスポート・レイヤーとメッセージ・レイヤーでセキュリティ・チェックを実行します。OSBは、トランスポート・レイヤーではユーザーがプロキシ・サービスへのアクセスを許可されているかどうかを確認し、メッセージ・レイヤーではユーザーが指定されたプロキシ・サービス操作の実行を許可されているかどうかを確認します。したがって、トランスポート・レイヤーにユーザー情報が渡されない場合は、匿名ロールにアクセス権限を付与するポリシーを追加する必要があります。

OSBリソースのOracle Entitlements Serverポリシー・オブジェクトへのマッピングは、選択されたセキュアまたは非セキュアなアクションに応じて異なります。詳細は、9.3.2項「セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」と9.3.3項「非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング」を参照してください。

9.3.2 セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

OSBリソース・オブジェクトでwss-invokeアクションが定義されている場合、適用可能なOSBプロキシ・サービスではOSB Webサービス・セキュリティが使用されます。SampleProxyServiceという名前のOSBプロキシ・サービスが、SampleProjectという名前のOSBプロジェクトに関連付けられ、OSB Webサービス・セキュリティを使用するように構成されていると仮定します。このサービス・リソースは、Mortgage/ProxyServiceフォルダにあります。したがって、KEYS値は次のようになります。

- path: SampleProject/Mortgage/ProxyService

- proxy: SampleProxyService

- action: wss-invoke

- operation: sayHello (Webサービス・アクションがsayHelloであるとします)

これらのKEYS値に基づいて、Oracle Entitlements Serverオブジェクト値は次のようになります。

- アプリケーション - OSBリソースの保護に使用するアプリケーションの名前はalsbProxyServicesにする必要があります。

- リソース・タイプ - この値は常にOSBオブジェクト・タイプalsb-proxy-serviceである必要があります。また、「リソース階層のサポート」パラメータの値としてyesを選択します。

注意:

リソース・タイプalsb-proxy-serviceのアクションとしてwss-invokeを追加する必要はありません。ポリシーの操作のみ選択します。

- リソース - SampleProject/Mortgage/ProxyService/SampleProxyService/sayHello (OSBリソース・オブジェクトのpath/proxyの各KEYS値の値に等しい値を使用します)

- アクション - access (Oracle Entitlements Serverのデフォルト権限accessが常に使用されます)

9.3.3 非セキュアなOSBリソースのOracle Entitlements Serverへのマッピング

OSBリソース・オブジェクトでinvokeアクションが定義されている場合、適用可能なOSBプロキシ・サービスではOSB Webサービス・セキュリティは使用されません。SampleProxyServiceという名前のOSBプロキシ・サービス・リソースが、SampleProjectという名前のOSBプロジェクトに関連付けられていると仮定します。このサービス・リソースは、Mortgage/ProxyServiceフォルダにあります。したがって、KEYS値は次のようになります。

- path: SampleProject/Mortgage/ProxyService

- proxy: SampleProxyService

- action: invoke

- operation: null

これらのKEY値に基づいて、OSB Webサービス・セキュリティで構成されていない場合、Oracle Entitlements Serverオブジェクト値は次のようになります。

- アプリケーション - alsbProxyServices (OSBリソース・オブジェクトには定義済の値がないので、このデフォルト値が使用されます)

- リソース・タイプ - この値は常にOSBオブジェクト・タイプalsb-proxy-serviceである必要があります。また、「リソース階層のサポート」パラメータの値としてyesを選択します。

- リソース - SampleProject/Mortgage/ProxyService/SampleProxyService (OSBリソース・オブジェクトのpath/proxyの各KEYS値の値に等しい値を使用します)

- アクション - access(operationに値が設定されている場合はその値が使用され、設定されていない場合はOracle Entitlements Serverのデフォルト権限accessが使用されます)

9.3.4 WebLogic Serverプロバイダの有効化

OSBランタイム・リソースを保護するには、Oracle Entitlements Serverプロキシ・プロバイダも有効化する必要があります。これを実現する手順は、9.4.1項「WebLogic Serverとの統合」を参照してください。

9.4 WebLogic Serverリソースの保護

WebLogic Serverセキュリティ・モジュールは、認可リクエストを受信する認可APIを提供するだけでなく、特定のOracle Entitlements Serverの認可プロバイダとロール・マッピング・プロバイダを構成した後にWebLogic Server固有のリソースを保護できます。次の主要な手順では、WebLogic Serverリソースを保護するタスクについて説明します。

1. 認可プロバイダおよびロール・マッピング・プロバイダを有効化します。
9.4.1項「WebLogic Serverとの統合」を参照してください。

2. 検出モードを使用して、保護されるリソースを検出します。
9.4.2項「WebLogic Serverリソースの検出」を参照してください。

3. WebLogic Server固有のリソースをOracle Entitlements Serverオブジェクトとして定義します。
9.4.3項「WebLogic Serverリソースの変換」と9.4.4項「WebLogic Serverリソースのポリシー・オブジェクトへのマッピング」を参照してください。

4. 適切な認可ポリシーとロール・マッピング・ポリシーを構成します。
第4章「ポリシーとポリシー・オブジェクトの管理」を参照してください。

5. ポリシーをセキュリティ・モジュールに配布します。
第6章「ポリシー配布の管理」を参照してください。

9.4.1 WebLogic Serverとの統合

1.3.2.2項「PDP/PEPの組合せとしてのセキュリティ・モジュール」で説明しているように、WebLogic Serverは、ロール・マッピングおよび認可プロバイダを有効化した後で、認可リクエストを自動的に捕捉できます。次の手順は、これを行う方法を説明します。ここでは、WebLogic Serverは、$DOMAINドメインの$WLSディレクトリにインストールされていることを前提としています。次の手順を実行する際は、インストールに合わせて値を置き換えてください。

1. 次のコマンドを使用して、$DOMAINドメインを起動します。

$DOMAIN/startWeblogic.sh

2. 認可プロキシおよびロール・マッピング・プロバイダを、ドメインを保護するレルムに追加します。
図9-1は、これを示すWebLogic Serverコンソールのスクリーンショットです。

図9-1 WebLogic Serverドメインのレルムへのプロバイダの追加

3. ドメインを再起動します。

プロバイダを有効化したら、構成パラメータについてA.2.5項「WebLogic Serverセキュリティ・モジュール」を参照してください。

9.4.2 WebLogic Serverリソースの検出

アプリケーションのリソースを保護するポリシーを作成する場合、保護される必要があるすべてのリソースは検出される必要があります。WebLogic Serverセキュリティ・モジュールを検出モードで実行し、(使用状況を追跡するために)1つ以上のユーザー・セッションを開くことによって、アプリケーションのリソースを定義できます。(検出モードは、認可するのではなく、保護されるオブジェクトを検出します。)ユーザー・セッション中に実行されたアクティビティに基づいて、Oracle Entitlements Serverは初期ポリシー・セット(保護されるすべてのリソースが定義されます)が生成されます。生成されたポリシー・セットは、ポリシー・ストアにインポートできます。

注意:

生成されたファイルは、アプリケーションを完全に保護するポリシー・セットを定義する出発点として機能するように作られています。詳細は次のとおりです。

- 記録されるのはユーザー・セッション中のリクエストに基づくポリシー・データのみであり、使用されないアプリケーションのパーツのポリシー・データは生成されません。

- アプリケーションのリソースの定義に使用するリソース階層によっては、インポートされたポリシー・セットに実際に必要な数よりも多くのリソースが含まれる可能性があります。

リソース検出は、認可プロバイダおよびロール・マッピング・プロバイダが検出モードで実行されている場合に有効です。このモードでは、これらのプロバイダからユーザー・リクエストの評価結果として常にtrueが返され、それらのリクエストに対する初期ポリシー・セットが生成されます。検出モードでは、アプリケーション、リソース・タイプ(と対応するアクション)、リソース・タイプmatcherClass名およびリソースが検出される可能性があります。次の各項では、詳細を説明します。

- 9.4.2.1項「検出モードの有効化」

- 9.4.2.2項「検出したリソースのロード」

9.4.2.1 検出モードの有効化

デフォルトでは、検出モードはオフです。(jps-config.xmlで)oracle.security.jps.discoveryModeプロパティをtrueに設定すると、機能が有効になります。oracle.security.jps.discoveredPolicyDirプロパティのディレクトリ値を追加すると、ポリシー・セットの書込み先が定義されます。

注意:

検出モードでは、階層型リソース・タイプの親リソースは生成されません。検出されるすべてのリソース・タイプが階層型であることを管理者が知っている場合は、オプションのoracle.security.jps.discoveredResourceIsHierarchicalプロパティとoracle.security.jps.discoveredResourceNameDelimiterプロパティに適切な値を追加します。

これらの構成パラメータの詳細は、付録A『インストール・パラメータおよび構成パラメータ』を参照してください。

9.4.2.2 検出したリソースのロード

生成される検出モード・ファイルは、jazn-data.xmlスキーマに基づいた、例9-8に示す標準XMLポリシー・ストア・ファイルです。Oracle Entitlements Server APIを使用して、検出されたオブジェクトを、ポリシー・ストア内の認可ポリシー・オブジェクトとして作成します。詳細は、13.5項「ポリシーの移行」を参照してください。

例9-8 検出されたリソースのサンプル・ファイル

<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<jazn-data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://xmlns.oracle.com/oracleas/schema/jazn-data-11_0.xsd">
<policy-store>
<applications>
<application>
<name>addConfRes#V2.0</name>
<resource-types>
<resource-type>
<name>FileResourceType</name>
<matcher-class>oracle.security.jps.JpsPermission</matcher-class>
<actions-delimiter>,</actions-delimiter>
<actions>delete,write,read</actions>
</resource-type>
<resource-type>
<name>ResType1</name>=
<actions-delimiter>,</actions-delimiter>
<actions>write,read</actions>
</resource-type>
</resource-types>
<resources>
<resource>
<name>EmpInfo</name>
<type-name-ref>FileResourceType</type-name-ref>
</resource>
<resource>
<name>resource1</name>
<type-name-ref>ResType1</type-name-ref>
</resource>
</resources>
</application>
</applications>
</policy-store>
</jazn-data>

9.4.3 WebLogic Serverリソースの変換

この項では、WebLogic Serverによってサポートされている様々なリソース・タイプをOracle Entitlements Serverで変換する方法およびOracle Entitlements Server管理コンソールでそれらを表す方法について説明します。WebLogic Serverリソースは、WebLogicセキュリティ・サービスが基礎となるWebLogic Serverエンティティを表すために作成するオブジェクトであり、誰がエンティティにアクセスできるのかを決定するために使用されます。

認可ポリシーでは、オブジェクトの中でも特に、トップレベルのアプリケーション、リソース・タイプおよび保護される実際のリソースが定義されます。このオブジェクトには、表9-4に記載されているオブジェクトが含まれる可能性があります。

表9-4 WebLogic Server認可ポリシー・オブジェクト

ノード

説明

アプリケーション

アプリケーションは、リソースが関連付けられているアプリケーションに対応します。すべてのリソースが特定のアプリケーションに属するわけではありません。たとえば、JDBCリソースはアプリケーションに属していません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーション名は、管理コンソールでアプリケーションが作成される際に定義されます(MyEjbApplicationなど)。

リソース・タイプ

リソース・タイプは、9.4.4項で定義されている、サポートされているWebLogic Serverリソース・タイプに対応します。リソース・タイプ名は、管理コンソールでリソース・タイプが作成される際に定義されます(ejbなど)。リソース・タイプは階層型またはフラットとして定義できます。

リソース

リソースは、保護されるリソース・タイプのインスタンスです。リソースは、階層型(すべての内容が保護されるディレクトリとして)または特定のファイルである可能性があります。リソース・インスタンスの作成元のリソース・タイプは、最初は階層型として定義される必要があります。

9.4.4 WebLogic Serverリソースのポリシー・オブジェクトへのマッピング

この項では、Oracle Entitlements Serverポリシー・オブジェクトを、共通の外部リソースに対して定義されたWebLogic Serverリソースにマップする方法について説明します。WebLogic Serverでサポートされるリソース・タイプ値には、adm、app、com、eis、ejb、jdbc、jms、jndi、ld、svr、url、webおよびwebservicesがあります。ここでは、次のリソース・タイプについて説明します。

- 9.4.4.1項「Enterprise Java Beanリソース」

- 9.4.4.2項「Java Naming and Directory Interfaceリソース」

- 9.4.4.3項「URLリソース」

- 9.4.4.4項「JDBCリソース」

- 9.4.4.5項「JMSリソース」

- 9.4.4.6項「Webサービス・リソース」

- 9.4.4.7項「サーバー・リソース」

9.4.4.1 Enterprise Java Beanリソース

Enterprise Java Bean (EJB)リソースの保護に使用するポリシーのオブジェクトを定義する場合、ポリシー・オブジェクトには、標準のEJBデプロイメント・ディスクリプタejb-jar.xmlで定義されている値に基づいて名前を付ける必要があります。例9-9は、AccountServiceという名前のEJBを定義する方法を示します。

例9-9 ejb-jar.xmlのEJBリソースの定義

<enterprise-beans>
<!-- Session Beans -->
<session>
<display-name>AccountService</display-name>
<ejb-name>AccountService</ejb-name>
<home>com.bea.security.examples.ejb.AccountServiceHome</home>
<remote>com.bea.security.examples.ejb.AccountService</remote>
<ejb-class>ejb.AccountServiceSession</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>

表9-5では、EJBリソースで使用するポリシー・オブジェクトを定義する際に使用する必要があるマッピングを説明します。

表9-5 EJB定義のポリシー・オブジェクトへのマッピング

ポリシー・オブジェクト名

EJB定義

アプリケーション

EJB名と同じ(この場合はAccountService)

リソース・タイプ

値ejbを使用

リソース名

ejb_name/method_name

- ejb_nameはEJBの名前

- method_nameは起動されるメソッドの名前

EJBメソッドはリソースURLの一部です。リソース・アクションは常にexecuteです。

次のリストには、認可ポリシーで条件の一部として使用できる、JNDIリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

- application: アプリケーションの名前

- module: モジュールの名前

- ejb: EJBの名前

- method: メソッドの名前

- methodインタフェース: 値としてHome、Remote、LocalHomeまたはLocalを使用します

- ParamN: メソッドのN番目のパラメータの値(Param1、Param2…など)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

9.4.4.2 Java Naming and Directory Interfaceリソース

Java Naming and Directory Interface (JNDI)ベースのリソースの保護に使用するポリシーのオブジェクトを定義する場合、ポリシー・オブジェクトには、WebLogic固有のデプロイメント・ディスクリプタweblogic-ejb-jar.xmlで定義されている値に基づいて名前を付ける必要があります。例9-10は、AccountServiceという名前のEJBにJNDI名を定義する方法を示します。

例9-10 weblogic-ejb-jar.xmlのJNDIリソースの定義

<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>AccountService</ejb-name>
<stateless-session-descriptor></stateless-session-descriptor>
<reference-descriptor></reference-descriptor>
<jndi-name>AccountService</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

表9-6では、JNDIベースのリソースで使用するポリシー・オブジェクトを定義する際に使用する必要があるマッピングを説明します。

表9-6 JNDI定義のポリシー・オブジェクトへのマッピング

ポリシー・オブジェクト名

JNDI定義

アプリケーション

shared

リソース・タイプ

jndi

リソース

未使用

JNDIコールのアクションはJNDIアクション名です。次のいずれかの値を使用できます。

- modifyは、アプリケーションでJNDIツリーになんらかの変更(追加、削除、変更)を行う場合に常に必要です。これには、bind()、rebind()、createSubContext()、destroySubContext()およびunbind()の各メソッドが含まれます。

- lookupは、アプリケーションでJNDIツリーのオブジェクトをルックアップする場合に常に必要です。これには、lookup()メソッドとlookupLink()メソッドが含まれます。

- listは、アプリケーションでJNDIのコンテキストのコンテンツをリストする場合に常に必要です。これには、list()メソッドとlistBindings()メソッドが含まれます。

次のリストには、認可ポリシーで条件の一部として使用できる、JNDIリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

- application - 常にshared。

- path - JNDIリソース・パス

- action - JNDIアクション名(modify | lookup | list)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

9.4.4.3 URLリソース

URL (Web)リソースは、Webアプリケーションに関連する特定のWebLogic Serverリソースです。Webアプリケーションを保護するには、Web Application aRchive (WAR)の認可ポリシーまたはWebアプリケーションの個別のコンポーネント(サーブレット、JSPなど)の認可ポリシーを作成します。表9-7は、URLリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-7 Oracle Entitlements ServerオブジェクトにマップされたURLリソース値

OESオブジェクト名

URLリソース値

アプリケーション

値として、リソースである(またはリソースを含む)Webアプリケーション名(WebLogic Server構成ファイルで定義されている)を使用します(bankappなど)。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はurl)。

リソースの親

値として、WebLogic Server構成ファイルで定義されているWebアプリケーションのコンテキスト・パスを使用します。次の例では、コンテキスト・パスが、最初の2つのポリシーでは/currencyExchange、最後の2つのポリシーでは/mybrokerとそれぞれ定義されています。

リソース

値としてコンテキスト・パスの後のリソースURIを使用します。この場合はcurrentRates.jspです。

URLリソースの認可ポリシーの作成方法を示すために、複数の銀行関連JSPからアクセス可能なWebリソースを保護する必要があると仮定します。WebLogic Server構成ファイルでは、Webアプリケーション名のbankappおよびコンテキスト・パスの/currencyExchange(最初の2つのポリシーの場合)と/mybroker(最後の2つのポリシーの場合)が参照されます。URLリソースの場合、アクション名はHTTPリクエスト・メソッド名(GET、POST、PUT、HEAD、DELETE、TRACE、CONNECTなど)にマップされます。

最初の認可ポリシーの例では、セキュア接続(HTTPS)経由でページがアクセスされている場合、任意の認可されていないユーザー(匿名)に現在の通貨交換レート(currentRates.jsp)を表示する権限が付与されます。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = bankapp

- リソース・タイプ = url

- リソース = currencyExchange/currentRates.jsp

- アクション = GET

- ユーザー = anonymous (unauthorized)

- 条件 = if issecure=yes

GETアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

2番目の認可ポリシーの例では、Managerロールの任意のメンバーがローカル・マシンからデータを更新する場合は、新しい通貨交換レートをポスト(postNewRates.jsp)する権限が付与されます。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = bankapp

- リソース・タイプ = url

- リソース = currencyExchange/postNewRates.jsp

- アクション = POST

- ロール = Manager

- 条件 = if remotehost="localhost"

POSTアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

3番目の認可ポリシーの例では、顧客の購買力が正の場合に、buyStocks.jspへのアクセス権が付与されます。顧客の購買力が正ではない場合、ページは表示されません。購入力を解読するために、顧客がbuyStocks.jspリンクをクリックすると、ブラウザによりJavaサーブレットにマップされたHTTPリクエストが送信されます。このリクエストは、サーブレットによってpurchasingPowerという名前のリクエスト属性が設定され、2番目のページに転送されます。このページでは、顧客のすべての口座から残高がフェッチされ、新しい株の購入に使用できる金額(購買力)が計算されて、purchasingPower属性に値が設定されます。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = bankapp

- リソース・タイプ = url

- リソース = mybroker/buyStocks.jsp

- アクション = GET

- ロール = Client

- 条件 = if purchasingPower>0

GETアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

4番目の認可ポリシーでは、(チェック・ボックスを選択することによって)取引契約に同意した場合にのみ顧客が口座を開くことが許可されます。openAccount.jspリンクをクリックした後、最初に表示されるページには取引契約が表示され、顧客に同意を求めます。チェック・ボックスは、customerAgreedという名前のHTMLフォーム・パラメータにリンクされています。顧客が取引契約に同意した場合、HTMLフォームがポストされたときに、このパラメータがtrueに設定されます。ポリシーでは、この値をcustomerAgreed HTTPリクエスト・パラメータで確認します。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = bankapp

- リソース・タイプ = url

- リソース = mybroker/openAccount.jsp

- アクション = POST

- ロール = Client

- 条件 = if Not customerAgreed="true"

POSTアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。

表9-8に、認可ポリシーで条件の一部として使用できる、URLリソースでサポートされている動的属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-8 URLリソースによりサポートされている動的属性

属性名

説明

application

Webアプリケーションの名前。

contextpath

Webアプリケーションのコンテキスト・パス。

uri

リソースのURI。

httpmethod

HTTPメソッド(アクションと同じ)。

transporttype

URLリソースにアクセスするために必要なトランスポート保証。デプロイメント・ディスクリプタの対応する<transport-guarantee>要素に表示されます。値はINTEGRALまたはCONFIDENTIALのどちらかです。

authtype

サーブレットの保護に使用する認証スキームの名前。値はBASIC、FORM、CLIENT_CERTまたはDIGESTのいずれかです。

pathInfo

クライアントがリクエストしたときに送信したURLに関連付けられている追加パス情報。

pathtranslated

サーブレットの後から問合せ文字列の前までの追加情報が実際のパスに変換された値。

querystring

リクエストURLのパスの後に含まれる問合せ文字列。

remoteuser

ユーザーが認証済の場合、リクエストしたユーザーのログイン。

requestedsessionid

クライアントが指定したセッションID。

requesturi

このリクエストのURLのHTTPリクエストの1行目のプロトコル名から問合せ文字列までの部分。

requesturl

クライアントがリクエストするために使用するURL。返されるURLには、プロトコル、サーバー名、ポート番号およびサーバー・パスが含まれますが、問合せ文字列パラメータは含まれません。

servletpath

このリクエストのURLのサーブレットをコールする部分。

characterencoding

リクエストの本体で使用される文字エンコーディング。

contenttype

リクエストの本体のMIMEタイプ。

locale

クライアントの優先ロケール。

protocol

プロトコルの名前とバージョン(HTTP/1.1など)。

remoteaddr

クライアントまたは最後にリクエストを送信したプロキシのインターネット・プロトコル・アドレス。

remotehost

クライアントまたは最後にリクエストを送信したプロキシの完全修飾名。

scheme

このリクエストのために使用したスキームの名前(http、httpsまたはftpなど)。

servername

リクエストの送信先のサーバーのホスト名。

serverport

リクエストの送信先のポート番号。

issecure

このリクエストがセキュア・チャネル(HTTPSなど)を使用しているかどうかを示すブール値。

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

HTTPリクエストには、サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーおよびCookieなどの要素が含まれる可能性があります。これらの要素は名前と値のペアとして使用でき、動的属性にマップできます。

注意:

サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーおよびCookieに対応する属性は大/小文字が区別されません。ただし、属性名は大/小文字が区別されると仮定すると、パフォーマンスがわずかですが向上します。

フレームワークが一致する属性を検索する順序は次のとおりです。

1. URL問合せパラメータ - URLに追加される名前と値のペア。URL問合せ文字列に含まれるパラメータに対応する属性名は、パラメータ名と同じです。名前は文字列として表され、大/小文字は区別されません。属性は、リクエスト内にエンコードされている問合せ文字列変数です。たとえば、URLに?test=endcoded%20charという問合せが含まれる場合、認可ポリシーの条件では"if test= "encoded char"としてパラメータにアクセスできます。

2. サーブレット属性 - サーブレット・コンテナにより内部的にリクエストに追加できる名前と値のペア。それを実現するには、通常はServletRequestインタフェースのsetAttributeメソッドをコールします。ポリシー属性名はサーブレット属性の名前に一致し、文字列として表され、大/小文字は区別されません。

3. HTTPリクエスト・ヘッダー - HTTPリクエスト・ヘッダーの属性名はヘッダーの名前に一致します。名前は文字列として返され、大/小文字は区別されません。使用可能なヘッダーの例として、date、if-modified-since、referrerまたはuser-agentがあります。(dateヘッダーは通常は日付タイプですが、文字列として返されます。)

4. Cookies - HTTPリクエストのCookieに一致する属性名はリクエストのCookie名と同じです。名前は文字列として返され、大/小文字は区別されません。返されるCookieの値はアプリケーション固有であり、さらにデコードする必要がある可能性があります。

注意:

サーブレット属性、URL問合せパラメータ、HTTPリクエスト・ヘッダーまたはCookieの名前が衝突する場合、ポリシーの制約では1つの属性のみ使用可能です。

9.4.4.4 JDBCリソース

Java Database Connectivity (JDBC)リソースは、JDBCに関連するWebLogic Serverリソースです。サービスまたはアプリケーションとしてデプロイされているJDBCリソースを保護できます。JDBCデータベース・アクセスを保護するには、すべてのデータソースに対して集団的、個別のデータソースおよび複数のデータソースに認可ポリシーを作成します。例9-11に、MyJDBCConnectionPoolという名前のJDBCリソースをWebLogic Server構成ファイルconfig.xmlで定義する方法を示します。

例9-11 config.xmlのJDBCリソースの定義

<JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver"
Name="MyJDBCConnectionPool"
PasswordEncrypted="{3DES}B2Bl+tp70Eh3D1pT53/anw=="
Properties="user=wles" Targets="myserver"
TestTableName="SQL SELECT 1 FROM DUAL"
URL="jdbc:oracle:thin:@localhost:1521:ASI"/>
<JDBCTxDataSource JNDIName="MyDataSource"
Name="MyJDBCDataSourceName"
PoolName="MyJDBCConnectionPool"
Targets="myserver"/>

表9-9は、JDBCリソースMyJDBCConnectionPoolを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-9 Oracle Entitlements ServerオブジェクトにマップされたJDBC値

OESオブジェクト名

JDBC値

アプリケーション

JDBCリソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はjdbc)。

リソースの親

値として、モジュール名(存在する場合)とプール・タイプ(ConnectionPoolまたはMultiPool、この場合はConnectionPool)を使用します。

リソース

値として、config.xmlで定義されているJDBC名を使用します。この場合はMyJDBCConnectionPoolです。

Oracle Entitlements Serverを使用するJDBCリソースのポリシー・オブジェクトの作成方法を示すために、ExternalApplicationロールのメンバーにExternalDataPoolという名前の接続プールのJDBC接続をreserveする(開く)権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = shared

- リソース・タイプ = jdbc

- リソース = ConnectionPool/ExternalDataPool

- アクション = reserve

次に示す2番目のオブジェクト・グループは、管理ロールのメンバーに、SystemJdbcPoolという名前のリソースを除く任意のJDBCリソースをシャットダウンする権限を付与するポリシーで使用されます。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = shared

- リソース・タイプ = jdbc

- リソース = ConnectionPool/ExternalDataPool

- アクション = admin

- 条件 = if Not resource="SystemJdbcPool"

reserveアクションとadminアクションは認可ポリシーの一部であって、認可ポリシーのアクションではないことに注意してください。リソース・タイプに対して許可されるすべてのアクションは常に、リソース・タイプ・プロファイルの一部として定義されます。ポリシー・アクションは常にGRANTまたはDENYです。表9-10では、JDBCリソースに対して実行でき、そのためにリソース・タイプのアクションとして定義する必要がある特定のアクションについて説明します。

表9-10 JDBCリソースのアクション・オプション

アクション名

操作

admin

管理操作(clearStatementCache、suspend、forceSuspend、resume、shutdown、forceShutdown、start、getPropertiesおよびpoolExistsなど)を実行するためのアクション。

reserve

データソースをルックアップしてgetConnectionをコールすることによってデータソースで接続を予約するアクション。

shrink

データソースの接続数を縮小するアクション。

reset

すべての物理データベース接続をシャットダウンして再確立することによって、データソース接続をリセットするアクション。

例9-12は、事前定義済JDBCリソースを使用するサンプル・コードです。データソース・インスタンスのgetConnection()メソッドをコールします。これにより認可の確認が開始され、//app/policy/AppParentNode/shared/jdbc/ConnectionPool/MyJDBCConnectionPoolリソースに対するreserveアクションが確認されます。

例9-12 JDBCリソースに対する認可の開始

javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)
initialContext.lookup("MyDataSource");
java.sql.Connection conn = ds.getConnection();
PreparedStatement statement =
conn.prepareStatement("SELECT accountName FROM accounts WHERE balance < 0");
ResultSet result = statement.executeQuery();
if (result.next()) {
String accountName = result.getString(1);
System.out.println("The first account with negative balance is " + accountName);
}

表9-11に、認可ポリシーで条件の一部として使用できる、JDBCリソースでサポートされている動的属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-11 JDBCリソースによりサポートされている動的属性

属性名

要素

application

リソースをホストするアプリケーションの名前

module

リソースが属するモジュールの名前

category

リソース・タイプ(ConnectionPool | MultiPool)

resource

リソースの名前

action

JDBC操作名(admin | reserve | shrink | reset)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

9.4.4.5 JMSリソース

Java Messaging Service (JMS)リソースは、JMSに関連するWebLogic Serverリソースです。サービスまたはアプリケーションとしてデプロイされているJMSリソースを保護できます。JMS宛先を保護するには、すべての宛先(JMSキューとJMSトピック)に対して集団的または個別(JMSサーバー上の1つのJMSキューまたはJMSトピック)に認可ポリシーを作成します。表9-12は、JMSリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-12 Oracle Entitlements ServerオブジェクトにマップされたJMS値

OESオブジェクト名

JMS値

アプリケーション

JMSリソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はjms)。

リソースの親

宛先タイプ(topicまたはqueue)

リソース

リソース名

例9-13では、MyJMSQueueという名前のJMSキューをWebLogic Server構成ファイルconfig.xmlで構成します。

例9-13 config.xmlのJMSキュー・リソースの定義

<JMSServer Name="WSStoreForwardInternalJMSServermyserver"
Store="FileStore" Targets="myserver">
<JMSQueue CreationTime="1150241964468"
JNDIName="JMSQueue" Name="MyJMSQueue"/>
</JMSServer>

<JMSConnectionFactory JNDIName="JmsConnectionFactory"
Name="MyJMSConnectionFactory" Targets="myserver"/>

例9-14は、事前宣言済JMSキューを使用するJMSクライアントを示します。クライアントは、MyJMSQueueにテキスト・メッセージを送信します。

例9-14 JMSクライアントの例

//Instantiate the inital context
javax.naming.InitialContext initialContext = new javax.naming.InitialContext();

//Look up the JMS connection factory and the message queue
Queue messageQueue = (Queue) initialContext.lookup("JMSQueue");
JMSConnectionFactory factory =
(JMSConnectionFactory) initialContext.lookup("JmsConnectionFactory");

//Create the queue connection and session
QueueConnection queueConnection = factory.createQueueConnection();
QueueSession session =
queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

//Create a text message
TextMessage textMessage = session.createTextMessage();
textMessage.setText("Hello from the client!");

//Send message to the queue
QueueSender sender = session.createSender(messageQueue);
sender.send(textMessage);

JMSリソースの認可ポリシーの作成方法を示すために、クライアント・ロールのメンバーにFeedbackQueueという名前のJMSキューにメッセージを送信する権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = shared

- リソース・タイプ = jms

- リソース = queue/FeedbackQueue

- アクション = send

- ロール = Client

次の2番目の認可ポリシーでは、FeedbackProcessorユーザーにFeedbackQueueという名前のJMSキューからメッセージを受信する権限を付与します。

- アプリケーション = shared

- リソース・タイプ = jms

- リソース = queue/FeedbackQueue

- アクション = send

- ユーザー = myusers/FeedbackProcessor

アクション(sendとreceive)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。表9-13では、JMSリソースに対して実行できる特定のアクションについて説明します。

表9-13 JMSリソースのアクション・オプション

アクション

説明

send

キューまたはトピックにメッセージを送信するために必要です。これには、MessageProducer.send()、QueueSender.send()およびTopicPublisher.publish()の各メソッドのコールが含まれます。

receive

キューまたはトピックにコンシューマを作成するために必要です。これには、Session.createConsumer()、Session.createDurableSubscriber()、QueueSession.createReceiver()、TopicSession.createSubscriber()、TopicSession.createDurableSubscriber()、Connection.createConnectionConsumer()、Connection.createDurableConnectionConsumer()、QueueConnection.createConnectionConsumer()、TopicConnection.createConnectionConsumer()およびTopicConnection.createDurableConnectionConsumer()の各メソッドのコールが含まれます。

browse

QueueBrowserインタフェースを使用してキューのメッセージを表示するために必要です。

表9-14に、認可ポリシーで条件の一部として使用できる、JMSリソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-14 JMSリソースによりサポートされている動的属性

属性名

説明

application

リソースをホストするアプリケーションの名前

destinationtype

JMS宛先タイプ(queue | topic)

resource

リソースの名前

action

JDBC操作名(send | receive | browse)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

9.4.4.6 Webサービス・リソース

Webサービス・リソースは、Webサービスに関連するWebLogic Serverリソースです。Webサービスを保護するには、Webサービス・リソース全体、Webサービス・リソース操作のサブセット、Webサービス・リソースを実装しているステートレス・セッションEJB、またはステートレス・セッションEJB内のメソッドのサブセットに対する認可ポリシーを作成します。例9-15に、BasicWS_Componentという名前のWebサービス実装が含まれるBasicWSという名前のWebアプリケーションの構成を示します。

例9-15 Webアプリケーションの構成

<application Name="BasicWS"
Path="applications/BasicWS.ear"
StagedTargets="myserver"
<WebServiceComponent Name="BasicWS_Component"
Targets="myserver"
URI="BasicWS.war"/>
</application>

例9-16に、BasicWS.ear内のapplication.xmlファイルのWebアプリケーション・コンテキストの定義を示します。

例9-16 Webアプリケーション・コンテキストの構成

<module>
<web>
<web-uri>basic_javaclass.war</web-uri>
<context-root>myservices</context-root>
</web>
</module>

例9-17に、HelloWorldという名前のWebサービスの構成を示します。これは、WebアプリケーションWARファイル内のweb-services.xmlディスクリプタ・ファイルで定義されています。

例9-17 Webサービスの構成

<web-services>
<web-service useSOAP12="false"
name="HelloWorld"
style="rpc"
uri="/HelloWorld">
<operations>
<operation name="sayHello"
method="sayHello(int,java.lang.String)"/>
</operations>
</web-service>
</web-services>

表9-15は、Webリソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでオブジェクトが作成される際に定義されます。

表9-15 Oracle Entitlements ServerオブジェクトにマップされたWebサービス値

OESオブジェクト名

Webサービス値

アプリケーション

web-services.xmlファイルで定義されているアプリケーションの名前(この場合はBasicWS)。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はwebservices)。

リソースの親

値として、application.xml構成ファイルの<context-root>要素で定義されているWebサービスのコンテキスト・パスを使用します(この場合はmyservices)。

リソース

web-services.xmlで定義されているWebサービス名。

HelloWorld WebサービスでsayHello()メソッドをコールするには、クライアントにアクションsayHelloが付与されている必要があります。一部のクライアントは、Webサービスを定義するWeb Services Definition Language (WSDL)ファイルへのアクセス権も必要になる可能性があります。WSDLファイルは、URLリソースとして定義されます。例9-18は、sayHello()メソッドをコールする前にクライアントが定義されたURLにあるWSDLファイルにアクセスできるコードです。

例9-18 WSDLにアクセスするクライアント・コード

String wsdlUrl = "http://localhost:7001//HelloWorld?WSDL";
HelloWorld service = new HelloWorld_Impl(wsdlUrl);
HelloWorldPort port = service.getHelloWorldPort();
String result = port.sayHello(34, "Josh");

このコードを正常に実行するには、クライアントにWSDLファイル(URLリソース)に対するGET権限が付与されている必要があります。(URLの場合、リソース名が小文字であることに注意してください。)また、クライアントにWebサービス・リソースに対するGET権限が付与されている必要があります。(Webサービスの場合、リソース名は先頭文字が大文字であることに注意してください。)管理コンソールを使用してURLリソース認可ポリシーの次のオブジェクトを作成します。

- アプリケーション = BasicWS

- リソース・タイプ = url

- リソース = myservices/helloworld

- アクション = GET

- ロール = SomeUser

管理コンソールを使用してWebサービス・リソース認可ポリシーの次のオブジェクトを作成します。

- アプリケーション = BasicWS

- リソース・タイプ = webservices

- リソース = myservices/HelloWorld

- アクション = sayHello

- ロール = SomeUser

アクション(GETとsayHello)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。

表9-16に、認可ポリシーで条件の一部として使用できる、Webサービス・リソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-16 Webサービス・リソースによりサポートされている動的属性

属性名

説明

application

アプリケーション名

contextpath

Webアプリケーションのコンテキスト・パス

webservice

Webサービスの名前

method

コールされるWebサービス操作の名前

ParamN

メソッドのN番目のパラメータの値(Param1、Param2…など)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

9.4.4.7 サーバー・リソース

サーバー・リソースにより、WebLogic Serverインスタンスの状態を制御できるユーザーが決まります。ユーザーがJavaコマンドでweblogic.Serverクラスを起動することによってサーバー・インスタンスを起動する場合、サーバー・リソースに対するポリシーは、実行される唯一のセキュリティ・チェックです。ドメイン内のすべてのWebLogic Serverインスタンスまたは個別のサーバーに適用される認可ポリシーを作成できます。例9-19は、myserverという名前のWebLogic Serverインスタンスの構成例です。

例9-19 WebLogic Serverインスタンスの構成

<Server ListenAddress=""
ListenPort="7001"
Machine="mymachine"
Name="myserver"
NativeIOEnabled="true"
ReliableDeliveryPolicy="RMDefaultPolicy"
ServerVersion="8.1.5.0">
<SSL Enabled="false" HostnameVerificationIgnored="false"
IdentityAndTrustLocations="KeyStores" Name="myserver"/>
</Server>

表9-17は、サーバー・リソースを保護する場合にOracle Entitlements Serverオブジェクトに名前を付ける方法を示します。これらの値は、Oracle Entitlements Server管理コンソールでエンティティが作成される際に定義されます。

表9-17 Oracle Entitlements Serverオブジェクトにマップされたサーバー・リソース値

OESオブジェクト名

サーバー・リソース値

アプリケーション

サーバー・リソースは特定のアプリケーションには属しません。このような場合、アプリケーションの名前のかわりにsharedが使用されます。アプリケーションsharedは、管理コンソールでアプリケーションが作成される際に定義されます。

リソース・タイプ

値として、サポートされているいずれかのリソース・タイプを使用します(この場合はsvr)。

リソース

サーバー・インスタンス名。

サーバー・リソースの認可ポリシーの作成方法を示すために、管理ロールのメンバーにすべてのWebLogic Serverインスタンスをブートする権限を付与する必要があると仮定します。管理コンソールを使用して次のオブジェクトを作成します。

- アプリケーション = shared

- リソース・タイプ = svr

- リソース = /lib/*

- アクション = boot

- ロール = Admin

次の2番目の認可ポリシーでは、管理ロールのメンバーにCentralServerという名前のWebLogic Serverインスタンスをシャットダウンまたは一時停止する権限を付与します。ポリシーは、権限が日曜日または他の曜日の午前2時から午前4時までの間のみ付与されるという点で制約されています。

- アプリケーション = shared

- リソース・タイプ = svr

- リソース = CentralServer

- アクション = shutdown / suspend

- ロール = Admin

- 条件 = 日曜日または他の曜日の午前2時から午前4時までの間のみ

アクション(bootとshutdown/suspend)は認可ポリシーの一部であることに注意してください。ポリシーの結果は常にGRANTまたはDENYです。表9-18では、サーバー・リソースに対して実行できる特定のアクションについて説明します。

表9-18 サーバー・リソースのアクション・オプション

アクション

説明

boot

管理サーバーまたは管理対象サーバーのどちらかのWebLogic Serverインスタンスを起動するために必要なアクション

shutdown

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスをシャットダウンするために必要なアクション

suspend

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスに対する他のログイン(特権管理アクション以外を目的とするログイン)を禁止するために必要なアクション

resume

管理サーバーまたは管理対象サーバーのどちらかの実行中のWebLogic Serverインスタンスへの非特権ログインを再度有効化するために必要なアクション

表9-19に、認可ポリシーで条件の一部として使用できる、サーバー・リソースでサポートされている属性を示します。詳細は、4.6項「条件ビルダーの使用」を参照してください。

表9-19 サーバー・リソースによりサポートされている動的属性

属性名

説明

server

リソースが関連付けられているサーバーの名前

action

サーバー・インスタンスに対して実行される操作の名前(boot | shutdown | suspend | resume)

注意:

条件ビルダーを使用する前に、まずOracle Entitlements Server管理コンソールで動的属性を作成する必要があります。詳細は、4.5.9項「属性および関数を拡張として管理」を参照してください。

10 システム構成の管理

セキュリティ・モジュール定義および管理者の構成は、Authorization Policy Manager管理コンソールの最上位の「システム構成」タブ内で定義されます。この章の内容は次のとおりです。

- 10.1項「管理者の委任」

- 10.2項「セキュリティ・モジュール定義の構成」

- 10.3項「Identity Directory Serviceプロファイルの構成」

10.1 管理者の委任

管理者ロールを作成して、ポリシー・オブジェクトの管理操作を委任できます。たとえば、管理者ロールを適切なレベルで作成し、管理権限ロールに加えてユーザー、グループ、または他のロールも割り当てることによって、管理者を委任するアプリケーション・ドメインおよびポリシー・ドメインを定義できます。詳細は、第11章「管理者ロールの委任」を参照してください。そこには、アプリケーション・ドメインまたはポリシー・ドメインの他のタイプの管理者ロールを管理できるシステム管理者ロールの作成に関する項があります。

10.2 セキュリティ・モジュール定義の構成

セキュリティ・モジュールは、認可での主要な役割を果たすOracle Entitlements Serverクライアントです。認可リクエストが生成されると、セキュリティ・モジュールはポリシー・データを評価し、リソースへのアクセス権を付与するか拒否するかを決定します。アプリケーション(保護されたリソースを表すOracle Entitlements Serverオブジェクト)を、それを保護するセキュリティ・モジュールにバインドする必要があります。セキュリティ・モジュールをバインドすると、ポリシー・データを評価のために送信できます。ポリシー配布コンポーネント(第6章「ポリシー配布の管理」で説明)は、ポリシー・データをセキュリティ・モジュールに送信する際に使用されるメカニズムです。

注意:

認可プロセスの詳細は、1.4項「Oracle Entitlements Serverの認可ポリシーの処理方法」を参照してください。

次の各項では、アプリケーション・オブジェクトに対するセキュリティ・モジュール定義のバインド(およびバインド解除)の方法について説明します。

- 10.2.1項「セキュリティ・モジュール定義の作成」

- 10.2.2項「セキュリティ・モジュールへのアプリケーションのバインド」

- 10.2.3項「セキュリティ・モジュールからのアプリケーションのバインド解除」

- 10.2.4項「セキュリティ・モジュール定義の削除」

注意:

セキュリティ・モジュール定義をバインドする前に、セキュリティ・モジュールをインストールして構成する必要があります。詳細は、第8章「セキュリティ・モジュールの構成の管理」を参照してください。

10.2.1 セキュリティ・モジュール定義の作成

セキュリティ・モジュールを作成するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるセキュリティ・モジュールをダブルクリックします。
または、セキュリティ・モジュールを右クリックして、「オープン」を選択します。図10-1に示すように、「セキュリティ・モジュール」ページが表示されます。

図10-1 「ホーム」領域のセキュリティ・モジュール

3. 「新規」をクリックして、新規セキュリティ・モジュール定義を作成します。
または、「アクション」メニューから「新規」を選択します。「セキュリティ・モジュール」ダイアログが表示されます。

4. 新規セキュリティ・モジュールに、次の値を指定します。

- 名前: 入力値は一意である必要があります。

- 表示名

- 説明

5. 「保存」をクリックします。

10.2.2 セキュリティ・モジュールへのアプリケーションのバインド

アプリケーションをセキュリティ・モジュールにバインドするには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるセキュリティ・モジュールをダブルクリックします。
または、セキュリティ・モジュールを右クリックして、「オープン」を選択します。「セキュリティ・モジュール」ページが表示されます。

3. セキュリティ・モジュール定義の名前を表から選択します。

4. 「アプリケーションにバインド済」表の「追加」をクリックして、「アプリケーションを追加」ダイアログを表示します。
または、「アプリケーションにバインド済」の「アクション」メニューから「追加」をクリックして、「アプリケーションを追加」ダイアログを表示します。

5. テキスト・ボックスに検索文字列を入力し、矢印をクリックして検索します。
または、検索文字列を入力せずに矢印をクリックして、使用可能なすべてのアプリケーションを返します。

6. 返されたリストから、1つ以上のアプリケーションを選択します。

7. 「追加」をクリックします。
選択したアプリケーションが選択したセキュリティ・モジュールにバインドされ、アプリケーションにバインド表に表示されます。

10.2.3 セキュリティ・モジュールからのアプリケーションのバインド解除

アプリケーションをセキュリティ・モジュールからバインド解除するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるセキュリティ・モジュールをダブルクリックします。
または、セキュリティ・モジュールを右クリックして、「オープン」を選択します。「セキュリティ・モジュール」ページが表示されます。

3. 表で、該当するセキュリティ・モジュール定義の名前を選択します。

4. アプリケーションにバインド表で、該当するアプリケーションの名前を選択します。

5. 「削除」をクリックするか、「アクション」メニューから「削除」を選択します。
確認ダイアログが表示されます。

6. 「アンバインド」をクリックします。

10.2.4 セキュリティ・モジュール定義の削除

セキュリティ・モジュール定義を削除するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるセキュリティ・モジュールをダブルクリックします。
または、セキュリティ・モジュールを右クリックして、「オープン」を選択します。「セキュリティ・モジュール」ページが表示されます。

3. 表で、該当するセキュリティ・モジュール定義の名前を選択します。

4. 「削除」をクリックするか、「アクション」メニューから「削除」を選択します。
確認ダイアログが表示されます。

5. 「削除」をクリックします。

10.3 Identity Directory Serviceプロファイルの構成

Oracle Entitlements Serverを使用してポリシーを定義する場合、ユーザーとグループをサブジェクトとして指定する必要があります。これは、アイデンティティ・データ・ストアを検索することによって実現されます。Identity Directory Serviceは、Oracle Entitlements Serverが複数のアイデンティティ・データ・ストアにアクセスするために使用する柔軟で構成可能なサービスです。Identity Directory Serviceの目的は、Oracle Entitlements Serverが一緒にデプロイされていないアイデンティティ・ストアに含まれるユーザーおよびグループを使用するポリシーを管理できるようにすることです。

アプリケーション(保護されたリソースを表すOracle Entitlements Serverオブジェクト)をIdentity Directory Serviceプロファイルにバインドして、Oracle Entitlements Serverがそのプロファイルで表されるアイデンティティ・ストアと通信できるようにする必要があります。デフォルトでは、アプリケーションは、管理コンソールにログインする際の認証に使用されるLDAPディレクトリに関連付けられています。管理者は、Identity Directory Serviceで構成されているアイデンティティ・データ・ストアを使用できるように、この関連付けを変更できます。

注意:

Identity Directory Serviceプロファイルがアプリケーションにバインドされると、拡張検索または簡易検索をグローバル(デフォルト・オプション)またはアプリケーションの範囲内で開始できるようになります。後者のオプションの場合、そのアプリケーションに設定されているアイデンティティ・データ・ストア内で検索が行われます。詳細は、第5章「セキュリティ・オブジェクトの問合せ」を参照してください。

次の各項では、Identity Directory Serviceプロファイルとアプリケーション・オブジェクトをバインド(アンバインド)する方法について説明します。

- 10.3.1項「Identity Directory Serviceプロファイルの作成」

- 10.3.2項「Identity Directory Serviceプロファイルへのアプリケーションのバインド」

- 10.3.3項「Identity Directory Serviceプロファイルからのアプリケーションのアンバインド」

- 10.3.4項「Identity Directory Serviceプロファイルの削除」

注意:

Identity Directory ServiceのWebLogic Scripting Tool (WLST)コマンドの詳細は、『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』を参照してください。

10.3.1 Identity Directory Serviceプロファイルの作成

Identity Directory Serviceプロファイルを作成するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルで「IDSプロファイル」をダブルクリックします。
または、「IDSプロファイル」を選択して「開く」をクリックします。図10-2に示すように、「IDSプロファイル」ページが表示されます。

図10-2 「ホーム」領域の「IDSプロファイル」

3. 「作成」をクリックして、新しいIdentity Directory Serviceプロファイルを作成します。
図10-3に示すように、アイデンティティ・ストア・プロファイルの作成ページが表示されます。

図10-3 アイデンティティ・ストア・プロファイルの作成ページ

4. 新しいIdentity Directory Serviceプロファイルの次の値を指定します。

- 名前: 一意の値を入力する必要があります。

- 説明

5. 「新規作成」または「既存のものを使用」を選択し、適用可能な値を指定してリポジトリを定義します。

- 名前: 一意の値を入力する必要があります。

- ディレクトリ・タイプ - ドロップダウン・メニューから選択

- ホスト情報 - ホスト名、ポート番号および負荷重み付けパーセンテージを追加

- 可用性 - 「フェイルオーバー」またはロード・バランスを選択

- SSL - 有効化する場合は選択

- バインドDN

- バインド・パスワード

- ベースDN

「接続のテスト」をクリックして、値が正しいことを確認します。

6. ユーザーの確認方法を定義する適用可能な値を指定します。

- オブジェクト・クラス

- 名前属性

- ベースDN

7. グループの確認方法を定義する適用可能な値を指定します。

- オブジェクト・クラス

- 名前属性

- ベースDN

8. 「作成」をクリックします。
プロファイルが、「IDSプロファイル」リストに表示されます。

10.3.2 Identity Directory Serviceプロファイルへのアプリケーションのバインド

Identity Directory Serviceプロファイルにアプリケーションをバインドするには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルで「IDSプロファイル」をダブルクリックします。
または、「IDSプロファイル」を選択して「開く」をクリックします。

3. 上にある表からIdentity Directory Serviceプロファイルの名前を選択します。

4. 「アプリケーションにバインド済」表の「追加」をクリックして、「アプリケーションを追加」ダイアログを表示します。
または、「アプリケーションにバインド済」の「アクション」メニューから「追加」をクリックして、「アプリケーションを追加」ダイアログを表示します。

5. テキスト・ボックスに検索文字列を入力し、矢印をクリックして検索します。
または、検索文字列を入力せずに矢印をクリックして、使用可能なすべてのアプリケーションを返します。

6. 返されたリストから、1つ以上のアプリケーションを選択します。

7. 「追加」をクリックします。
選択したアプリケーションが選択したIdentity Directory Serviceプロファイルにバインドされ、「アプリケーションにバインド済」表に表示されます。

注意:

すでにIdentity Directory Serviceプロファイルにバインドされているアプリケーションを別のIdentity Directory Serviceプロファイルにバインドした場合、最初のプロファイルからは自動的にアンバインドされます。

10.3.3 Identity Directory Serviceプロファイルからのアプリケーションのアンバインド

Identity Directory Serviceプロファイルからアプリケーションをアンバインドするには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルで「IDSプロファイル」をダブルクリックします。
または、「IDSプロファイル」を選択して「開く」をクリックします。

3. 表で該当するIdentity Directory Serviceプロファイルの名前を選択します。

4. アプリケーションにバインド表で、該当するアプリケーションの名前を選択します。

5. 「削除」をクリックするか、「アクション」メニューから「削除」を選択します。
確認ダイアログが表示されます。

6. 「アンバインド」をクリックします。

10.3.4 Identity Directory Serviceプロファイルの削除

Identity Directory Serviceプロファイルを削除するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルで「IDSプロファイル」をダブルクリックします。
または、「IDSプロファイル」を選択して「開く」をクリックします。

3. 表で該当するIdentity Directory Serviceプロファイルの名前を選択します。

4. 「削除」をクリックします。
確認ダイアログが表示されます。

5. 「OK」をクリックします。

11 管理者ロールの委任

システム管理権限およびポリシー管理権限を、ある管理者から別の管理者に委任するには、制限付きの権限を持つ管理者ロールを作成するか、既存の管理者ロールをユーザーまたは既存の外部ロールに付与します。この章では、ポリシーおよびシステム管理タスクを委任する方法について説明します。この章には次の項目があります。

- 11.1項「委任管理者について」

- 11.2項「範囲と粒度を使用した委任」

- 11.3項「アプリケーション管理の委任」

- 11.4項「委任するポリシー・ドメインの使用」

- 11.5項「ポリシー・ドメイン管理の委任」

- 11.6項「管理者ロールを使用したシステム管理者の管理」

11.1 委任管理者について

管理は、特定のジョブを行うために、1つ以上の認可された権限が誰かに付与されるタイミングです。委任は、誰かに付与されている認可された権限を別の人に譲渡する機能です。それとともに、ある人から別の人への認可された権限の譲渡として、管理の委任を定義できます。Oracle Entitlements Serverでは、ポリシー・オブジェクトおよびエンティティでのタスクを実行する資格を持つ管理者は、管理ロールを使用して、この権限を他の人に譲渡できます。管理ロールは、サブジェクト(ロールを付与される人)、リソース(ロールが関連するオブジェクト)およびアクション(表示、管理/変更)で構成されます。

注意:

ロールの詳細は、1.5.1項「ロールベースのアクセス制御(RBAC)」を参照してください。

Oracle Entitlements Serverでは、管理権限を割り当て、外部ロールおよびユーザーをマッピングすることによって、管理者ロールの委任を定義できます。ユーザーが管理者としてログインすると、ナビゲーション・パネルには、ログイン・ユーザーが管理することを認可されたアプリケーションのセットのみ表示されます。実際は、委任管理者が管理できないすべてのオブジェクトは、非表示になっています。表示および管理権限を持つ管理ロールが付与されている場合、どの非デフォルト委任管理者ロールも、管理操作を実行できます。

注意:

非デフォルト管理者ロールは、手動で作成された任意の管理者ロールです。アプリケーションまたはポリシー・ドメインの作成時に自動的に作成された管理者ロールは、これには含まれません。

管理者ロールには、次の制限も適用されます。

- 非システム・レベルの(委任)管理ロールは、その範囲内の他の管理ロールのみ管理できます。たとえば、アプリケーション1に作成された管理ロールは、アプリケーション1のポリシー・ドメイン内の管理ロールを管理できますが、アプリケーション1内のピア管理ロール、またはアプリケーション2およびアプリケーション2のポリシー・ドメイン内のすべてのロールは管理できません。範囲と粒度の詳細は、第11章「範囲と粒度を使用した委任」で説明しています。

- システム・レベルの管理ロール(第10章「システム構成の管理」で説明)は、どのアプリケーションまたはポリシー・ドメイン内の管理ロールの委任も管理できます。

- 非デフォルト管理ロール(手動で作成)は、どのアプリケーションまたはポリシー・ドメイン内のデフォルト管理ロールも管理できません。

11.2 範囲と粒度を使用した委任

委任管理は、リソースおよびポリシー・オブジェクトの管理をある人から別の人に譲渡することに関するすべてです。委任の範囲(または委任によって適用されるオブジェクトの範囲)は、レベルで定義されます。管理の粒度は、各範囲で管理されるオブジェクトのタイプを定義します。各範囲が作成されると、デフォルトの管理ロールが自動的に作成されます。追加の管理ロールは後で作成できます。

注意:

次は、すべてのデフォルトの管理ロールに適用可能です。

- デフォルトの管理者ロールは、個別に削除できません。

- ポリシー・ドメインが削除されると、すべての管理ロール(デフォルトを含む)が削除されます。

- アプリケーションが削除されると、すべての管理ロールが削除されます。

- デフォルトの管理者ロールに割り当てられた権限は、変更できません。

最高から最低まで、範囲および適用可能な粒度は、次のとおりです。

- 最高レベルのSystemAdminには、システムレベルのリソースおよびすべてのポリシー関連のオブジェクトを管理する権限があります。システム・リソースには、管理者ロール、システム構成およびセキュリティ・モジュール・バインディングが含まれます。ポリシー・オブジェクトには、アプリケーション・オブジェクトが含まれます。

注意:

システム管理者は、すべてのアプリケーション・オブジェクトおよび子ポリシー・ドメインを含む、すべてのポリシー・オブジェクトに対する権限を持っていますが、構成、アプリケーション・オブジェクトおよび2つの間のバインディングを管理することを主な目的としています。

システム・レベルの管理者ロールの管理については、第10章「システム構成の管理」で説明しています。

- アプリケーション管理者は、割当て先のアプリケーション内のすべてのオブジェクトを管理する権限を持っています。作成される各アプリケーションに、1つのApplicationPolicyAdminが生成されます。これらは、ポリシー・ドメインおよびその子(関数、属性、アプリケーション・ロール、リソース・タイプなど)を含む、アプリケーション内のポリシー・オブジェクトの管理を委任することを主な目的としています。詳細は、11.3項「アプリケーション管理の委任」を参照してください。

- ポリシー・ドメイン管理者は、割当て先のポリシー・ドメイン内のすべてのオブジェクトを管理する権限を持っています。作成される各ポリシー・ドメインに、1つのPolicyDomainAdminが生成されます。これらは、ポリシー・ドメイン内のポリシー、権限およびリソースの管理を委任するために主に作成されます。この概念の概要は、11.4項「委任するポリシー・ドメインの使用」を参照してください。詳細は、11.5項「ポリシー・ドメイン管理の委任」を参照してください。

11.3 アプリケーション管理の委任

次の各項では、アプリケーションの管理者の管理方法について説明します。

- 11.3.1項「アプリケーションへの委任管理者の追加」

- 11.3.2項「アプリケーションの委任管理者の変更または削除」

11.3.1 アプリケーションへの委任管理者の追加

次の手順は、新規管理者ロールを作成し、それを該当するロールまたはユーザーに割り当てる方法を説明します。委任管理者をアプリケーションに追加するには、次のようにします。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 変更するアプリケーションを選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
「一般」、「委任管理者」、「ポリシー配布」および「シミュレーション」の各タブはすべてアクティブです。

4. 委任管理者タブをクリックします。
表示された表に、アプリケーション名がリストされます。アプリケーション名の隣にある矢印をクリックして、アプリケーション・オブジェクトの作成時に作成されたデフォルトのApplicationPolicyAdminを表示します。委任管理者表の下の次のタブ内で、管理者ロール名をクリックして、詳細を表示します。

- ロール詳細

- 外部ロール・マッピング

- 外部ユーザー・マッピング

5. 「新規」をクリックして、新規管理者ロールを作成します。
「新規」をアクティブ化するアプリケーションの名前を必ず選択してください。または、アプリケーションを選択し、「アクション」メニューから「新規」を選択します。「新規管理者ロール」ダイアログが表示されます。

6. 新規管理者ロールに次の値を指定し、「OK」をクリックします。

- 名前: 入力値は一意である必要があります。

- 表示名

- 説明

7. 新規管理者ロールを選択して、その構成タブをアクティブ化します。
ロール詳細タブはアクティブです。

8. 「編集」をクリックして、ロール詳細を定義します。
管理者ロールの編集ダイアログが表示されます。

9. 適切なポリシー・オブジェクトに表示または管理権限を付与し、「保存」をクリックします。
図11-1は、「管理ロールの編集」権限ポップアップ画面です。リストされたポリシー・オブジェクトに対して、「表示」または「管理」を選択します。たとえば、管理ポリシーによって、管理者は管理ロールに新しい権限を割り当てることができます。ただし、管理ロールによって、管理者は管理ロールにメンバーを割り当てることができます。リストされた他のオブジェクトの詳細は、2.3項「ポリシー・オブジェクトの用語集」を参照してください。

図11-1 管理ロールの編集ポップアップ画面

10. 「外部ロール・マッピング」タブをクリックして、外部ロールのメンバーに管理者ロールを付与します。

11. 「追加」をクリックして、「ポリシーの検索」ダイアログを表示します。

12. 「外部ロール」検索ボックスの問合せフィールドに入力して、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果は「検索結果」表に表示されます。

13. 表内で、マップする外部ロールの名前をクリックして、外部ロールを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

14. 「プリンシパルの追加」をクリックします。
選択したロールが「外部ロール・マッピング」タブに表示されます。

15. 「外部ユーザー・マッピング」タブをクリックして、外部ユーザーに管理者ロールを付与します。

16. 「追加」をクリックして、「ポリシーの検索」ダイアログを表示します。

17. 「ユーザー」検索ボックスの問合せフィールドに入力して、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果は「検索結果」表に表示されます。

18. 表内で、マップするユーザーの名前を選択して、ユーザーを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

19. 「プリンシパルの追加」をクリックします。
選択したロールが「外部ユーザー・マッピング」タブに表示されます。

11.3.2 アプリケーションの委任管理者の変更または削除

アプリケーションの構成された管理者ロールを変更または削除するには、次のようにします。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 変更するアプリケーションを選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
「一般」、「委任管理者」、「ポリシー配布」および「シミュレーション」の各タブはすべてアクティブです。

4. 委任管理者タブをクリックします。

5. 変更する管理者ロールにナビゲートし、選択します。
ロール詳細タブ、「外部ロール・マッピング」タブおよび「外部ユーザー・マッピング」タブが表示されます。

6. 変更または削除する構成が含まれているタブを選択します。

- 構成の変更の詳細は、11.3.1項「アプリケーションへの委任管理者の追加」を参照してください。

- 管理者ロールからマッピングを削除するには、該当する管理者ロールおよび適切な「マッピング」タブを選択します。マッピングを選択し、「削除」をクリックします。

- 管理者ロールを削除するには、管理者ロールを選択し、「削除」をクリックします。

11.4 委任するポリシー・ドメインの使用

1つ以上の(オプションの)ポリシー・ドメインを使用して、保護されたアプリケーションを保護しているポリシーの管理を委任できます。ポリシー・ドメインには、完了したポリシー定義のコンポーネントが含まれます。これは、ターゲット・リソース(リソース・タイプのインスタンス)、資格(リソースで実行できるアクション)、およびポリシー(コントロールをアセンブルするルールおよび影響を及ぼすプリンシパル)を合わせたものです。

複数のポリシー・ドメインを使用することによって、保護されたアプリケーションのアーキテクチャや、ポリシーの管理の委任方法など、定義されたロジックに従ってポリシーをパーティション化できます。たとえば、1つのポリシー・ドメインを使用して、すべてのポリシーのリソース保護を維持することも、複数のポリシー・ドメインを使用して、リソースの特定の特性を反映することもできます。異なるポリシー・ドメインを担当する別の管理者を配置することができます。

注意:

ポリシー・ドメインの作成はオプションであるため、ポリシー管理を委任する必要がない場合は、ポリシー・ドメインを作成する必要はありません。この場合、アプリケーションのすべてのポリシー・オブジェクトが含まれる各アプリケーションを使用して、デフォルトのポリシー・ドメインが作成されます。

次の各項では、ポリシー・ドメインの管理手順について説明します。

- 11.4.1項「ポリシー・ドメインの作成」

- 11.4.2項「ポリシー・ドメインの変更」

- 11.4.3項「ポリシー・ドメインの削除」

11.4.1 ポリシー・ドメインの作成

ポリシー・ドメインを作成するには、次のようにします。

1. ポリシー・ドメインを作成するナビゲーション・パネルでアプリケーションの名前を右クリックし、メニューから「新規」を選択します。
「ホーム」領域に無題のページが表示されます。

2. ポリシー・ドメインの次の情報を指定します。

- 表示名

- 名前

- 説明: オプションですが、資格に関する有用な情報を指定することをお薦めします。

3. 「保存」メニューから次のいずれかを選択します。

- 「保存して閉じる」では、構成を保存し、ポリシー・ドメインの表示名に指定した値でタブの名前を変更します。

- 保存して別に作成では、ナビゲーション・パネルの情報ツリーに構成を保存しますが、別のアプリケーションを作成できるように無題の領域が開いたままになります。

11.4.2 ポリシー・ドメインの変更

ポリシー・ドメインを変更するには、次のようにします。

1. 削除するポリシー・ドメインが作成されたアプリケーションにナビゲートし、情報ツリーを開きます。

2. 変更するポリシー・ドメインの名前をダブルクリックします。
「ホーム」領域にポリシー・ドメイン構成が表示されます。

3. 必要に応じて変更し、「適用」をクリックします。

11.4.3 ポリシー・ドメインの削除

ポリシー・ドメインを削除するには、次のようにします。

1. 削除するポリシー・ドメインが作成されたアプリケーションにナビゲートし、情報ツリーを開きます。

2. 削除するポリシー・ドメインの名前をダブルクリックします。
「ホーム」領域にポリシー・ドメイン構成が表示されます。

3. 「削除」をクリックします。
確認ダイアログが表示されます。

4. 「OK」をクリックして削除します。

11.5 ポリシー・ドメイン管理の委任

次の各項では、ポリシー・ドメインの管理者の管理方法について説明します。

- 11.5.1項「ポリシー・ドメインへの委任管理者の追加」

- 11.5.2項「ポリシー・ドメインの委任管理者の変更または削除」

11.5.1 ポリシー・ドメインへの委任管理者の追加

次の手順は、新規管理者ロールを作成し、それを該当するロールまたはユーザーに割り当てる方法を説明します。委任管理者をポリシー・ドメインに追加するには、次のようにします。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 変更するアプリケーションを選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
「一般」、「委任管理者」、「ポリシー配布」および「シミュレーション」の各タブはすべてアクティブです。

4. 委任管理者タブをクリックします。
表示された表に、ポリシー・ドメイン名がリストされます。ポリシー・ドメインの隣にある矢印をクリックして、階層を展開し、すでに構成された管理者ロール(デフォルトのPolicyDomainAdminなど)を表示します。

5. 管理者ロールを作成するポリシー・ドメインを選択します。

6. 「新規」をクリックして、新規管理者ロールを作成します。
「新規」をアクティブ化するポリシー・ドメインの名前を必ず選択してください。または、ポリシー・ドメインを選択し、「アクション」メニューから「新規」を選択します。「新規管理者ロール」ダイアログが表示されます。

7. 新規管理者ロールに次の値を指定し、「OK」をクリックします。

- 名前: 入力値は一意である必要があります。

- 表示名

- 説明

8. 新規管理者ロールを選択して、その構成タブをアクティブ化します。
ロール詳細タブはアクティブです。

9. 「編集」をクリックして、ロール詳細を定義します。
管理者ロールの編集ダイアログが表示されます。

10. 適切なポリシー・ドメイン・オブジェクトに表示または管理権限を付与し、「保存」をクリックします。

11. 「外部ロール・マッピング」タブをクリックします。

1. 「追加」をクリックして、「ポリシーの検索」ダイアログを表示します。

2. 「外部ロール」検索ボックスの問合せフィールドに入力して、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果は「検索結果」表に表示されます。

3. 表内で、マップする外部ロールの名前をクリックして、外部ロールを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

4. 「プリンシパルの追加」をクリックします。
選択したロールが「外部ロール・マッピング」タブに表示されます。

12. 「外部ユーザー・マッピング」タブをクリックします。

1. 「追加」をクリックして、「ポリシーの検索」ダイアログを表示します。

2. 「ユーザー」検索ボックスの問合せフィールドに入力して、「検索」をクリックします。
空の文字列の場合、すべてのロールをフェッチします。結果は「検索結果」表に表示されます。

3. 表内で、マップするユーザーの名前を選択して、ユーザーを選択します。
複数のロールを選択するには、[Ctrl]キーを押しながらクリックします。

4. 「プリンシパルの追加」をクリックします。
選択したロールが「外部ユーザー・マッピング」タブに表示されます。

11.5.2 ポリシー・ドメインの委任管理者の変更または削除

ポリシー・ドメインの構成された管理者ロールを変更または削除するには、次のようにします。

1. ナビゲーション・パネルで、アプリケーション・ノードを開きます。

2. 変更するアプリケーションを選択します。

3. アプリケーション名を右クリックして、メニューから「オープン」を選択します。
「一般」、「委任管理者」、「ポリシー配布」および「シミュレーション」の各タブはすべてアクティブです。

4. 委任管理者タブをクリックします。

5. 変更する管理者ロールにナビゲートし、選択します。
ロール詳細タブ、「外部ロール・マッピング」タブおよび「外部ユーザー・マッピング」タブが表示されます。

6. 変更または削除する構成が含まれているタブを選択します。

- 構成の変更の詳細は、11.5.1項「ポリシー・ドメインへの委任管理者の追加」を参照してください。

- 管理者ロールからマッピングを削除するには、該当する管理者ロールおよび適切な「マッピング」タブを選択します。マッピングを選択し、「削除」をクリックします。

- 管理者ロールを削除するには、管理者ロールを選択し、「削除」をクリックします。

11.6 管理者ロールを使用したシステム管理者の管理

システム管理者ロールを作成および構成すると、システム管理権限をユーザーに委任できます。デフォルトでは、SystemAdminは、インストール中に作成され、メインの「システム構成」タブの下にある「システム管理者」にナビゲートすると、「システム管理者」表に表示されます。SystemAdminはシステム・レベル・リソース(その他の管理者ロールと、システム構成およびバインディングを含む)を管理し、WebLogic Serverのweblogicユーザーにマップします。

次の各項では、Oracle Entitlements Serverのすべてのシステム管理者ロールの管理操作について説明します。

- 11.6.1項「新規管理者ロールの作成」

- 11.6.2項「管理者ロールへの権限の割当て」

- 11.6.3項「管理者ロール・メンバーシップの変更」

- 11.6.4項「管理者ロールの削除」

11.6.1 新規管理者ロールの作成

新規管理者ロールを作成するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。
「ホーム」領域に「システム管理者」タブが表示されます。

2. 管理者ロールの下にある「新規」をクリックして、新規管理者ロールを作成します。
ダイアログが表示されます。

3. 新規管理者ロールに、次の値を指定します。

- 名前: 入力値は一意である必要があります。

- 表示名

- 説明

4. 「作成」をクリックします。

11.6.2 管理者ロールへの権限の割当て

権限を管理者ロールに割り当てるには、次の手順で説明するように、外部ロール、外部ユーザー、またはその両方をロールにマップします。

1. 「ホーム」領域から「システム構成」タブを選択します。
「システム管理者」タブおよび構成された管理者ロールが、「ホーム」領域に表示されます。または、管理者を右クリックして、「オープン」を選択します。

2. 管理者ロールの名前を表から選択します。

3. 「変更」または「表示」オプションを選択して、管理者コントロールを定義します。
「変更」では、すべてのシステム管理者リソース上で、管理(およびプロキシ表示による)権限を持っているとして、管理者を定義します。「表示」では、表示権限のみを持っているとして、管理者を定義します。

4. 「外部ロール・マッピング」タブをクリックします。

1. 「追加」をクリックするか、「アクション」メニューから「追加」を選択します。
「ロールの追加」検索ダイアログが表示されます。

2. テキスト・ボックスに検索文字列を入力し、矢印をクリックして外部ロールを検索します。
または、検索文字列を入力せずに「検索」をクリックして、使用可能なすべての外部ロールを返します。

3. 結果から1つ以上のロールを選択し、「選択済の追加」をクリックします。
または、「すべて追加」をクリックして、返されたすべての結果を追加します。

4. 「プリンシパルの追加」をクリックします。

5. 「外部ユーザー・マッピング」タブをクリックします。

1. 「追加」をクリックするか、「アクション」メニューから「追加」を選択します。
「ユーザーの追加」検索ダイアログが表示されます。

2. テキスト・ボックスに検索文字列を入力し、矢印をクリックして外部ユーザーを検索します。
または、検索文字列を入力せずに「検索」をクリックして、使用可能なすべての外部ユーザーを返します。

3. 結果から1つ以上のユーザーを選択し、「選択済の追加」をクリックします。
または、「すべて追加」をクリックして、返されたすべての結果を追加します。

4. 「プリンシパルの追加」をクリックします。

11.6.3 管理者ロール・メンバーシップの変更

管理者ロール・メンバーシップを変更するには、次の手順で説明するように、マッピングを削除します。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるシステム管理者をダブルクリックします。
または、システム管理者を右クリックして、「オープン」を選択します。「システム管理者」ページが表示されます。

3. 管理者ロールの名前を表から選択します。

4. 必要に応じて、「変更」または「表示」管理者コントロールを変更します。

5. 「外部ロール・マッピング」タブをクリックします。

1. 削除する外部ロールを選択します。

2. 「削除」をクリックします。
または、「アクション」メニューから「削除」を選択します。

6. 「外部ユーザー・マッピング」タブをクリックします。

1. 削除する外部ユーザーを選択します。

2. 「削除」をクリックします。
または、「アクション」メニューから「削除」を選択します。

11.6.4 管理者ロールの削除

管理者ロールを削除するには、次のようにします。

1. 「ホーム」領域から「システム構成」タブを選択します。

2. ナビゲーション・パネルにあるシステム管理者をダブルクリックします。
または、システム管理者を右クリックして、「オープン」を選択します。「システム管理者」ページが表示されます。

3. 管理者ロールの名前を表から選択します。

4. 「削除」をクリックします。
確認ダイアログが表示されます。

5. 「削除」をクリックします。

12 管理コンソールのカスタマイズ

この章では、Oracle Entitlements Server管理コンソールであるOracle Authorization Policy Managerに行うことができるいくつかのカスタマイズについて説明します。この章には次の項目があります。

- 12.1項「Authorization Policy Managerのカスタマイズ」

- 12.2項「ヘッダー、フッターおよびロゴのカスタマイズ」

- 12.3項「色のスキームのカスタマイズ」

- 12.4項「ログイン・ページのカスタマイズ」

12.1 Authorization Policy Managerのカスタマイズ

この章で説明するカスタマイズではいずれも、次のファイル・アーカイブの一方または両方のデータを変更する必要があります。

$ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_11.1.1/oracle.security.apm.ear
$ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.core.view.war

ヒント:

始める前に、これらのAuthorization Policy ManagerのEARファイルとWARファイルをバックアップすることをお薦めします。

あるバージョンのAuthorization Policy Managerに適用したあらゆるカスタマイズは、新しいバージョンをインストールするたびに指定しなおす必要があります。次の手順では、高レベルから、Authorization Policy Managerをカスタマイズする方法を示します。

1. 次のコマンドを使用して、EAR、WARおよびview WARの各ファイルを解凍します。

$ unzip -d $tempDir/ear $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear
$ unzip -d $tempDir/war $tempDir/ear/oracle.security.apm.war
$ unzip -d $tempDir/viewWar $ORACLE_IDM_HOME$/apm/modules/
oracle.security.apm_11.1.1/oracle.security.apm.core.view.war

2. 解凍されたファイルのうち1つ以上のファイルを、この章の次の各項の説明に従って変更します。

- 12.2項「ヘッダー、フッターおよびロゴのカスタマイズ」

- 12.3項「色のスキームのカスタマイズ」

- 12.4項「ログイン・ページのカスタマイズ」

3. 次のコマンドを使用して、変更したEAR、WARおよびview WARの各ファイルを再アーカイブします。

$ zip $tempDir/ear/oracle.security.apm.war $tempDir/war/*
$ zip $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear $tempDir/ear/*
$ zip $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.core.view.war $temp/viewWar/*

4. Authorization Policy Managerを再デプロイします。

12.2 ヘッダー、フッターおよびロゴのカスタマイズ

次の手順を使用して、ヘッダー、フッターおよびロゴをカスタマイズします。

1. view WARファイルを解凍します。

$ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.core.view.war

2. AuthPolicyMgr.jspxファイルを開いて、次の変更を一部またはすべて適用します。

- brandingファセットを変更して、新しいブランド・タイトル(ヘッダー)を指定します。

<f:facet name="branding">
<af:outputText value="My Custom Application Title" noWrap="true" id="ot1"/>
</f:facet>

- appAboutファセットとappCopyrightファセットを変更して、新しいフッターを指定します。

<f:facet name="appAbout">
<af:outputText value="My Custom Footer at Right" noWrap="true" id="ot2"/>
</f:facet>
<f:facet name="appCopyright">
<af:outputText value="My Custom Footer at Left"  noWrap="true" id="ot3"/>
</f:facet>

- 次のように新しいロゴ・イメージを指定します。

1. metaContainerファセットにリソースを挿入します。

<f:facet name="metaContainer">
....
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url(/apm/images/world_36x20.png);
background-position:center;
background-repeat:no-repeat; display:block;
height:2.5em; width:119px;
}
</af:resource>
...
</f:facet>

metaContainerファセットの他の内容はすべて現状のまま残します。

2. pageTemplateタグの属性値として、(前述の手順で定義した)スタイル・クラス名を指定します。

<af:pageTemplate viewId="/templates/IdmShell.jspx"
value="#{bindings.pageTemplateBinding}" id="pt1">
...
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
...

pageTemplateタグの他の内容はすべて現状のまま残します。

3. view WARファイルを再アーカイブします。

$ zip $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.core.view.war $temp/viewWar/*

4. Authorization Policy Managerを再デプロイします。

12.3 色のスキームのカスタマイズ

Webアプリケーションに適用する新しいスキンを開発できます。次の手順を使用して、Authorization Policy Managerの色のスキームをカスタマイズします。ここでは、新しいスキンを参照できると仮定します。

注意:

Authorization Policy Managerでは、Oracle Application Development Framework (ADF)が使用され、ADFスキニングがサポートされています。ADFスキンの詳細は、Oracle Fusion Middleware Oracle Application Development Frameworkスキン・エディタ・ユーザーズ・ガイドを参照してください。

1. EARファイルとWARファイルを解凍します。

$ unzip -d $tempDir/ear $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear
$ unzip -d $tempDir/war $tempDir/ear/oracle.security.apm.war

2. Trinidad-config.xmlファイルを開きます。
このファイルは通常、解凍されたWARのWEB-INFフォルダにあります。

3. skin-familyタグで新しいスキンの場所の値を指定します。

<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">
...
<skin-family>MyCustomSkin</skin-family>
...
</trinidad-config>

4. 次のコマンドを使用して、変更したEARファイルとWARファイルを再アーカイブします。

$ zip $tempDir/ear/oracle.security.apm.war $tempDir/war/*
$ zip $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear $tempDir/ear/*

5. Authorization Policy Managerを再デプロイします。

12.4 ログイン・ページのカスタマイズ

次の手順を使用して、ログイン・ページとログイン・エラー・ページをカスタマイズします。

1. EARファイルを解凍します。

$ unzip -d $tempDir/ear $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear

2. web.xmlファイルを開きます。
このファイルは通常、解凍されたEARのWEB-INFフォルダにあります。

3. form-login-config要素の下のform-login-pageおよびform-error-pageに適切な値を指定します。

<login-config>
<form-login-config>
<form-login-page>/MyCustomLoginPage.html</form-login-page>
<form-error-page> MyCustomLoginErrorPage.html </form-error-page>
</form-login-config>
</login-config>

4. 次のコマンドを使用して、変更したEARファイルを再アーカイブします。

$ zip $ORACLE_IDM_HOME$/apm/modules/oracle.security.apm_
11.1.1/oracle.security.apm.ear $tempDir/ear/*

5. Authorization Policy Managerを再デプロイします。

13 管理タスク

この章では、セキュリティ・モジュールとキャッシュの構成、監査および様々なタイプのポリシー・ストアからのポリシーの移行など、様々な管理タスクと構成タスクについて説明します。この章には次の項目があります。

- 13.1項「テスト環境から本番環境への移行(T2P)」

- 13.2項「ポリシー・シミュレータの使用」

- 13.3項「FIPS準拠セキュリティ・プロバイダの使用」

- 13.4項「監査タスクの管理」

- 13.5項「ポリシーの移行」

- 13.6項「キャッシュの構成」

- 13.7項「ロギング」

- 13.8項「デバッグ」

13.1 テスト環境から本番環境への移行(T2P)

テスト環境から本番環境への移行(T2P)は、Oracle Entitlements Server管理コンソールをテスト環境から本番環境に移行するプロセスです。セキュリティ・モジュールは固有のデータを保持していないので、T2Pプロセスはコンソール・コンポーネント(WebLogic Serverドメインで実行されているアプリケーション)にのみ適用可能です。次の手順は、T2Pプロセスを示します。

1. 『Oracle Fusion Middleware管理者ガイド』の説明に従って、データベース、Middlewareホームおよびドメイン構成を新しい本番環境に移動します。

2. 新しい本番環境にOracle Entitlements Serverをインストールします。

3. 『Oracle Fusion Middleware管理者ガイド』の説明に従って、Oracle Platform Security Servicesを新しい本番環境に移動します。

13.2 ポリシー・シミュレータの使用

Oracle Entitlements Serverでは、管理コンソールからポリシーをシミュレートする機能が提供されます。ポリシー・シミュレーションを使用すると、ポリシー変更の影響についてのトラブルシューティング、テスト、分析を行ったり、特定のアプリケーションにポリシーが実行される様子を理解したりできます。次の各項では、詳細を説明します。

- 13.2.1項「ポリシー・シミュレーションの理解」

- 13.2.2項「ポリシー・シミュレーション・モードの選択」

- 13.2.3項「ポリシー・シミュレータの実行」

13.2.1 ポリシー・シミュレーションについて

最も単純なポリシー・シミュレーション・ケースでは、ユーザーおよびリソースとアクションのペアが指定され、パラメータに基づいて次の情報が取得されます。

- プリンシパルに付与される外部ロールおよび静的なロール付与とロール・マッピング・ポリシーのリスト。

- 関連するロールまたは認可ポリシーを評価するために必要な属性のリスト。

- 関連するロールまたは認可ポリシーの一部として実行される評価関数の値。

- 関連するロール、認可ポリシーまたは責任の一部である動的属性の値。動的属性値が不明な場合、ユーザーが明示的に設定できるように空白が返される必要があります。

- 返される最終的な認可決定(付与または拒否)、責任および関連する認可ポリシー

認可決定の一部として属性値が評価される場合、値を変更しながら様々なシミュレーションを実行できます。イベントは次の順序で実行されます。

1. プリンシパル、リソースおよびアクションを指定します。
プリンシパルには、ユーザー、外部ロールのセットまたはアプリケーション・ロールのセットを指定できます。外部ロールとアプリケーション・ロールがユーザーとともに明示的に指定されている場合、ロールの解決は実行されません。

2. ポリシーをシミュレートします。

3. オーバーライドする属性を指定し、オーバーライドする属性の値を指定します。

4. ポリシー・シミュレータを再実行して、結果の変化を確認します。

13.2.2 ポリシー・シミュレーション・モードの選択

ポリシー・シミュレータには、簡易モードと拡張モードの2つのモードがあります。モードごとに異なる目的があります。簡易モードは通常デバッグ目的で使用され、特定のサブジェクトとリソースの組合せに対する認可結果を決定します。これにより、セキュリティ管理者は、特定のユーザーが指定されたリソースに対するアクセス権を持つ(または持たない)理由を理解できます。拡張モードは、ユーザーが外部ロールとアプリケーション・ロールの特定のセットのメンバーになっているかどうかなど、発生している状況を確認するためにポリシー・シミュレーションで使用されます。シミュレーションに基づき、セキュリティ管理者は、指定されたリソースの実行時の認可決定に応じたユーザーのロール・メンバーシップを追加または取消できます。簡易モードで値を定義して、「アクセスの確認」をクリックすると、次のようになります。

- 認可決定、責任(存在する場合)、および関連するロールまたはポリシーの評価に必要な属性のリストなど、ポリシー評価の結果が表示されます。属性値を取得できない場合、空白が返されます。

- 指定されたユーザーが属する外部ロールのセットが表示されます。このリストを使用すると、ポリシー・シミュレータを拡張モードで実行する場合のユーザーの外部ロールを簡単に選択できます。

- 指定されたユーザーが付与(または拒否)されたアプリケーション・ロールおよびユーザーが指定されているロール・マッピング・ポリシーが表示されます。これらのロールには、ロール・マッピング・ポリシーによって直接的または間接的に(継承を通じて)付与された静的ロールと動的ロールが含まれる可能性があります。

- アクセス権の評価に使用された認可ポリシーが表示されます。

拡張モードでの値の定義には、プリンシパルとして、0ユーザーまたは1ユーザー、外部ロールのセット、アプリケーション・ロールのセットまたはこれら3つの任意の組合せを指定する作業が含まれます。表示される結果は、外部ロールとアプリケーション・ロールが指定された場合を除けば、簡易モードの場合と同じであり、このときグループの解決は実行されません。

13.2.3 ポリシー・シミュレータの実行

ポリシー・シミュレータは、管理コンソールで構成済アプリケーションを開いたときに、タブとして表示されます。このタブは、アプリケーション・オブジェクトが作成された後、そのアプリケーションの変更権限を持つ管理者にのみ表示されます。次の各項では、ポリシー・シミュレータを実行する方法について説明します。

- 13.2.3.1項「ポリシー・シミュレータの簡易モードでの実行」

- 13.2.3.2項「ポリシー・シミュレータの拡張モードでの実行」

13.2.3.1 ポリシー・シミュレータの簡易モードでの実行

図13-1は、ポリシー・シミュレータの簡易モードのスクリーンショットです。この項の手順を使用して、ポリシー・シミュレータを簡易モードで実行します。

図13-1 ポリシー・シミュレータの簡易モードのユーザー・インタフェース

1. ポリシーが含まれるアプリケーション名を選択し、「開く」をクリックします。

2. 「シミュレーション」タブをクリックします。

3. 「簡易」ラジオ・ボタンを選択します。
プリンシパルとして1ユーザーを定義する場合は、「簡易」実行が使用されます。

4. プリンシパルを1つ検索し、選択します。

1. 「ユーザー名」ボックスに検索条件を入力し、検索矢印をクリックします。
ユーザー検索結果が表示されます。

2. ユーザー検索の該当する行を選択して「追加」をクリックし、そのユーザーをプリンシパルとして選択します。

5. リソースを1つ検索し、選択します。

1. ドロップダウン・メニューから(リソースがそのインスタンスである)リソース・タイプを選択します。

2. ドロップダウン・メニューから適切なアクション名を選択します。

3. リソース・インスタンス名の検索条件を入力し、検索矢印をクリックします。
リソースが表示されます。オプションで、ポリシー・ドメインを選択して検索条件を入力し、検索矢印をクリックすることによって検索結果を絞り込むことができます。

6. ポリシー・シミュレーション・テストに属性を追加します。
属性は条件で使用されます。ポリシーを評価するには、属性の値が必要です。属性にデフォルト値が存在する場合、それが使用されます。(デフォルト値はここでオーバーライドすることもできます。)デフォルト値が存在しない場合、シミュレータにより入力を要求されます。

1. 緑のプラスをクリックし、属性を追加します。
検索ポップアップを使用して定義済属性を選択し、そのデータ型に応じた値を指定します。

2. 「名前」に入力します。

3. 「新しい値」に入力します。

7. 「アクセスの確認」をクリックします。
ポリシー・シミュレータが実行されます。結果の詳細は、13.2.2項「ポリシー・シミュレーション・モードの選択」を参照してください。

13.2.3.2 ポリシー・シミュレータの拡張モードでの実行

図13-2は、ポリシー・シミュレータの拡張モードのスクリーンショットです。拡張モードでは、アプリケーション・ロールまたは外部ロールとともに1ユーザーのみ定義できます。この項の手順を使用して、ポリシー・シミュレータを拡張モードで実行します。

図13-2 ポリシー・シミュレータの拡張モードのユーザー・インタフェース

1. ポリシーが含まれるアプリケーション名を選択し、「開く」をクリックします。

2. 「シミュレーション」タブをクリックします。

3. 「拡張」ラジオ・ボタンを選択します。

4. プリンシパルとして、ユーザー名、外部ロールまたはアプリケーション・ロールを検索し、選択します。
ユーザー名、外部ロールまたはアプリケーション・ロールの少なくとも1つを定義する必要があります。

1. 「ユーザー名」ボックスに検索条件を入力し、検索矢印をクリックします。
ユーザー検索結果が表示されます。

2. ユーザー検索の該当する行を選択して「追加」をクリックし、そのユーザーをプリンシパルとして選択します。

3. 緑のプラスをクリックし、外部ロールを追加します。
「外部ロールの検索」ダイアログが表示されます。

4. 検索条件を入力し、「検索」をクリックします。
「検索結果」が表示されます。

5. 「検索結果」の該当する行を選択して「選択項目の追加」をクリックするか、または「すべて追加」をクリックしてすべての結果を追加します。
ロールが追加されます。拡張モードでは、ポリシー・シミュレータでユーザーの外部ロールは計算されません。その計算が必要な場合は、具体的にそれらを追加する必要があります。

6. 緑のプラスをクリックし、アプリケーション・ロールを追加します。
「アプリケーション・ロールの検索」ダイアログが表示されます。

7. 検索条件を入力し、「検索」をクリックします。
「検索結果」が表示されます。

8. 「検索結果」の該当する行を選択して「選択項目の追加」をクリックするか、または「すべて追加」をクリックしてすべての結果を追加します。
ロールが追加されます。拡張モードでは、ポリシー・シミュレータでユーザーのアプリケーション・ロールは計算されません。その計算が必要な場合は、具体的にそれらを追加する必要があります。

5. リソースを1つ検索し、選択します。

1. ドロップダウン・メニューから(リソースがそのインスタンスである)リソース・タイプを選択します。

2. ドロップダウン・メニューから適切なアクション名を選択します。

3. リソース・インスタンス名の検索条件を入力し、検索矢印をクリックします。
結果が表示されます。オプションで、ポリシー・ドメインを選択して検索条件を入力し、検索矢印をクリックすることによって、「リソース・ファインダ」で検索結果を絞り込むことができます。

6. ポリシー・シミュレーション・テストに属性を追加します。
属性は条件で使用されます。ポリシーを評価するには、属性の値が必要です。属性にデフォルト値が存在する場合、それが使用されます。(デフォルト値はここでオーバーライドすることもできます。)デフォルト値が存在しない場合、シミュレータにより入力を要求されます。

1. 緑のプラスをクリックし、属性を追加します。
検索ポップアップを使用して定義済属性を選択し、そのデータ型に応じた値を指定します。

2. 「名前」に入力します。

3. 「新しい値」に入力します。

7. 「アクセスの確認」をクリックします。
ポリシー・シミュレータが実行されます。結果の詳細は、13.2.2項「ポリシー・シミュレーション・モードの選択」を参照してください。

13.3 FIPS準拠セキュリティ・プロバイダの使用

米国連邦情報処理標準(FIPS)は、暗号化モジュールのセキュリティ要件を標準化するためにアメリカ合衆国政府によって開発されています。FIPSのサポートにより、Oracle Entitlements Serverと様々なJava Cryptography Extension (JCE)セキュリティ・プロバイダの統合が実現します。

注意:

以前のリリースでは、セキュリティ・サービスは、コンテナのデフォルトのセキュリティ・プロバイダに制限されていました。

13.3.1 JCEプロバイダのインストール

JCEプロバイダは、構成する前に、インストールして登録する必要があります。この手順の詳細は、http://docs.oracle.com/javase/1.4.2/docs/guide/security/CryptoSpec.html#ProviderInstallingの「Java Cryptography Extension API Specification and Reference」を参照してください。

13.3.2 JCEの構成

jps-config.xmlの次のパラメータは、JCEセキュリティ・プロバイダの構成に使用されます。これらのJCEプロバイダ・パラメータを変更する前に、ポリシー・キャッシュ・ファイルをバックアップします。

- oracle.security.jps.runtime.pd.client.localpolicy.JCEProviderNameは、使用されるJCEプロバイダを示します。これはオプションであり、指定しなければデフォルトのJDKプロバイダが使用されます。デフォルト値は未定義であり、使用される値は大/小文字が区別されます。

- oracle.security.jps.runtime.pd.client.localpolicy.CipherKeyLengthは、指定されたJCEプロバイダのCipherクラスで使用される鍵の長さを示します。これはオプションであり、デフォルト値は128です。3つの鍵の長さ(128、192および256)のみサポートされています。

- oracle.security.jps.runtime.pd.client.localpolicy.CipherModePaddingは、指定されたJCEプロバイダのCipherクラスで使用される暗号アルゴリズム名、モードおよびパディングのスキーマを示します。アルゴリズム名/モード/パディングという形式で設定する必要があります。これはオプションであり、大/小文字は区別されません。デフォルト値はAES/CBC/PKCS5Paddingです。

13.4 監査タスクの管理

Oracle Entitlements Serverは、すべての管理アクティビティおよび認可リクエスト、オプションでファイルへの情報の記録を監査します。監査フレームワークは、Oracle Platform Security Services用に開発されたフレームワークを基にしています。Oracle Platform Security Servicesの監査フレームワークの概要は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。次の情報は、Oracle Entitlements Serverの監査機能に固有です。

- 13.4.1項「Oracle Entitlements Serverイベントの監査」

- 13.4.2項「監査のためのOracle Entitlements Server管理サーバーの構成」

- 13.4.3項「監査のためのOracle Entitlements Serverセキュリティ・モジュールの構成」

- 13.4.4項「その他の監査情報」

注意:

Oracle Entitlements Serverは、Oracle Entitlements Server自体、Oracle Platform Security Services、またはその組合せによって構成されたポリシーの結果として生じる決定を監査します。

13.4.1 Oracle Entitlements Serverイベントの監査

表13-1では、Oracle Entitlements Serverが監査するイベント(機能カテゴリごとに編成)をリストします。

表13-1 Oracle Entitlements Serverで監査されるイベント

機能カテゴリ

機能タスク

管理ロール管理

- AdminRoleCreation

- AdminRoleDeletion

- AdminRoleGrant

- AdminRoleRevoke

- AdminRoleResActionGrant

- AdminRoleResActionRevoke

アプリケーション管理

- ApplicationDeletion

権限付与管理

- PermissionSetGrant

- PermissionSetRevocation

権限設定管理

- PermissionSetCreation

- PermissionSetModification

- PermissionSetDeletion

ポリシー・ドメイン管理

- PolicyDomainCreation

- PolicyDomainDeletion

ポリシー管理

- PolicyCreation

- PolicyModification

- PolicyDeletion

- PolicyGrant

- PolicyRevoke

リソース管理

- ResourceCreation

- ResourceModification

- ResourceDeletion

ロール管理

- RoleCreation

- RoleModification

- RoleDeletion

- RoleMembershipAdd

- RoleMembershipRemove

ロール・ポリシー管理

- RolePolicyCreation

- RolePolicyModification

- RolePolicyDeletion

認可

- CheckPermission

- IsAccessAllowed

- CheckSubject

構成バインディング管理

- SecurityModuleBinding

- SecurityModuleUnbinding

構成管理

- SecurityModuleCreation

- SecurityModuleModification

- SecurityModuleDeletion

ポリシー配布管理

- PolicyDistribution

- PdpDeregistration

- purgeDistributionStatus

13.4.2 監査のためのOracle Entitlements Server管理サーバーの構成

デフォルトでは、監査ロギングは無効になっています。監査は、Java EEコンテナが使用する構成ファイルであるjps-config.xmlで構成されます。このファイルは、$DOMAIN_HOME/config/fmwconfigディレクトリにあります。例13-1は、jps-config.xmlでの監査の構成例を示します。

例13-1 jps-config.xmlでの監査サービスの構成パラメータ

<!-- Audit Service Instance-->
<serviceInstance name="audit" provider="audit.provider"
location="./audit-store.xml">
<description>Audit Service</description>
<property name="audit.filterPreset" value="None"/>
<property name="audit.maxDirSize" value="0"/>
<property name="audit.maxFileSize" value="104857600"/>
<property name="audit.loader.jndi" value="jdbc/AuditDB"/>
<property name="audit.loader.interval" value="15"/>
<property name="audit.loader.repositoryType" value="File"/>
<property name="auditstore.type" value="file"/>
</serviceInstance>

jps-config.xmlファイルを変更した後は、Oracle Entitlements Server管理サーバーを再起動します。表13-2では、構成パラメータの詳細を説明します。

表13-2 jps-config.xmlでの監査パラメータ

パラメータ

説明

audit.filterPreset

監査を有効化するには、None、Low、Medium、AllまたはCustomのいずれかの値を選択します。

audit.maxDirSize

監査ファイルが書き込まれるディレクトリのサイズを制御します。整数値をバイト単位で指定します。

audit.maxFileSize

監査イベントが書き込まれるバス・ストップ・ファイルのサイズを制御します。整数値をバイト単位で指定します。

audit.loader.jndi

データベースが使用中の場合、監査イベントがアップロードされるJNDIデータ・ソースへのパスを指定します。

audit.loader.interval

データベースが使用中の場合、監査ローダーのアップロードの頻度を制御します。整数値を秒単位で指定します。

audit.loader.RepositoryType

監査リポジトリ・タイプを定義します。FileまたはDbのいずれかの値を指定します。

- ファイルからデータベースに監査レコードをロードする場合、Dbを使用します。タイプがデータベース(Db)の場合、audit.loader.jndiも定義する必要があります。

- データベースからファイルに監査レコードをロードする場合、Fileを使用します。

auditstore.type

監査ストア・タイプに応じて、値としてfileまたはdbを使用します。

13.4.3 監査のためのOracle Entitlements Serverセキュリティ・モジュールの構成

Oracle Entitlements Serverセキュリティ・モジュールの監査を構成するには、まずOracle Entitlements Serverバンドル・パッチ1 (BP1)を適用し、次に監査データベースを作成します。

注意:

Oracle Entitlements Server監査スキーマ定義の詳細は、Oracle Fusion Middlewareリリース・ノート for Microsoft Windows x64 (64-Bit)を参照してください。この手順は、監査データベースを作成する前または作成した後に実行できます。

これらの手順が完了したら、デプロイされているセキュリティ・モジュールに応じて、次のどちらかの手順を使用します。

- 13.4.3.1項「WebLogic Serverセキュリティ・モジュールの構成」

- 13.4.3.2項「他のセキュリティ・モジュールの構成」

13.4.3.1 WebLogic Serverセキュリティ・モジュールの構成

1. 監査データベースへのデータソースを作成および構成し、WebLogic Serverコンソールを使用してそのデータソースをサーバーにデプロイします。
詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

2. サーバーを再起動します。

3. jps-config.xmlファイルの最後の</serviceInstances>タグの前に次の内容を追加します。
非JRFドメインでは、jps-config.xmlはWLSSM_Client_Domain\config\oeswlssmconfig\AdminServer\ディレクトリにあります。JRFドメインでは、jps-config.xmlはWLSSM_Client_Domain\config\fmwconfig\ディレクトリにあります。

<serviceInstance name="audit" provider="audit.provider">
<property name="audit.filterPreset" value="All"/>
<property name="audit.maxDirSize" value ="0"/>
<property name="audit.maxFileSize" value ="104857600"/>
<property name="audit.loader.jndi" value="auditdb"/>
<property name="audit.loader.interval" value="15" />
<property name="audit.loader.repositoryType" value="Db" />
</serviceInstance>

4. サーバーを再起動します。
audit.logがWLSSM_Client_Domain/servers/AdminServer/logs/auditlogs/JPS/ディレクトリに作成されます。

5. データベースのset passwordコマンドを実行して、監査データベースのパスワードを設定します。
入力を要求されたら、監査スキーマのパスワードを入力します。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

6. 監査ローダーを実行して、audit.logファイルからイベントとアクションを監査データベースにロードします。
アクションに成功すると、転送するイベントの数を確認するメッセージが表示されます。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

13.4.3.2 他のセキュリティ・モジュールの構成

1. 監査データベース・ローダーを設定するには、jps-config.xmlファイル(OES_Client11115\oes_sm_instances\SM_Name\config\ディレクトリにあります)の最後の</serviceInstances>タグの前に次の内容を追加します。

<serviceInstance name="audit" provider="audit.provider"
location="./audit-store.xml">
<description>Audit Service</description>
<property name="audit.loader.jndi" value="jdbc/AuditDB"/>
<property name="audit.loader.interval" value="15"/>
<property name="audit.loader.repositoryType" value="Db"/>

これらの意味は、次のとおりです。

- audit.loader.repositoryTypeの値はDbである必要があります。

- リポジトリ作成ユーティリティ(RCU)を使用して、監査ローダーのデータベース・スキーマを作成する必要があります。

- データベースに接続するデータソースをaudit.loader.jndiの値として構成する必要があります。

2. データベースのset passwordコマンドを実行して、監査データベースのパスワードを設定します。
入力を要求されたら、監査スキーマのパスワードを入力します。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

3. 監査ローダーを実行して、audit.logファイルからイベントとアクションを監査データベースにロードします。
アクションに成功すると、転送するイベントの数を確認するメッセージが表示されます。-Doracle.instanceパラメータに、必ずセキュリティ・モジュール・インスタンスとデータベースの詳細を定義してください。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

13.4.4 その他の監査情報

次のリストは、監査フレームワークに関する情報が記載されている他のドキュメントを示します。

- 入門資料は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

- Enterprise Managerユーザー・インタフェースまたはWebLogic Scripting Tool (WLST)コマンドライン・インタフェースを使用して、監査ポリシーを管理できます。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

- Oracle Fusion Middlewareの監査フレームワークのリファレンスは、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

- その他の構成情報は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

13.5 ポリシーの移行

この項では、あるタイプのストアから別のタイプのストアへのポリシーの移行について説明します。次の手順について説明します。

- 13.5.1項「XMLからLDAPへの移行」

- 13.5.2項「LDAPからXMLへの移行」

- 13.5.3項「XMLからデータベースへの移行」

- 13.5.4項「データベースからXMLへの移行」

13.5.1 XMLからLDAPへの移行

次に、XMLベースのポリシー・ストアからLDAPベースのディレクトリにポリシーを移行する手順を示します。

1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

1. 例13-2に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。
ソース・ポリシー・ストア・インスタンスの場所は、migrateSecurityStoreコマンドを使用する際にconfigFileの値として定義するjps-config.xmlの場所からの相対で定義する必要があります。例13-2では、jps-config.xmlとjazn-data.xml(ソース・ポリシー・ストア)が同じディレクトリにあると仮定しています。

例13-2 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのserviceInstance

<!-- Source XML-based policy store instance -->
<serviceInstance name="src.xml" provider="policystore.xml.provider"
location="./jazn-data.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>

<!-- Destination LDAP-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.ldap.destination">
<description>Replace: A. myDestDomain and myDestRootName to appropriate
values according to your destination LDAP directory structure;
B. ldap://myDestHost.com:3060 with the URL and port
number of your destination LDAP</description>
<property value="OID" name="policystore.type"/>
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=myDestDomain" name="oracle.security.jps.farm.name"/>
<property value="cn=myDestRootName"
name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://myDestHost.com:3060" name="ldap.url"/>
</serviceInstance>

2. 例13-3に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。

例13-3 ブートストラップ資格証明のためのXMLからLDAPへのserviceInstance

<!-- Bootstrap credentials to access destination LDAP -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory
where the bootstrap file cwallet.sso is located;
typically found in destinationDomain/config/fmwconfig/bootstrap
</description>
</serviceInstance>

3. 例13-4に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。

例13-4 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのjpsContext

<jpsContext name="sourceContext">
<serviceInstanceRef ref="src.xml"/>
</jpsContext>

<jpsContext name="destinationContext">
<serviceInstanceRef ref="policystore.ldap.destination"/>
</jpsContext>

<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.cred"/>
</jpsContext>

2. WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

3. WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。

- ポリシー・ストアを移行するには、次を実行します。

migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- アプリケーションを移行するには、次を実行します。

migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- 移行されるアプリケーションの名前は、srcAppパラメータの値です。type="appPolicies"の場合、srcAppは必須パラメータです。この値が設定されていない場合、アプリケーション固有のポリシーを移行するためにソース・アプリケーションが必要ですが定義されていません。というエラー・メッセージが表示され、移行は失敗します。

- 宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。

- overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseであり、この場合は追加された変更のみが移行されます。

13.5.2 LDAPからXMLへの移行

次に、LDAPベースのディレクトリからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。

1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

1. 例13-5に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。

例13-5 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのserviceInstance

<!-- Source LDAP-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.ldap.source">
<description></description>
<property value="OID" name="policystore.type"/>
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=mySourceDomain" name="oracle.security.jps.farm.name"/>
<property value="cn=mySourceRootName"
name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://mySourceHost.com:3060" name="ldap.url"/>
</serviceInstance>

<!-- Destination XML-based policy store instance -->
<serviceInstance name="dst.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>

2. 例13-6に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。

例13-6 ブートストラップ資格証明のためのLDAPからXMLへのserviceInstance

<!-- Bootstrap credentials to access source LDAP -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory where the
bootstrap file cwallet.sso is located; typically found in
destinationDomain/config/fmwconfig/bootstrap</description>
</serviceInstance>

3. 例13-7に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。

例13-7 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのjpsContext

<jpsContext name="sourceContext">
<serviceInstanceRef ref="policystore.ldap.source"/>
</jpsContext>

<jpsContext name="destinationContext">
<serviceInstanceRef ref="dst.xml"/>
</jpsContext>

<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.cred"/>
</jpsContext>

2. WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

3. WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。

- ポリシー・ストアを移行するには、次を実行します。

migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- アプリケーションを移行するには、次を実行します。

migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- 移行されるアプリケーションの名前は、srcAppパラメータの値です。type="appPolicies"の場合、srcAppは必須パラメータです。この値が設定されていない場合、アプリケーション固有のポリシーを移行するためにソース・アプリケーションが必要ですが定義されていません。というエラー・メッセージが表示され、移行は失敗します。

- 宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。

- overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseであり、この場合は追加された変更のみが移行されます。

13.5.3 XMLからデータベースへの移行

次に、XMLベースのポリシー・ストアからデータベースにポリシーを移行する手順を示します。

注意:

bootstrap.security.principal.keyプロパティの値として、リポジトリ・タイプを変更する場合のポリシー、資格証明およびキーストアの再関連付けの際に生成される鍵を設定する必要があります。

1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

1. 例13-8に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。

例13-8 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのserviceInstance

<!-- Source XML-based policy store instance -->
<serviceInstance name="src.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>

<!-- Destination DB-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.db.destination">
<description>DB Based Policy Store Service Instance</description>
<property name="policystore.type" value="DB_ORACLE"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@sc.domainexample.com:1722:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key"
value="bootstrap_DWgpEJgXwhDIoLYVZ2OWd4R8wOA=" />
<property name="oracle.security.jps.ldap.root.name" value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name" value="cn=view_steph.atz"/>
</serviceInstance>

2. 例13-9に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。

例13-9 ブートストラップ資格証明のためのXMLからデータベースへのserviceInstance

<!-- Bootstrap credentials to access source DB -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory
where the bootstrap file cwallet.sso is located;
typically found in destinationDomain/config/fmwconfig/</description>
</serviceInstance>

3. 例13-10に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。

例13-10 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのjpsContext

<jpsContext name="sourceContext">
<serviceInstanceRef ref="src.xml"/>
</jpsContext>

<jpsContext name="destinationContext">
<serviceInstanceRef ref="policystore.db.destination"/>
</jpsContext>

<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.cred"/>
</jpsContext>

2. WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

3. WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。

- ポリシー・ストアを移行するには、次を実行します。

migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- アプリケーションを移行するには、次を実行します。

migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- 移行されるアプリケーションの名前は、srcAppパラメータの値です。type="appPolicies"の場合、srcAppは必須パラメータです。この値が設定されていない場合、アプリケーション固有のポリシーを移行するためにソース・アプリケーションが必要ですが定義されていません。というエラー・メッセージが表示され、移行は失敗します。

- 宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。

- overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseであり、この場合は追加された変更のみが移行されます。

13.5.4 データベースからXMLへの移行

次に、データベースからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。

注意:

bootstrap.security.principal.keyプロパティの値として、リポジトリ・タイプを変更する場合のポリシー、資格証明およびキーストアの再関連付けの際に生成される鍵を設定する必要があります。

1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

1. 例13-11に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。

例13-11 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのserviceInstance

<!-- Source DB-based policy store instance -->
<serviceInstance provider="policystore.provider"
name="policystore.db.source">
<description>DB Based Policy Store Service Instance</description>
<property name="policystore.type" value="DB_ORACLE"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@sc.domainexample.com:1722:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key"
value="bootstrap_DWgpEJgXwhDIoLYVZ2OWd4R8wOA=" />
<property name="oracle.security.jps.ldap.root.name" value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name" value="cn=view_steph.atz"/>
</serviceInstance>

<!-- Destination XML-based policy store instance -->
<serviceInstance name="dst.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>

2. 例13-12に示すように、宛先XMLディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。

例13-12 ブートストラップ資格証明のためのデータベースからXMLへのserviceInstance

<!-- Bootstrap credentials to access source and destination stores -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory where
the bootstrap file cwallet.sso is located; typically found in
destinationDomain/config/fmwconfig/</description>
</serviceInstance>

3. 例13-13に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。

例13-13 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのjpsContext

<jpsContext name="sourceContext">
<serviceInstanceRef ref="policystore.db.source"/>
</jpsContext>

<jpsContext name="destinationContext">
<serviceInstanceRef ref="dst.xml"/>
</jpsContext>

<jpsContext name="bootstrap_credstore_context">
<serviceInstanceRef ref="bootstrap.cred"/>
</jpsContext>

2. 移行のためにWebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

3. WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。

- ポリシー・ストアを移行するには、次を実行します。

migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- アプリケーションを移行するには、次を実行します。

migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")

ここでは、次の事項が適用されます。

- 対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。

- jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。

- 移行されるアプリケーションの名前は、srcAppパラメータの値です。type="appPolicies"の場合、srcAppは必須パラメータです。この値が設定されていない場合、アプリケーション固有のポリシーを移行するためにソース・アプリケーションが必要ですが定義されていません。というエラー・メッセージが表示され、移行は失敗します。

- 宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じになります。

- overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseであり、この場合は追加された変更のみが移行されます。

13.6 キャッシュの構成

Oracle Entitlements Serverでは、キャッシング機能が提供されています。キャッシュ設定は、jps-config.xmlファイルで構成されます。次の各項では、適切な詳細を説明します。

- 13.6.1項「決定キャッシングの構成」

- 13.6.2項「属性キャッシングの構成」

13.6.1 決定キャッシングの構成

認可決定キャッシングによって、Oracle Entitlements Serverは、同一コールが行われると、認可コールの結果をキャッシュし、その決定を今後使用できます。決定キャッシュは、2つの階層レベルで構成されます。

- 第1レベル(L1)は、認可コールで使用されるサブジェクトをキャッシュします。

- 第2レベル(L2)は、指定したサブジェクトの認可決定およびロール・マッピング決定をキャッシュします。

注意:

決定キャッシュは、ポリシーが変更されると自動的に無効化されます。

キャッシュのキーは、ポリシー評価中に使用される受信サブジェクト、権限および属性です。キャッシュの値は、決定および責任です。

すべてのパラメータ名には、接頭辞としてoracle.security.jps.pdpが付けられます。例13-14は、決定キャッシュ・パラメータをjps-config.xmlに設定する方法を示します。

例13-14 決定キャッシングを構成するXML

<serviceInstance name="pdp.service" provider="pdp.service.provider">
…
<property name="oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled"
value="true"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionCapacity"
value="1000"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionPercentage"
value="15"/>
<property name="oracle.security.jps.pdp.AuthorizationDecisionCacheTTL"
value="180"/>
…
</serviceInstance>

表13-3では、決定キャッシング・パラメータを説明します。

表13-3 決定キャッシング・パラメータ

名前

説明

許容値

oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled

ポリシー決定キャッシュを有効化するかどうかを指定するオプション・パラメータ。

true (デフォルト)

false

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionCapacity

L1キャッシュの最大容量を指定するオプション・パラメータ。エントリ数がこの値を超えると、いくつかのエントリが削除されます。

エントリ数を表す整数

500 (デフォルト)

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage

最大容量に達したときに削除する必要があるL1キャッシュ内のエントリの比率を指定するオプション・パラメータ。たとえば、最大容量が200で、このパラメータの値が10の場合、20エントリがキャッシュから削除されます。

エントリの割合を表す整数

10 (デフォルトは10%)

oracle.security.jps.pdp.AuthorizationDecisionCacheTTL

L2キャッシュ内のエントリの存続時間の値(秒)を指定するオプション・パラメータ。認可決定をキャッシュする長さを定義します。

時間を秒で表す整数

60 (デフォルトは1分)

13.6.2 属性キャッシングの構成

渡された各属性にcachedプロパティが定義されている場合、その属性をキャッシュできます。cachedが有効化されている場合、対応する存続時間(TTL)の値も定義する必要があります。キャッシュのキーは、属性URIです。キャッシュの値は、属性オブジェクトです。例13-15は、属性キャッシュをjps-config.xmlに設定する方法を示します。

例13-15 属性キャッシングを構成するXML

<propertySet name="ootb.pip.attribute.age.based.on.myattr.rdbms">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.db"/>
<property name="name" value="myattr"/>
<property name="query" value=
"select myattr from test where username=%SYS_USER%"/>
<property name="cached" value="true"/>
<property name="TTL" value="60"/>
</propertySet>

注意:

cachedが属性に定義されていない場合、属性はキャッシュされません。

13.7 ロギング

Oracle Entitlements Serverでは、標準のJavaパッケージjava.util.loggingがロギングに使用されます。ロギング設定ファイルの名前はlogging.propertiesです。これはJava Development Kit (JDK)の標準ファイルであり、(デフォルトで)$JAVA_HOME/jre/lib/にあります。

注意:

コマンドラインでインストールに合わせて実際のパスに置き換えて次を実行することによって、logging.propertiesの場所を構成します。

-Djava.util.logging.config.file=/path/filename

Javaロギングでは、FINEST(最も詳細なトレース・メッセージを示します)からSEVERE(致命的なプログラム・エラーなどを示します)まで、出力を制御するためのログ・レベルが定義されています。特定のレベルでのロギングが有効化されると、それより高いすべてのレベルでのロギングも有効化されます。表13-4は、サーバーの問題をトラブルシューティングするための情報を提供するためにFINE(デバッグおよび問題の診断のための詳細)に設定できる具体的なロガー・プロパティを示します。

表13-4 サーバーの問題のロギング

トラブルシューティングする問題

FINEに設定するプロパティ

ポリシー管理の問題

- oracle.jps.policymgmt

基本認可の問題

- oracle.jps.authorization

ポリシー配布の問題

- oracle.oes.pd

- oracle.oes.common

セキュリティ・モジュールの問題

- oracle.oes.sm

特定のツール(enroll.shなど)の問題

- oracle.oes.tool

logging.propertiesを変更した後は、次のコマンドを実行して、必ずjava.util.logging.config.fileシステム・プロパティを設定してください。

-Djava.util.logging.config.file=/<directory>/logging.properties

例13-16は、Oracle Entitlements Serverのデフォルトのlogging.propertiesファイルです。

例13-16 デフォルトのlogging.properties構成ファイル

############################################################
#  Default Logging Configuration File
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################
#  Global properties
############################################################
# "handlers" specifies a comma separated list of log Handler
# classes. These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= WARNING
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = /logs/java%u.log
java.util.logging.FileHandler.limit = 50000000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################
# Facility specific properties.
############################################################
# Provides extra control for each logger.
############################################################
# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
oracle.oes.sm.level=FINE
oracle.oes.common.level=FINE
oracle.oes.tool.level=FINE
oracle.oes.pd.level=FINE
oracle.jps.policymgmt.level=FINE
oracle.jps.authorization.level=FINE
oracle.jps.common.level=FINE

13.8 デバッグ

ポリシーをデバッグすることで、特定の認可コールに対するポリシー評価プロセスを分析できます。Oracle Entitlements Serverランタイムのデバッグ機能はDebugStoreに収集され、(各種の情報の中でも)次を提供します。

- 評価プロセスに関連する認可ポリシーとロール・マッピング・ポリシー(および適切なポリシー・オブジェクト)

- 評価された属性とその値

- 関数を起動した結果

- リクエストしたサブジェクトが付与または拒否されたロール

- ポリシー評価結果(GRANT、DENY、NOT APPLICABLE)

- 責任と条件(該当する場合)

- 失敗した認証、不足しているグループ・メンバーシップおよび不正なアイデンティティ値

クライアントは次のどちらかの方法でデバッグ情報にアクセスできます。1つめの方法は、デバッグ・パラメータを構成して標準デバッグ・ログの情報を確認します。2つめの方法は、isAccessAllowed_debug()メソッドとgetRoles_debug()メソッドをオーバーロードします。これらの2つのメソッドは、ポリシー評価中のデバッグ情報が設定されたDebugInfoパラメータを返します。この2つめの方法は、ポリシー・シミュレーション・ツールとともに、エンド・ユーザーによって使用されます。次の各項では、これらの方法の詳細を説明します。

- 13.8.1項「パラメータ定義によるデバッグの有効化」

- 13.8.2項「メソッドを使用するデバッグの有効化」

13.8.3項「ポリシー配布のデバッグ」では、ポリシー配布プロセスのデバッグについて説明します。

13.8.1 パラメータ定義によるデバッグの有効化

次の各項では、デバッグ・パラメータの構成方法とデバッグ・ログの読み方について説明します。

- デバッグのためのロギングの構成

- 認可ポリシーをデバッグするログの検索

13.8.1.1 デバッグのためのロギングの構成

ポリシーから予想外の結果が得られた場合、デバッグを有効化して、ポリシー決定に関するすべてのイベントがセキュリティ・モジュールのログに記録されるようにすると、役に立つ可能性があります。次の各項では、Oracle Entitlements Serverを使用して作成された認可ポリシーのデバッグ方法とポリシー配布プロセスのデバッグ方法について説明します。

Oracle Entitlements Serverでは、デバッグ詳細を取得するために標準のJavaロギング・フレームワークが使用されます。ロギングは、特定のイベントのエンティティを通知するプロセスです。Oracle Entitlements Serverの場合、エンティティはファイルまたは管理コンソールになり、イベントはデバッグ情報、ランタイム例外、またはユーザーが実行するアクションの記録になります。ロギング・フレームワークは、Oracle Entitlements Serverデプロイメントに基づいて構成されます。詳細は、次の各項に記載されています。

- 13.8.1.1.1項「Javaセキュリティ・モジュールのロギングの構成」

- 13.8.1.1.2項「WebLogic Serverセキュリティ・モジュールのロギングの構成」

注意:

java.util.loggingパッケージは、プラットフォームのコア・ロギング機能のクラスおよびインタフェースを提供します。

13.8.1.1.1 Javaセキュリティ・モジュールのロギングの構成

Javaセキュリティ・モジュールがデプロイされている場合、ロギングを有効化するには、次の構成を行う必要があります。

- セキュリティ・モジュールを開始する際に次のコマンドを実行して、ロギング構成ファイルを指定します。

-Djava.util.logging.config.file=logging.properties

- 構成ファイルに次の行を追加して、ロギング・レベルを設定します。

oracle.jps.authorization.level=FINEST
oracle.jps.openaz.level=FINEST
oracle.jps.authorization.debugstore=FINEST

1番目のプロパティのレベルは変更しないで、残り2つのレベルをFINESTに設定します。この構成により、ポリシー評価の結果が記録されます。ロギング・レベルは、ロギング・レコードの複雑度を定義し、(複雑度の低い順に)FINEST(単純な情報)、FINER、FINE、CONFIG、INFO、WARNINGおよびSEVERE(複雑な情報)があります。

構成ファイルを指定しない場合、$JAVA_HOME/jre/lib/にあるlogging.propertiesファイルが使用されます。例13-17は、管理コンソールに情報を記録するようにlogging.propertiesを構成する方法を示します。

例13-17 管理コンソール・ロギングのための構成

#The messages will we printed to the standard output
handlers=java.util.logging.ConsoleHandler

#The default level for all loggers is INFO
.level=INFO

#Override the default level for OES authorization to FINEST
oracle.jps.authorization.level=FINEST
oracle.jps.openaz.level=FINEST

#Use default formatter to print the messages
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

例13-18は、ファイルに情報を記録するようにlogging.propertiesを構成する方法を示します。

例13-18 ファイル・ロギングのための構成

#The messages will be written to a file
handlers=java.util.logging.FileHandler

#The default level for all loggers is INFO
.level=INFO

#Override the default level for OES authorization to FINEST
oracle.jps.authorization.level=FINEST
oracle.jps.openaz.level=FINEST

#Configure file information. %h – is the user home directory
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

13.8.1.1.2 WebLogic Serverセキュリティ・モジュールのロギングの構成

WebLogic Serverセキュリティ・モジュールがデプロイされている場合、ロギングを有効化するには、WebLogic Serverドメインを起動する際に、次のコマンドを実行して、ロギング構成ファイルを指定します。

startWeblogic.sh -Djava.util.logging.config.file=logging.properties

ヒント:

相対パスを指定する場合、ベース・ディレクトリはドメイン・ホームです。startWeblogic.shがあるディレクトリではありません。

WebLogic Serverセキュリティ・モジュールに関連するその他の構成は、13.8.1.1.1項「Javaセキュリティ・モジュールのロギングの構成」で定義されている構成と同様です。

13.8.1.2 認可ポリシーをデバッグするログの検索

次の各項では、ロギング・ファイルに記録された情報を検索する方法について説明します。各項には、実行するコマンドが記載されており、多くの項には、サンプル出力も記載されています。

- 13.8.1.2.1項「PEPリクエスト情報の検索」

- 13.8.1.2.2項「DebugStore出力に対する検索」

- 13.8.1.2.3項「セキュリティ・モジュールのキャッシュ構成パラメータの検索」

- 13.8.1.2.4項「プリンシパルの検索」

- 13.8.1.2.5項「リソースおよびアクションの検索」

- 13.8.1.2.6項「属性の値の検索」

- 13.8.1.2.7項「認可決定の検索」

- 13.8.1.2.8項「責任の値の検索」

- 13.8.1.2.9項「静的アプリケーション・ロールの検索」

13.8.1.2.1 PEPリクエスト情報の検索

次のコマンドをロギング・ファイルに対して実行して、PEPリクエスト関連の情報(認証ID、ランタイム・リソース、ランタイム・アクション、およびアプリケーション・コンテキストなど)を出力します。

grep "PepRequestImpl"

13.8.1.2.2 DebugStore出力に対する検索

例13-19は、DebugStoreロガーが有効化されている場合にログ・ファイルに出力される可能性がある内容を示すサンプル出力です。ここには、アプリケーションの名前、リクエストされたリソース、アクション、サブジェクトおよび評価されたポリシーが出力されています。

例13-19 DebugStoreのサンプル・ロギング出力

========== Start Of Policy Evaluation Info ==========
Application: Library
Requested Resource Type: LibraryResource
Requested Resource: books/CrimeAndPunishment
Requested Resource Present: false
Requested Action: borrow
Request Subject Principals:
class weblogic.security.principal.WLSUserImpl:John
Effective Roles Granted: [authenticated-role, Member, PrivilegedMember]
Role-Mapping Policies:
1.Policy Name: GrantPrivilegedMemberPolicy
Matched Policy Principals:
class weblogic.security.principal.WLSUserImpl:John
Policy Principals Semantics: OR
Policy Roles: [PrivilegedMember]
Matched Policy Resources: NONE
Policy Evaluation Result: NOT_APPLICABLE
Policy Rules:
Rule Name: GrantPrivilegedMemberRule
Rule Effect: GRANT
Rule Condition: (MembershipLength >= 5)
Evaluated Rule Attributes and Functions:
MembershipLength(Dynamic, Integer) = 4
Rule Evaluation Result: NOT_APPLICABLE
2.Policy Name: DenyMemberPolicy
Matched Policy Principals:
class weblogic.security.principal.WLSUserImpl:John
Policy Principals Semantics: OR
Policy Roles: [Member]
Matched Policy Resources: [.*]
Policy Evaluation Result: NOT_APPLICABLE
Policy Rules:
Rule Name: DenyMemberRule
Rule Effect: DENY
Rule Condition: (MemberState = MA)
Evaluated Rule Attributes and Functions:
MemberState(Dynamic, String) = CA
Rule Evaluation Result: NOT_APPLICABLE

Static Role Grants:
Principal= class oracle.security.jps.service.policystore.ApplicationRole:
Member, Roles= [PrivilegedMember]
Principal= class weblogic.security.principal.WLSUserImpl:John,
Roles= [Member]

Denied Static Role Grants: NONE

Authorization Policies:
1.Policy Name: DenyBorrowLibResourcesPolicy
Matched Policy Principals:
class oracle.security.jps.service.policystore.ApplicationRole:Member
class weblogic.security.principal.WLSUserImpl:John
Policy Principals Semantics: AND
Matched Policy Resource-Actions:
Resource = books/.*, Action = borrow
Policy Obligations: NONE
Policy Evaluation Result: NOT_APPLICABLE
Policy Rules:
Rule Name: DenyBorrowLibResourcesRule
Rule Effect: DENY
Rule Condition: (NumBorrowedBooks >= 6)
Evaluated Rule Attributes and Functions:
NumBorrowedBooks(Dynamic, Integer) = 2
Rule Evaluation Result: NOT_APPLICABLE

2.Policy Name: GrantBorrowLibResourcesPolicy
Matched Policy Principals:
class oracle.security.jps.service.policystore.ApplicationRole:Member
Policy Principals Semantics: OR
Matched Policy Resource-Actions:
Resource = .*books.*, Action = ANY
Resource = .*, Action = borrow
Policy Obligations: NONE
Policy Evaluation Result: GRANT
Policy Rules:
Rule Name: GrantBorrowLibResourcesRule
Rule Effect: GRANT
Rule Condition: ((NumBorrowedBooks < 4) && (age() >= 12))
Evaluated Rule Attributes and Functions:
NumBorrowedBooks(Dynamic, Integer) = 2
age(Function, Integer) = 24
Rule Evaluation Result: GRANT
========== End Of Policy Evaluation Info ==========

13.8.1.2.3 セキュリティ・モジュールのキャッシュ構成パラメータの検索

次のコマンドをロギング・ファイルに対して実行して、特定のセキュリティ・モジュールのキャッシュ構成パラメータを出力します。

grep "AuthorizationDecisionCacheTTL"

この検索では、次のプロパティが返されます。プロパティがログに表示されない場合、プロパティはjps-config.xmlで指定されていません。このような場合、プロパティのデフォルト値が使用されます。

- AuthorizationDecisionCacheTTLは、認可決定キャッシュの存続時間(秒)を定義します。デフォルト値は60です。

- AuthorizationDecisionCacheEvictionPercentageは、認可決定キャッシュが最大容量に達したときに削除する認可決定の比率を定義します。デフォルト値は10です。

- AuthorizationDecisionCacheEvictionCapacityは、決定キャッシュ・サイズがこのサイズに達した場合に認可決定キャッシュを削除するのに使用する数を定義します。デフォルト値は500です。

- AuthorizationDecisionCacheEnabledは、認可決定キャッシュを有効化するかどうかを指定します。デフォルト値はtrueです。

例13-20は、この検索での出力を示します。

例13-20 キャッシュ構成パラメータ検索でのサンプル出力

oracle.security.jps.az.internal.runtime.service.AbstractPDPService

FINE: properties : {
oracle.security.jps.pdp.AuthorizationDecisionCacheTTL=60,
oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage=10,
oracle.secuirty.jps.pdp.AuthorizationDecisionCacheEvictionCapacity=1000,
oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled=true}

13.8.1.2.4 プリンシパルの検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するプリンシパルの名前を出力します。

grep "Principal:"

例13-21は、プリンシパル検索での出力を示します。

例13-21 プリンシパル検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl isAccessAllowed

FINE:subject: Subject:
Principal: John
Principal: Employee
Principal: Administrator
Principal: Principal Developer

13.8.1.2.5 リソースおよびアクションの検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するリソースおよびアクションの名前を出力します。

grep "Resource:"

例13-22は、情報を返す方法を示します。定義される値は、ポリシー・オブジェクトの名前です。

- アプリケーション = Lib

- リソース・タイプ = libraryresourcetype

- リソース = Book

- アクション = borrow

例13-22 リソースおよびアクション検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl isAccessAllowed

FINE: Resource: resource=Lib/libraryresourcetype/Book, action=borrow

13.8.1.2.6 属性の値の検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信する属性の値を出力します。

grep "<name-of-the-attribute>:"
EXAMPLE: grep "NumberOfBorrowedBooksAttribute:"

例13-23は、属性の名前がNumberOfBorrowedBooksAttributeで、値が2の場合に返される情報を示します。

例13-23 属性検索の値のサンプル出力

com.bea.security.providers.authorization.asi.ARME.evaluator.EvalSession logDebug
FINE: getAttributeInternal: name: NumberOfBorrowedBooksAttribute; value: 2;
type: 3

13.8.1.2.7 認可決定の検索

次のコマンドをロギング・ファイルに対して実行して、格納された認可決定を取得します。

grep "AccessResultLogger"

例13-24は、返される情報を示し、認可決定が肯定的であったことを確認します。

例13-24 認可決定検索でのサンプル出力

com.bea.security.providers.authorization.asi.AccessResultLogger log
FINE: Subject Subject:
Principal: John
Principal: Employee
Principal: Administrator
Principal: Principal Developer
privilege borrow resource //app/policy/Lib/Book result PERMIT

13.8.1.2.8 責任の値の検索

UNIXシステムで、次のコマンドをロギング・ファイルに対して実行して、特定の責任の値を出力します。grep <string_to_find> <filename>。

次に例を示します。

grep "adding response attribute:" | grep  "obligations"

例13-25は、プリンシパルが現在チェックアウトしているライブラリ・ブックの量が3より多い場合、責任(DenyObligationという名前)はリクエストを拒否することを示している場合に返される情報を示します。次の場合、プリンシパルは5つのブックをチェックアウトしています。

例13-25 責任の値検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl ARMEisAccessAllowed
FINE: adding response attribute: namespace=oracle.security.oes.authorization.
name=obligations value={DenyObligation=
{ reason_part1=Too many borrowed books (max=3), reason_part2=5, }}

13.8.1.2.9 静的アプリケーション・ロールの検索

次のコマンドをロギング・ファイルに対して実行して、静的に付与されるアプリケーション・ロールの名前を出力します。

grep "AbstractRoleManager" | grep "getGrantedStaticAppRoles"

例13-26は、2つの静的ロール(組込みロールとReaderの認証ロール、およびLibraryという名前のアプリケーションで定義されるアプリケーション・ロール)をプリンシパルのリストに追加する方法を示します。

例13-26 静的ロール検索でのサンプル出力

oracle.security.jps.az.internal.runtime.entitymanager.AbstractRoleManager getGrantedStaticAppRoles(Set)
FINER: RETURN [authenticated-role,
ApplicationRoleLibrary/Readeruname:
cn=Writer,cn=Roles,cn=Lib,cn=akapisni_dwps1_
view1.atzsrg,cn=JPSContext,cn=jpsTestNode,guid:
411EBF807CD411E0BF887FB1A0F3878F]

13.8.2 メソッドを使用するデバッグの有効化

isAccessAllowed_DebugとgetRoles_Debugは、デバッグ情報を返すためにコードで使用できるメソッドです。DebugInfoは、isAccessAllowed_DebugコールとgetRoles_Debugコールで返されるオブジェクトです。これらのメソッドをオーバーロードする際、ポリシー・デバッグ機能(ポリシー・シミュレーション・ツールを含む)のコンシューマに次の情報が渡される必要があります。

- リクエストしたサブジェクトが付与されたロール。

- リクエストしたサブジェクトが拒否されたロール。

- リクエストしたサブジェクトが付与された有効なロール。

- リクエストしたサブジェクト、リソース・タイプ、リソースおよびアクション(該当する場合)が一致するロール・マッピング・ポリシーと認可ポリシー。各ポリシーには、名前、プリンシパル(ユーザーまたはロール・サブジェクトと一致)、リソースまたはリソース式(入力リソースに一致)、アクションまたはロール(ポリシー・タイプに依存)、ポリシー・ルール(ルール名、GRANTまたはDENYのどちらかの影響、条件を表す文字列、評価された属性とその値(動的、関数およびリソース・タイプを含む)、およびルール評価結果(Grant、Deny、Not Applicable)が必要です。

- ポリシー評価結果(Grant、Deny、Not Applicable)。

- 責任(認可ポリシーの場合のみ)。

詳細は、Oracle Fusion Middleware Oracle Entitlements Server管理Java APIリファレンスを参照してください。

13.8.3 ポリシー配布のデバッグ

ポリシー配布コンポーネントでは、ポリシー管理のLoggerインタフェースを使用します。ポリシー配布コンポーネントのデバッグを有効化するには、ロギング構成ファイルのoracle.jps.policymgmt.levelプロパティのロギング・レベルをFINESTに変更します。手順は、13.8.1.1項「デバッグのためのロギングの構成」を参照してください。ポリシー配布をデバッグする際は、次も確認する必要があります。

- セキュリティ・モジュール配布モード・パラメータoracle.security.jps.runtime.pd.client.policyDistributionModeが正しく定義されていることを確認します。付録A「ポリシー配布構成」を参照してください。

- 制御プッシュ・モードまたは制御プル・モードでポリシーを配布する場合、ローカル・キャッシュ・ファイルの存在を確認します。ローカル・キャッシュ・ディレクトリは、oracle.security.jps.runtime.pd.client.localpolicy.work_folderパラメータの値として定義されます。このディレクトリのpolicyA/やpolicyB/などのサブディレクトリで、各ポリシーのXML_CACHE_FILEを参照します。キャッシュ・ファイルのタイムスタンプが、最後の配布の開始時刻と一致することを確認します。付録A「ポリシー配布構成」を参照してください。

- 制御プッシュ・モードでポリシーを配布する場合、ポリシーの配布先のセキュリティ・モジュールのインスタンスがアプリケーションの「ポリシー配布」ページに表示され、同期していることを確認します。

- セキュリティ・モジュール側をデバッグして、正しいポリシーが評価されていることを確認します。

A インストール・パラメータおよび構成パラメータ

この付録では、Java EEコンテナが使用する構成ファイルであるjps-config.xmlを使用して、Oracle Entitlements Serverサービスに定義されるパラメータおよび許容値をリストします。これは、$DOMAIN_HOME/config/fmwconfigディレクトリにあります。この付録は、次の各項で構成されています。

- A.1項「ポリシー配布構成」

- A.2項「セキュリティ・モジュール構成」

- A.3項「PDPプロキシ・クライアントの構成」

- A.4項「ポリシー・ストア・サービス構成」

A.1 ポリシー配布構成

ポリシー配布コンポーネントは、ポリシー・ストアから1つ以上のセキュリティ・モジュールへのポリシー・オブジェクトおよびポリシーの配布に関与しています。制御プッシュ・モード、制御プル・モード、非制御モードまたは混合モードで配布できます。各モードは、異なる構成を伴います。

- A.1.1項「ポリシー配布コンポーネントのサーバー構成」

- A.1.2項「ポリシー配布コンポーネントのクライアント構成」

A.1.1 ポリシー配布コンポーネントのサーバー構成

通常、ポリシーおよびポリシー・オブジェクトをフェッチするためのポリシー配布コンポーネントの構成(Oracle Entitlements Server内で実行されるときのシナリオの場合)は、jps-config.xmlファイルでのポリシー・ストア構成に関連付けられます。制御された方法でデータがプルされる(制御プル・モード)のは、セキュリティ・モジュール側でPDPサービス構成に関連付けられているポリシー配布コンポーネントのみです。表A-1では、構成パラメータを説明します。

表A-1 ポリシー配布のサーバー構成

パラメータ名

情報

コンソール名

oracle.security.jps.pd.server.transactionalScope

ポリシー配布の範囲を、1つのセキュリティ・モジュールか、すべてのセキュリティ・モジュールのいずれかとして定義します。配布が1つのセキュリティ・モジュールにのみ関係するときに配布が失敗した場合、他のセキュリティ・モジュールへの配布には影響しません。

オプション

許容値: All (デフォルト)、One

なし

oracle.security.jps.register.waiting.interval

登録リクエストの受信後にポリシー配布を遅らせる時間を定義します。

オプション

許容値: 秒単位の時間(デフォルト値は0)

なし

A.1.2 ポリシー配布コンポーネントのクライアント構成

ポリシー配布コンポーネント・クライアントは、セキュリティ・モジュールで使用できるポリシーの作成に関与しています。そのため、ポリシー配布クライアント構成は、常に、セキュリティ・モジュール側のjps-config.xmlファイルのPDPサービス構成部分に関連付けられています。構成は、配布モードおよびセキュリティ・モジュールが実行中の環境に応じて異なります。次の各項では、適用可能な構成パラメータの詳細を説明します。

- A.1.2.1項「ポリシー配布コンポーネントのクライアントJava Standard Edition構成(制御プッシュ・モード)」

- A.1.2.2項「ポリシー配布コンポーネントのクライアントJava Enterprise Editionコンテナ構成(制御プッシュ・モード)」

- A.1.2.3項「ポリシー配布のクライアント構成(制御プル・モード)」

- A.1.2.4項「ポリシー配布のクライアント構成(非制御モード)」

- A.1.2.5項「ポリシー配布のクライアント構成(混合モード)」

A.1.2.1 ポリシー配布コンポーネントのクライアントJava Standard Edition構成(制御プッシュ・モード)

表A-2では、Oracle Entitlements ServerがJava Standard Edition (JSE)環境で実行され、制御プッシュ・モードでデータを配布するよう構成されている場合の、ポリシー配布コンポーネントのクライアント構成のパラメータをまとめています。

表A-2 ポリシー配布のクライアント構成、JSE、制御プッシュ・モード

パラメータ名

情報

コンソール名

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー配布モードを指定します。制御された配布は、ポリシー配布コンポーネントによって開始され、セキュリティ・モジュールが最後の配布以降に作成または変更されたポリシー・データを受信することを確認します。

必須

許容値: controlled-push

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.sm_name

セキュリティ・モジュールの名前を定義します。

必須

許容値: セキュリティ・モジュールの名前

* SM名

oracle.security.jps.runtime.pd.client.localpolicy.work_folder

ローカル・キャッシュ・ファイルが格納されるディレクトリの名前を定義します。値が定義されない場合、jps-config.xmlがあるディレクトリに作業ディレクトリが作成されます。適切なセキュリティ・モジュールがJRFドメインに作成された場合、実際の作業フォルダとして使用される指定された作業フォルダまたはデフォルト作業フォルダの下にサーバー名を使用したサブディレクトリが作成されます。

オプション

許容値: ローカル・キャッシュ・ファイルが格納されるディレクトリの名前。このディレクトリは、読取りおよび書込み権限を持っている必要があります。

ローカル・ポリシー作業フォルダ

oracle.security.jps.runtime.pd.client.incrementalDistribution

配布が増分配布またはフラッシュ配布のどちらであるかを定義します。増分配布は、新規および変更されたデータのみを配布する場合に使用します。フラッシュ配布は、ポリシー・ストア内のすべてのポリシー・オブジェクトを完全に再配布するための準備として、ローカルに保存されたポリシーをクリーンアップするよう、ポリシー配布コンポーネントがセキュリティ・モジュールに通知する場合に使用します。

オプション

許容値:

- false (このセキュリティ・モジュールのポリシー配布はフラッシュです。)

- true (デフォルト値。必要な変更ログがポリシー・ストアに保持されている場合、このセキュリティ・モジュールのポリシー配布は増分です。)

増分配布

oracle.security.jps.runtime.pd.client.registrationRetryInterval

セキュリティ・モジュールの開始時に、それ自体をポリシー配布コンポーネントに登録して、ローカル・ポリシー・キャッシュが最新であることを保証します。登録が失敗すると、成功するまで、この時間間隔が経過するたびに再試行します。

オプション

許容値: 秒単位の時間(デフォルト値は5)

登録再試行間隔

oracle.security.jps.runtime.policyDistributionWaitTime

この値が定義され、ゼロではない場合、セキュリティ・モジュールが最初のポリシー配布が発生するのを待機する時間を指定します。この待機期間中は、最初のポリシー配布が完了するか、構成した期間が過ぎるまで、認可リクエストはブロックされます。

オプション

許容値: 秒単位の時間(デフォルト値は60)

配布待機時間(秒)

oracle.security.jps.runtime.pd.client.RegistrationServerURL

Oracle Entitlements Server管理サーバーのURLを定義します。セキュリティ・モジュールが、開始時にそれ自体をOracle Entitlements Serverに登録する場合に使用します。

必須

許容値: URL

* 登録サーバーURL

oracle.security.jps.runtime.pd.client.backupRegistrationServerURL

Oracle Entitlements Server管理サーバーのバックアップURLを定義します。プライマリURL(前述のパラメータ)が使用できないとき、セキュリティ・モジュールが、開始時にそれ自体をOracle Entitlements Serverに登録する場合に使用します。

オプション (ただし、構成されていないOracle Entitlements Serverフェイルオーバーが動作しない場合)

許容値: URL

バックアップ登録サーバーURL

oracle.security.jps.runtime.pd.client.DistributionServicePort

リモートのポリシー・ディストリビュータがポリシー更新をプッシュするポートを定義します。

必須

許容値: ポート番号

* 配布サービス・ポート

oracle.security.jps.pd.client.sslMode

ポリシー配布コンポーネントのサーバーとクライアント間の通信で、Secure Sockets Layer (SSL)プロトコルを使用するかどうかを定義します。

必須

許容値: none、two-way (デフォルト値)

* SSLモード

oracle.security.jps.pd.client.ssl.identityKeyStoreFileName

クライアント証明書が格納されるアイデンティティ・キー・ストア・ファイルの名前を定義します。セキュリティ・モジュールとポリシー配布コンポーネント間のSSL通信に使用されます。

必須

許容値: キーストア・ファイルの名前

* SSLアイデンティティ・キー・ストア・ファイル名

oracle.security.jps.pd.client.ssl.trustKeyStoreFileName

認証局(CA)証明書が格納される信頼キー・ストア・ファイルの名前を定義します。セキュリティ・モジュールとポリシー配布コンポーネント間のSSL通信に使用されます。

必須

許容値: アイデンティティ・キー・ストア・ファイルの名前

* SSL信頼キー・ストア・ファイル名

oracle.security.jps.pd.client.ssl.identityKeyStoreKeyAlias

セキュリティ・モジュールとポリシー配布コンポーネント間のSSL通信に使用されるクライアント証明書を識別するアイデンティティ・キー別名を定義します。

オプション (アイデンティティ・キーストアに別名が1つのみ存在する場合、この値を指定する必要はありません。)

許容値: アイデンティティ・キー別名

SSLアイデンティティ・キー・ストア・キー別名

oracle.security.jps.runtime.pd.client.SMinstanceType

ポリシー配布コンポーネント・クライアントの接続先のセキュリティ・モジュールのタイプを定義します。

必須

許容値: java (他の許容値は、wls、RMIおよびwsです。この表ではJavaセキュリティ・モジュールのみを対象としているため、値はjavaである必要があります。)

OESクライアント・インストール中のみ構成されます。

oracle.security.jps.runtime.pd.client.localpolicy.JCEProviderName

使用するJCEプロバイダを定義します。

オプション

許容値: SunJCE、JsafeJCE(デフォルト値は未定義)この値では大文字と小文字が区別されます。値が指定されない場合、デフォルトのJDKプロバイダが使用されます。

oracle.security.jps.runtime.pd.client.localpolicy.CipherKeyLength

指定されたJCEプロバイダのCipherクラスで使用される鍵の長さを定義します。

オプション

許容値: 128、192、256(デフォルト値は128)

oracle.security.jps.runtime.pd.client.localpolicy.CipherModePadding

指定されたJCEプロバイダのCipherクラスで使用される暗号アルゴリズム名、モードおよびパディングのスキーマを定義します。大/小文字は区別されません。次の形式である必要があります。

アルゴリズム名/モード/パディング

オプション

許容値: デフォルト値はAES/CBC/PKCS5Paddingで、それ以外にAES/CBC/PKCS5PaddingまたはAES/GCM/NoPaddingなどがあります。

A.1.2.2 ポリシー配布コンポーネントのクライアントJava Enterprise Editionコンテナ構成(制御プッシュ・モード)

表A-3では、Oracle Entitlements ServerがJava Enterprise Edition (JEE)環境で実行され、制御プッシュ・モードでデータを配布するよう構成されている場合の、ポリシー配布コンポーネントのクライアント構成のパラメータをまとめています。

表A-3 ポリシー配布のクライアント構成、JEE、制御プッシュ・モード

パラメータ名

情報

コンソール名

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー配布モードを指定します。制御された配布は、ポリシー配布コンポーネントによって開始され、セキュリティ・モジュールが最後の配布以降に作成または変更されたポリシー・データを受信することを確認します。

必須

許容値: controlled-push

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.sm_name

セキュリティ・モジュールの名前を定義します。

必須

許容値: セキュリティ・モジュールの名前

* SM名

oracle.security.jps.runtime.pd.client.localpolicy.work_folder

ローカル・キャッシュ・ファイルが格納されるディレクトリの名前を定義します。値が定義されない場合、jps-config.xmlがあるディレクトリに作業ディレクトリが作成されます。適切なセキュリティ・モジュールがJRFドメインに作成された場合、実際の作業フォルダとして使用される指定された作業フォルダまたはデフォルト作業フォルダの下にサーバー名を使用したサブディレクトリが作成されます。

オプション

許容値: ローカル・キャッシュ・ファイルが格納されるディレクトリの名前。このディレクトリは、読取りおよび書込み権限を持っている必要があります。

ローカル・ポリシー作業フォルダ

oracle.security.jps.runtime.pd.client.incrementalDistribution

配布が増分配布またはフラッシュ配布のどちらであるかを定義します。増分配布は、新規および変更されたデータを配布する場合に使用します。フラッシュ配布は、ポリシー・ストア内のすべてのポリシー・オブジェクトを完全に再配布するための準備として、ローカルに保存されたポリシーをクリーンアップするよう、ポリシー配布コンポーネントがセキュリティ・モジュールに通知する場合に使用します。

オプション

許容値:

- false (このセキュリティ・モジュールのポリシー配布はフラッシュです。)

- true (デフォルト値。必要な変更ログがポリシー・ストアに保持されている場合、このセキュリティ・モジュールのポリシー配布は増分です。)

増分配布

oracle.security.jps.runtime.pd.client.registrationRetryInterval

セキュリティ・モジュールの開始時に、それ自体をポリシー配布コンポーネントに登録して、ローカル・ポリシー・キャッシュが最新であることを保証します。登録が失敗すると、成功するまで、この時間間隔が経過するたびに再試行します。

オプション

許容値: 秒単位の時間(デフォルト値は5)

登録再試行間隔(秒)

oracle.security.jps.runtime.policyDistributionWaitTime

この値が定義され、ゼロではない場合、セキュリティ・モジュールが最初のポリシー配布が発生するのを待機する時間を指定します。この待機期間中は、最初のポリシー配布が完了するか、構成した期間が過ぎるまで、認可リクエストはブロックされます。

オプション

許容値: 秒単位の時間(デフォルト値は60)

配布待機時間(秒)

oracle.security.jps.runtime.pd.client.RegistrationServerURL

Oracle Entitlements Server管理サーバーのURLを定義します。セキュリティ・モジュールが、開始時にそれ自体をOracle Entitlements Serverに登録する場合に使用します。

必須

許容値: URL

* 登録サーバーURL

oracle.security.jps.runtime.pd.client.backupRegistrationServerURL

Oracle Entitlements Server管理サーバーのバックアップURLを定義します。プライマリURL(前述のパラメータ)が使用できないとき、セキュリティ・モジュールが、開始時にそれ自体をOracle Entitlements Serverに登録する場合に使用します。

オプション (ただし、構成されていないOracle Entitlements Serverフェイルオーバーが動作しない場合)

許容値: URL

バックアップ登録サーバーURL

oracle.security.jps.runtime.pd.client.SMinstanceType

ポリシー配布コンポーネント・クライアントの接続先のセキュリティ・モジュールのタイプを定義します。

必須

許容値:

- was

- wls

OESクライアント・インストール中のみ構成されます。

oracle.security.jps.runtime.pd.client.DistributionServiceURL

リモートのポリシー・ディストリビュータがポリシー更新をプッシュするURLを定義します。

必須

許容値: URL

oracle.security.jps.runtime.pd.client.localpolicy.JCEProviderName

使用するJCEプロバイダを定義します。オプションで、大/小文字が区別されます。

オプション

許容値: SunJCE、JsafeJCE(デフォルト値は未定義)値が指定されない場合、デフォルトのJDKプロバイダが使用されます。

oracle.security.jps.runtime.pd.client.localpolicy.CipherKeyLength

指定されたJCEプロバイダのCipherクラスで使用される鍵の長さを定義します。

オプション

許容値: 128、192、256(デフォルト値は128)

oracle.security.jps.runtime.pd.client.localpolicy.CipherModePadding

指定されたJCEプロバイダのCipherクラスで使用される暗号アルゴリズム名、モードおよびパディングのスキーマを定義します。大/小文字は区別されません。次の形式である必要があります。

アルゴリズム名/モード/パディング

オプション

許容値: デフォルト値はAES/CBC/PKCS5Paddingで、それ以外にAES/CBC/PKCS5PaddingまたはAES/GCM/NoPaddingなどがあります。

A.1.2.3 ポリシー配布のクライアント構成(制御プル・モード)

表A-4では、Oracle Entitlements ServerがJEEまたはJSEのいずれかの環境で実行され、制御プル・モードでデータを配布するよう構成されている場合の、ポリシー配布コンポーネントのクライアント構成のパラメータをまとめています。

表A-4 ポリシー配布のクライアント構成、制御プル・モード

パラメータ名

情報

コンソール名

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー配布モードを指定します。制御された配布は、ポリシー配布コンポーネントによって開始され、セキュリティ・モジュールが最後の配布以降に作成または変更されたポリシー・データを受信することを確認します。

必須

許容値: controlled-pull

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.sm_name

セキュリティ・モジュールの名前を定義します。

必須

許容値: セキュリティ・モジュールの名前

* SM名

oracle.security.jps.runtime.pd.client.localpolicy.work_folder

ローカル・キャッシュ・ファイルが格納されるディレクトリの名前を定義します。値が定義されない場合、jps-config.xmlがあるディレクトリに作業ディレクトリが作成されます。適切なセキュリティ・モジュールがJRFドメインに作成された場合、実際の作業フォルダとして使用される指定された作業フォルダまたはデフォルト作業フォルダの下にサーバー名を使用したサブディレクトリが作成されます。

オプション

許容値: ローカル・キャッシュ・ファイルが格納されるディレクトリの名前。このディレクトリは、読取りおよび書込み権限を持っている必要があります。

ローカル・ポリシー作業フォルダ

oracle.security.jps.runtime.pd.client.incrementalDistribution

配布が増分配布またはフラッシュ配布のどちらであるかを定義します。増分配布は、新規および変更されたデータを配布する場合に使用します。フラッシュ配布は、ポリシー・ストア内のすべてのポリシー・オブジェクトを完全に再配布するための準備として、ローカルに保存されたポリシーをクリーンアップするよう、ポリシー配布コンポーネントがセキュリティ・モジュールに通知する場合に使用します。

オプション

許容値:

- false (セキュリティ・モジュールのポリシー配布はフラッシュです。)

- true (デフォルト値。必要な変更ログがポリシー・ストアに保持されている場合、このセキュリティ・モジュールのポリシー配布は増分です。)

増分配布

oracle.security.jps.runtime.policyDistributionWaitTime

この値が定義され、ゼロではない場合、セキュリティ・モジュールが最初のポリシー配布が発生するのを待機する時間を指定します。この待機期間中は、最初のポリシー配布が完了するか、構成した期間が過ぎるまで、認可リクエストはブロックされます。

オプション

許容値: 秒単位の時間(デフォルト値は60)

配布待機時間(秒)

oracle.security.jps.pd.client.PollingTimerEnabled

ポリシー・ストアのポリシー更新の定期的な確認を有効化します。ポリシーの変更が予期されない場合、falseに設定して、環境に対するポーリングを無効化することができます。

オプション

許容値:

- false

- true (デフォルト値)

oracle.security.jps.pd.client.PollingTimerInterval

ポリシー配布コンポーネントがポリシー・データの変更を確認する時間間隔を定義します。

オプション

許容値: 秒単位の時間(デフォルト値は600)

oracle.security.jps.ldap.root.name

LDAPポリシー・ストアのディレクトリ情報ツリー(DIT)のトップ(ルート)エントリを定義します。

必須

許容値: LDAPポリシー・ストアのディレクトリ情報ツリー(DIT)のトップ(ルート)エントリ

* LDAPルート名

oracle.security.jps.farm.name

LDAPポリシー・ストア内のドメイン・ノードのRDN形式を定義します。

必須

許容値: ドメインの名前

* ファーム名

jdbc.url

データベースを指すURLを指定します。

必須 (Java Database Connectivity APIを使用してポリシー・ストアに接続する場合)

許容値: URL

JDBC URL

jdbc.driver

Java Database Connectivity APIを使用してApache Derbyデータベースに接続する場合のドライバの場所。

必須

許容値: ドライバ

* JDBCドライバ

datasource.jndi.name

JDBCデータ・ソース・インスタンスのJNDI名。インスタンスは、単一ソースまたは複数ソースのデータソースに対応しています。JEEアプリケーションでのみ有効です。データベース・ストアにのみ適用します。

必須

許容値: JNDIデータ・ソースの名前(jdbc/APMDBDSなど)。

* データソースJNDI名

security.principal

データベースへのアクセス権を持つユーザーの名前。

必須

許容値: データベース・ユーザー名

security.credential

データベースへのアクセス権を持つユーザーのパスワード。

オプション

許容値: データベース・ユーザーに関連付けられたクリア・テキストのパスワード。クリア・テキストでパスワードを格納するかわりにbootstrap.security.principal.mapを使用します。

bootstrap.security.principal.key

ポリシー・ストアにアクセスするためのパスワード資格証明のキー。資格証明は、資格証明ストア・フレームワーク(CSF)ストアに格納されます。

必須

許容値: CSF資格証明キー

ブートストラップ・セキュリティ・プリンシパル・キー

bootstrap.security.principal.map

ポリシー・ストアにアクセスするためのパスワード資格証明のマップ。資格証明は、CSFストアに格納されます。

必須

許容値: CSF資格証明マップの名前

ブートストラップ・セキュリティ・プリンシパル・マップ

oracle.security.jps.runtime.pd.client.localpolicy.JCEProviderName

使用するJCEプロバイダを定義します。オプションで、大/小文字が区別されます。

オプション

許容値: SunJCE、JsafeJCE(デフォルト値は未定義)値が指定されない場合、デフォルトのJDKプロバイダが使用されます。

oracle.security.jps.runtime.pd.client.localpolicy.CipherKeyLength

指定されたJCEプロバイダのCipherクラスで使用される鍵の長さを定義します。

オプション

許容値: 128、192、256(デフォルト値は128)

oracle.security.jps.runtime.pd.client.localpolicy.CipherModePadding

指定されたJCEプロバイダのCipherクラスで使用される暗号アルゴリズム名、モードおよびパディングのスキーマを定義します。大/小文字は区別されません。次の形式である必要があります。

アルゴリズム名/モード/パディング

オプション

許容値: デフォルト値はAES/CBC/PKCS5Paddingで、それ以外にAES/CBC/PKCS5PaddingまたはAES/GCM/NoPaddingなどがあります。

A.1.2.4 ポリシー配布のクライアント構成(非制御モード)

表A-5では、Oracle Entitlements ServerがJEEまたはJSEのいずれかの環境で実行され、非制御モードでデータを配布するよう構成されている場合の、ポリシー配布コンポーネントのクライアント構成のパラメータをまとめています。

表A-5 ポリシー配布のクライアント構成、非制御モード

パラメータ名

情報

コンソール名

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー配布モードを指定します。制御されない配布は、セキュリティ・モジュールがポリシー・ストアから(または2つの間の中間として機能するコンポーネントから)ポリシー・データを定期的に取得する場合です。

オプション

許容値: non-controlled (デフォルト値)

* ポリシー配布モード

A.1.2.5 ポリシー配布のクライアント構成(混合モード)

表A-4では、PDPがJEEまたはJSEのいずれかの環境で実行され、混合モードでデータを配布するよう構成されている場合の、ポリシー配布コンポーネントのクライアント構成のパラメータをまとめています。混合モードでは、制御プル・モードと非制御モードを組み合せた配布が行われます。

表A-6 ポリシー配布のクライアント構成、混合モード

パラメータ名

情報

コンソール名

oracle.security.jps.runtime.pd.client.policyDistributionMode

ポリシー配布モードを指定します。制御された配布は、ポリシー配布コンポーネントによって開始され、セキュリティ・モジュールが最後の配布以降に作成または変更されたポリシー・データを受信することを確認します。

必須

許容値: mixed

* ポリシー配布モード

oracle.security.jps.runtime.pd.client.sm_name

セキュリティ・モジュールの名前を定義します。

必須

許容値: セキュリティ・モジュールの名前

* SM名

oracle.security.jps.runtime.pd.client.localpolicy.work_folder

ローカル・キャッシュ・ファイルが格納されるディレクトリの名前を定義します。値が定義されない場合、jps-config.xmlがあるディレクトリに作業ディレクトリが作成されます。適切なセキュリティ・モジュールがJRFドメインに作成された場合、実際の作業フォルダとして使用される指定された作業フォルダまたはデフォルト作業フォルダの下にサーバー名を使用したサブディレクトリが作成されます。

オプション

許容値: ローカル・キャッシュ・ファイルが格納されるディレクトリの名前。このディレクトリは、読取りおよび書込み権限を持っている必要があります。

ローカル・ポリシー作業フォルダ

oracle.security.jps.runtime.pd.client.incrementalDistribution

配布が増分配布またはフラッシュ配布のどちらであるかを定義します。増分配布は、新規および変更されたデータを配布する場合に使用します。フラッシュ配布は、ポリシー・ストア内のすべてのポリシー・オブジェクトを完全に再配布するための準備として、ローカルに保存されたポリシーをクリーンアップするよう、ポリシー配布コンポーネントがセキュリティ・モジュールに通知する場合に使用します。

オプション

許容値:

- false (セキュリティ・モジュールのポリシー配布はフラッシュです。)

- true (デフォルト値。必要な変更ログがポリシー・ストアに保持されている場合、このセキュリティ・モジュールのポリシー配布は増分です。)

増分配布

oracle.security.jps.runtime.policyDistributionWaitTime

この値が定義され、ゼロではない場合、セキュリティ・モジュールが最初のポリシー配布が発生するのを待機する時間を指定します。この待機期間中は、最初のポリシー配布が完了するか、構成した期間が過ぎるまで、認可リクエストはブロックされます。

オプション

許容値: 秒単位の時間(デフォルト値は60)

配布待機時間(秒)

oracle.security.jps.pd.client.PollingTimerEnabled

ポリシー・ストアのポリシー更新の定期的な確認を有効化します。ポリシーの変更が予期されない場合、falseに設定して、環境に対するポーリングを無効化することができます。

オプション

許容値:

- false

- true (デフォルト値)

ポーリング・タイマー

oracle.security.jps.pd.client.PollingTimerInterval

ポリシー配布コンポーネントがポリシー・データの変更を確認する時間間隔を定義します。

オプション

許容値: 秒単位の時間(デフォルト値は600)

ポーリング・タイマー間隔

oracle.security.jps.runtime.pd.client.localpolicy.JCEProviderName

使用するJCEプロバイダを定義します。オプションで、大/小文字が区別されます。

オプション

許容値: SunJCE、JsafeJCE(デフォルト値は未定義)値が指定されない場合、デフォルトのJDKプロバイダが使用されます。

なし

oracle.security.jps.runtime.pd.client.localpolicy.CipherKeyLength

指定されたJCEプロバイダのCipherクラスで使用される鍵の長さを定義します。

オプション

許容値: 128、192、256(デフォルト値は128)

なし

oracle.security.jps.runtime.pd.client.localpolicy.CipherModePadding

指定されたJCEプロバイダのCipherクラスで使用される暗号アルゴリズム名、モードおよびパディングのスキーマを定義します。大/小文字は区別されません。次の形式である必要があります。

アルゴリズム名/モード/パディング

オプション

許容値: デフォルト値はAES/CBC/PKCS5Paddingで、それ以外にAES/CBC/PKCS5PaddingまたはAES/GCM/NoPaddingなどがあります。

なし

混合モードでは、セキュリティ・モードではなく、ポリシー・ストアの次の9個のプロパティを構成する必要があります。A.4項「ポリシー・ストア・サービス構成」を参照してください。

oracle.security.jps.ldap.root.name

LDAPポリシー・ストアのディレクトリ情報ツリー(DIT)のトップ(ルート)エントリを定義します。

必須

許容値: LDAPポリシー・ストアのディレクトリ情報ツリー(DIT)のトップ(ルート)エントリ

* LDAPルート名

oracle.security.jps.farm.name

LDAPポリシー・ストア内のドメイン・ノードのRDN形式を定義します。

必須

許容値: ドメインの名前

* ファーム名

jdbc.url

データベースを指すURLを指定します。

必須 (Java Database Connectivity APIを使用してポリシー・ストアに接続する場合)

許容値: URL

JDBC URL

jdbc.driver

Java Database Connectivity APIを使用してApache Derbyデータベースに接続する場合のドライバの場所。

必須

許容値: ドライバ

* JDBCドライバ

datasource.jndi.name

JDBCデータ・ソース・インスタンスのJNDI名。インスタンスは、単一ソースまたは複数ソースのデータソースに対応しています。JEEアプリケーションでのみ有効です。データベース・ストアにのみ適用します。

必須

許容値: JNDIデータ・ソースの名前(jdbc/APMDBDSなど)。

* データソースJNDI名

security.principal

データベースへのアクセス権を持つユーザーの名前。

必須

許容値: データベース・ユーザー名

ユーザー名

security.credential

データベースへのアクセス権を持つユーザーのパスワード。

必須

許容値: データベース・ユーザーに関連付けられたパスワード。

パスワード

bootstrap.security.principal.key

ポリシー・ストアにアクセスするためのパスワード資格証明のキー。資格証明は、資格証明ストア・フレームワーク(CSF)ストアに格納されます。

必須

許容値: CSF資格証明キー

ブートストラップ・セキュリティ・プリンシパル・キー

bootstrap.security.principal.map

ポリシー・ストアにアクセスするためのパスワード資格証明のマップ。資格証明は、CSFストアに格納されます。

必須

許容値: CSF資格証明マップの名前

ブートストラップ・セキュリティ・プリンシパル・マップ

A.2 セキュリティ・モジュール構成

この項では、セキュリティ・モジュールの様々なタイプおよびそのプロキシ・クライアントの構成を説明します。

- A.2.1項「Javaセキュリティ・モジュール」

- A.2.2項「Webサービス・セキュリティ・モジュール」

- A.2.3項「WebLogic Server上のWebサービス・セキュリティ・モジュール」

- A.2.4項「RMIセキュリティ・モジュール」

- A.2.5項「WebLogic Serverセキュリティ・モジュール」

- A.2.6項「WebLogic Serverセキュリティ・モジュールの検出モード」

A.2.1 Javaセキュリティ・モジュール

表A-7では、JSEまたはJEEコンテナのいずれかに埋め込まれているJavaセキュリティ・モジュールを構成するパラメータをまとめています。

表A-7 Javaセキュリティ・モジュールの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.policystore.rolemember.cache.type

ロール・メンバーのキャッシュ・タイプを定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- SOFT(メモリーが不足している場合、このタイプのキャッシュのクリーンアップはガベージ・コレクタに依存します)

- WEAK (このタイプのキャッシュの動作は、タイプSOFTのキャッシュとよく似ていますが、ガベージ・コレクタによってより頻繁にクリーンアップされます。)

- STATIC (デフォルト値。キャッシュ・オブジェクトは静的にキャッシュされ、FIFOなど、適用されたキャッシュ戦略に応じてのみ明示的にクリーンアップされます。このタイプのキャッシュは、ガベージ・コレクタによってクリーンアップされません。)

ロールメンバー・キャッシュ・タイプ

oracle.security.jps.policystore.rolemember.cache.strategy

ロール・メンバーのキャッシュで使用する方針のタイプを定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- NONE (リフレッシュまたは再起動が実行されるまで、キャッシュにあるすべてのエントリは増大し続けます。キャッシュのサイズを制御することはできません。使用はお薦めできませんが、ポリシーのフットプリントがきわめて小さい場合には効率的です。)

- FIFO (デフォルト値。キャッシュでは、先入れ先出し方針が実装されます。)

ロールメンバー・キャッシュ方式

oracle.security.jps.policystore.rolemember.cache.size

ロール・メンバーのキャッシュに維持するロール数を定義します。J2EEアプリケーションおよびJ2SEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: 数値(デフォルト値は1000)

ロールメンバー・キャッシュ・サイズ

oracle.security.jps.policystore.rolemember.cache.warmup.enable

アプリケーション・ロールのメンバーシップ・キャッシュの作成方法を制御します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- true (キャッシュはサーバーの起動時に作成されます。ユーザーおよびグループの数がアプリケーション・ロールの数を大きく上回っている場合に使用します。)

- false (デフォルト値。キャッシュは必要に応じて(遅延ロードの場合などに)作成されます。アプリケーション・ロールの数が非常に多い場合に使用します。)

ロールメンバー・キャッシュ・ウォームアップ有効

oracle.security.jps.policystore.policy.lazy.load.enable

ポリシーの遅延ロードを有効または無効にします。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- false

- true (デフォルト値)

ポリシー遅延ロード有効

oracle.security.jps.policystore.policy.cache.strategy

権限キャッシュで使用する方針のタイプを定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- NONE (リフレッシュまたは再起動が実行されるまで、キャッシュにあるすべてのエントリは増大し続けます。キャッシュのサイズを制御することはできません。使用はお薦めできませんが、ポリシーのフットプリントがきわめて小さい場合には効率的です。)

- PERMISSION_FIFO (デフォルト値。キャッシュでは、先入れ先出し方針が実装されます。)

ポリシー・キャッシュ方式

oracle.security.jps.policystore.policy.cache.size

権限キャッシュに維持する権限の数を定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: 数値(デフォルト値は1000)

ポリシー・キャッシュ・サイズ

oracle.security.jps.policystore.cache.updateable

ポリシー・キャッシュがポリシー・データでの管理操作用に増分更新されるかどうかを定義します。

オプション

許容値

- false

- true (デフォルト値)

ポリシー・キャッシュ更新可能

oracle.security.jps.policystore.refresh.enable

ポリシー・ストアのリフレッシュを有効または無効にします。このプロパティを設定した場合、oracle.security.jps.ldap.cache.enableは設定できません。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値:

- false

- true (デフォルト値)

リフレッシュ有効

oracle.security.jps.policystore.refresh.purge.timeout

ポリシー・ストア・キャッシュを消去するまでの時間(ミリ秒)を定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: ミリ秒単位の時間。デフォルト値は43200000 (12時間)です。

リフレッシュ・パージ・タイムアウト(ミリ秒)

oracle.security.jps.ldap.policystore.refresh.interval

ポリシー・ストアが変更確認のためにポーリングされる時間間隔を定義します。J2EEおよびJ2SEのアプリケーションで有効。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: ミリ秒単位の時間。デフォルト値は600000 (10分)です。

リフレッシュ・パージ間隔(ミリ秒)

oracle.security.jps.pdp.missingAppPolicyQueryTTL

存在しないアプリケーション(ApplicationPolicy)オブジェクトの頻繁な問合せを回避する時間間隔を定義します。

オプション

許容値: ミリ秒単位の存続時間(デフォルト値は60000)

アプリケーション・ポリシー問合せTTLなし

oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled

認可キャッシュを有効にするかどうかを指定します。J2EEおよびJ2SEのアプリケーションで有効。XMLストア、LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- false

- true (デフォルト値)

デシジョン・キャッシュ有効

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionCapacity

維持する認可セッションとロール・マッピング・セッションの最大数を定義します。最大数に達すると、古いセッションが削除され、必要になったときに再確立されます。J2EEおよびJ2SEのアプリケーションで有効。XMLストア、LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: 数値(デフォルト値は500)

デシジョン・キャッシュ追出し容量

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage

削除容量に達したときに削除するセッションの比率を定義します。J2EEおよびJ2SEのアプリケーションで有効。XMLストア、LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: 数値(デフォルト値は10)

デシジョン・キャッシュ追出しパーセンテージ

oracle.security.jps.pdp.AuthorizationDecisionCacheTTL

セッション・データをキャッシュする秒数を定義します。J2EEおよびJ2SEのアプリケーションで有効。XMLストア、LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値: 秒単位の時間(デフォルト値は60)

デシジョン・キャッシュTTL(秒)

oracle.security.jps.pdp.anonymousrole.enable

ポリシー・マッチングのために匿名ロールを匿名サブジェクトに追加する必要があるかどうかを指定します。

オプション

許容値

- false

- true (デフォルト値)

匿名ロール有効

oracle.security.jps.pdp.authenticatedrole.enable

ポリシー・マッチングのために認証ロールを認証サブジェクトに追加する必要があるかどうかを指定します。

オプション

許容値

- false

- true (デフォルト値)

認証済ロール有効

oracle.security.jps.pdp.ComputeAppRolesOnceOnBulkAtz

単一バルクの認可コール内でのアプリケーション・ロールの計算回数を1回のみにするかどうかを指定します。たとえば、クライアントがcheckBulkAuthorization()メソッドをコールし、10個のリソースを渡した場合、値がtrueの場合はロールは全体で1回計算され、パラメータがfalseの場合は個別のリソースごとに1回ずつ(合計10回)計算されます。

オプション

許容値

- false

- true (デフォルト値)

oracle.security.jps.pdp.AuthorizationPerUserDecisionCacheSize

サブジェクトごとにキャッシュされる認可決定の最大数を指定します。第2レベルのデシジョン・キャッシュ・サイズがこのサイズに到達すると、キャッシュから決定が削除されます。

オプション

許容値: 決定の数(デフォルト値は1000)

A.2.2 Webサービス・セキュリティ・モジュール

表A-8では、JSEまたはJEEコンテナのいずれかに埋め込まれているWebサービス・セキュリティ・モジュールを構成するパラメータをまとめています。

表A-8 Webサービス・セキュリティ・モジュールの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.pdp.wssm.WSServiceRegistryPortNumber

Webサービス・セキュリティ・モジュールがリスニングするポートを定義します。

必須

許容値: ポート番号

oracle.security.jps.pdp.wssm.WSServiceRegistryHost

Webサービス・セキュリティ・モジュールが実行中のサーバーの名前を定義します。

オプション

許容値: サーバー名(デフォルト値はlocalhost)

oracle.security.jps.pdp.wssm.Protocol

ポリシー配布コンポーネントのクライアントとサーバー間で使用されるトランスポート・プロトコルを定義します。

オプション

許容値

- https

- http (デフォルト値)

oracle.security.jps.pdp.sm.IdentityCacheEnabled

アイデンティティ・キャッシュを使用するかどうかを指定します。設定されない場合、デフォルトでアイデンティティ・キャッシュは使用されます。

オプション

許容値: true/false

oracle.security.jps.pdp.sm.IdentityMaxCacheSize

情報をキャッシュするユーザーの最大数を指定します。最大数に達すると、古いレコードが削除され、必要になったときに再確立されます。

オプション

許容値: 数値

oracle.security.jps.pdp.sm.IdentityCacheEvictionPercentage

キャッシュが最大サイズに達したときに削除する必要があるアイデンティティの比率を指定します。

オプション

許容値: 比率を示す数値

oracle.security.jps.pdp.sm.IdentityCachedEntryTTL

アイデンティティ・キャッシュ・レコードの存続時間を指定します。

オプション

許容値: 秒単位の時間

oracle.security.jps.pdp.wssm.responseContext

複数のAppContextレスポンスのデータを単一のAppContextレスポンスにマージするかどうかを指定します。

オプション

許容値

- Merged

- Unmerged (デフォルト値)

oracle.security.jps.pdp.wssm.ssl.identityKeyStoreFileName

Webサービス・セキュリティ・モジュールのクライアント証明書が格納されるアイデンティティ・キー・ストア・ファイルの名前を定義します。リモート・クライアントとWebサービス・セキュリティ・モジュール間のSSL通信に使用されます。

オプション

許容値: アイデンティティ・キー・ストア・ファイルの名前

oracle.security.jps.pdp.wssm.ssl.trustKeyStoreFileName

CA証明書が格納される信頼キー・ストア・ファイルの名前を定義します。リモート・クライアントとWebサービス・セキュリティ・モジュール間のSSL通信に使用されます。

オプション

許容値: 信頼キー・ストア・ファイルの名前

oracle.security.jps.pdp.wssm.ssl.identityKeyStoreKeyAlias

Webサービス・セキュリティ・モジュールとリモート・クライアント間のSSL通信に使用される、Webサービス・セキュリティ・モジュールのクライアント証明書を識別するために使用されるアイデンティティ・キー別名を指定します。許容値: アイデンティティ・キー別名

オプション

許容値: アイデンティティ・キー別名

oracle.security.jps.pdp.wssm.WSLoggingSoapHandlerEnabled

Webサービス・セキュリティ・モジュールのEnvelopLoggingSOAPHandlerであるWebサービスSOAPメッセージ・ハンドラのロギングを有効化します。

オプション

許容値

- true

- false(デフォルト値)

A.2.3 WebLogic Server上のWebサービス・セキュリティ・モジュール

表A-9では、WebLogic Server上のWebサービス・セキュリティ・モジュールを構成するパラメータをまとめています。

表A-9 WebLogic上のWebサービス・セキュリティ・モジュールの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.pdp.wssm.WSServiceRegistryPortNumber

Webサービス・セキュリティ・モジュールがリスニングするポートを定義します。

必須

許容値: ポート番号

oracle.security.jps.pdp.wssm.WSServiceRegistryHost

Webサービス・セキュリティ・モジュールが実行中のサーバーの名前を定義します。

オプション

許容値: サーバー名(デフォルト値はlocalhost)

oracle.security.jps.pdp.wssm.Protocol

ポリシー配布コンポーネントのクライアントとサーバー間で使用されるトランスポート・プロトコルを定義します。

オプション

許容値

- https

- http (デフォルト値)

oracle.security.jps.pdp.wssm.WSServiceRegistryContextName

キャッシュが使用されているWebLogic Server上にデプロイされているWebサービスのコンテキスト名を指定します。設定されない場合、デフォルトでアイデンティティ・キャッシュは使用されます。

必須

許容値: Ssmws

oracle.security.jps.pdp.sm.IdentityCacheEnabled

アイデンティティ・キャッシュが有効化されているかどうかを指定します。デフォルトで有効化されます。

オプション

許容値: true(デフォルト)/false

oracle.security.jps.pdp.sm.IdentityMaxCacheSize

アイデンティティ・キャッシュの最大サイズを指定します。

オプション

許容値: サイズを示す数値(デフォルト値は20000)

oracle.security.jps.pdp.sm.IdentityCacheEvictionPercentage

アイデンティティ・キャッシュが最大サイズに達したときに削除するアイデンティティの比率を指定します。

オプション

許容値: 20%

oracle.security.jps.pdp.sm.IdentityCachedEntryTTL

アイデンティティ・キャッシュ内のアイデンティティ・レコードの存続時間(TTL)を秒数で指定します。

オプション

許容値: 3600秒(デフォルト)

oracle.security.jps.pdp.wssm.responseContext

返されるAppContextが、単一レスポンスまたはすべてのAppContextレスポンスのデータをマージしたセットのどちらであるかを指定します。

オプション

許容値: Merged/Unmerged(デフォルト)

oracle.security.jps.pdp.wssm.WSLoggingSoapHandlerEnabled

Webサービス・セキュリティ・モジュールのEnvelopLoggingSOAPHandlerであるWebサービスSOAPメッセージ・ハンドラのロギングを有効化します。

オプション

許容値

- true

- false(デフォルト値)

A.2.4 RMIセキュリティ・モジュール

表A-10では、JSEまたはJEEコンテナのいずれかに埋め込まれているRMIセキュリティ・モジュールを構成するパラメータをまとめています。

注意:

この構成は、スタンドアロン・デプロイメント用です。

表A-10 RMIセキュリティ・モジュールの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.pdp.rmism.RMIRegistryPortNumber

RMIセキュリティ・モジュールがRMIサーバーをリスニングするポートを定義します。

必須

許容値: ポート番号

oracle.security.jps.pdp.rmism.UseSSL

RMIセキュリティ・モジュールとRMIサーバー間のセキュアな通信にSSLプロトコルを使用するかどうかを定義します。

オプション

許容値

- true

- false (デフォルト)

oracle.security.jps.pdp.sm.IdentityCacheEnabled

アイデンティティ・キャッシュを使用するかどうかを指定します。設定されない場合、デフォルトでアイデンティティ・キャッシュは使用されます。

オプション

許容値: true/false

oracle.security.jps.pdp.sm.IdentityMaxCacheSize

情報をキャッシュするユーザーの最大数を指定します。最大数に達すると、古いレコードが削除され、必要になったときに再確立されます。

オプション

許容値: 数値

oracle.security.jps.pdp.sm.IdentityCacheEvictionPercentage

キャッシュが最大サイズに達したときに削除する必要があるアイデンティティの比率を指定します。

オプション

許容値: 比率を表す数値

oracle.security.jps.pdp.sm.IdentityCachedEntryTTL

アイデンティティ・キャッシュ・レコードの存続時間を指定します。

オプション

許容値: 秒単位の時間

A.2.5 WebLogic Serverセキュリティ・モジュール

表A-11では、JEEコンテナに埋め込まれているWebLogic Server (WLS)セキュリティ・モジュールを構成するパラメータをまとめています。これらのパラメータは、WLSセキュリティ・モジュールがPEPとして使用するよう構成される場合のみ、使用されます。

- コンテキスト情報は、1.3.2項「ポリシー決定ポイントとポリシー実行ポイント」を参照してください。

- WebLogic Serverセキュリティ・モジュールの有効化については、9.4項「WebLogic Serverリソースの保護」を参照してください。

表A-11 WebLogic Serverセキュリティ・モジュールの構成パラメータ

パラメータ名

情報

コンソール名

UndefinedApplicationEffect

アプリケーションがポリシー・ストアに定義されていない場合、プロバイダが返す必要がある影響(GRANT、DENY)を指定します。

オプション

許容値

- permit(デフォルト)

- abstain

- deny

WebLogic Server管理コンソールで設定します。値はWebLogicドメインのconfig.xmlに保存されます。

NoApplicablePolicyEffect

適用可能なポリシーが見つからない場合、プロバイダが返す必要がある影響を指定します。

オプション

許容値

- deny(デフォルト値はクローズされたシステムを表します)

- abstain

- permit (オープンなシステムを表します。)

WebLogic Server管理コンソールで設定します。値はWebLogicドメインのconfig.xmlに保存されます。

A.2.6 WebLogic Serverセキュリティ・モジュールの検出モード

表A-12では、検出モードを有効化するためのパラメータをまとめています。詳細は、9.4.2項「WebLogic Serverリソースの検出」を参照してください。

表A-12 WebLogic Serverの検出モードのパラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.discoveryMode

デフォルトでは、検出モードはオフです。

オプション

許容値

- true

- false

jps-config.xmlのみ

oracle.security.jps.discoveredPolicyDir

検出結果が定義されているディレクトリの絶対パスを指定します。

オプション(検出モードが有効化されている場合は必須)

許容値: ディレクトリの絶対パス

jps-config.xmlのみ

oracle.security.jps.discoveredResourceIsHierarchical

リソースが階層型かどうかを指定します。

オプション

許容値

- true

- false

jps-config.xmlのみ

oracle.security.jps.discoveredResourceNameDelimiter

リソース名を区切るデリミタを指定します。

オプション(リソースが階層型として定義されている場合は必須)

許容値: 任意の有効なリソース名デリミタ(WLS SMとOSB SMで使用する場合は値は「/」である必要があります)

jps-config.xmlのみ

A.3 PDPプロキシ・クライアントの構成

この項では、RMIとWebサービスのセキュリティ・モジュールで使用可能なPDPプロキシ・クライアントの構成について説明します。

- A.3.1項「Webサービス・セキュリティ・モジュールのPDPプロキシ・クライアント」

- A.3.2項「RMIセキュリティ・モジュールのPDPプロキシ・クライアント」

A.3.1 Webサービス・セキュリティ・モジュールのPDPプロキシ・クライアント

表A-13では、Webサービス・セキュリティ・モジュールのPDPプロキシ・クライアントを構成するパラメータをまとめています。

表A-13 Webサービス・プロキシ・クライアントの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.pdp.PDPTransport

Oracle Entitlements Serverと通信するためにマルチ・プロトコル・セキュリティ・モジュールによって使用される、基礎となるプロトコルを指定します。

必須

許容値: デフォルト値はありません。Webサービス・セキュリティ・モジュールでは、常にXACMLが使用可能です。

- WS

- RMI

oracle.security.jps.pdp.proxy.PDPAddress

Webサービス・セキュリティ・モジュールのホストおよびポート番号を指定します。たとえば、http://dadvml0134:9015などです。

オプション

許容値: URIのカンマ区切りリスト(複数のアドレスが指定されている場合、最初はプライマリ、残りはバックアップとみなされます。)

oracle.security.jps.pdp.proxy.RequestTimeoutMilliSecs

リモートPDP (RMIまたはWebサービスのセキュリティ・モジュール)が応答しない場合、認可リクエストがタイムアウトになる時間間隔を定義します。

オプション

許容値: ミリ秒単位の時間(デフォルト値は10000)

oracle.security.jps.pdp.proxy.FailureRetryCount

代替フェイルオーバー・サーバーを試行する前に試行する回数を指定します。

オプション

許容値: 数値(デフォルト値は3)

oracle.security.jps.pdp.proxy.FailbackTimeoutMilliSecs

失敗したプライマリ・サーバーがフェイルオーバーのために再試行するまでの時間間隔を指定します。

オプション

許容値: ミリ秒単位の時間(デフォルト値は180000)

oracle.security.jps.pdp.proxy.SynchronizationIntervalMilliSecs

状態を同期するために、PDPプロキシがPDPサーバーをポーリングする頻度を定義します。たとえば、この間隔は、認可キャッシュをフラッシュする必要があるかどうかを定期的にチェックするために使用されます。

オプション

許容値: ミリ秒単位の時間(デフォルト値は60)

oracle.security.jps.pdp.proxy.wssm.ssl.identityKeyStoreFileName

Webサービス・セキュリティ・モジュールのクライアント証明書が格納されるアイデンティティ・キー・ストア・ファイルの名前を定義します。クライアントとWebサービス・セキュリティ・モジュール間のSSL通信に使用されます。

オプション

許容値: アイデンティティ・キー・ストア・ファイルの名前

oracle.security.jps.pdp.proxy.wssm.ssl.trustKeyStoreFileName

Webサービス・セキュリティ・モジュールのCA証明書が格納される信頼キー・ストア・ファイルの名前を定義します。クライアントとWebサービス・セキュリティ・モジュール間のSSL通信に使用されます。

オプション

許容値: 信頼キー・ストア・ファイルの名前

oracle.security.jps.pdp.proxy.wssm.ssl.identityKeyStoreKeyAlias

Webサービス・クライアント証明書の別名を指定します。クライアントとWebサービス・セキュリティ・モジュール間のSSL通信に使用されます。

オプション

許容値: アイデンティティ・キー・ストアの別名(アイデンティティ・キー・ストアに別名が1つのみ存在する場合、この値を指定する必要はありません。)

oracle.security.jps.pdp.proxy.wssm.protocol

ポリシー配布コンポーネントのクライアントとサーバー間で使用されるトランスポート・プロトコルを定義します。

オプション

許容値

- https

- http (デフォルト値)

A.3.2 RMIセキュリティ・モジュールのPDPプロキシ・クライアント

表A-14では、RMIセキュリティ・モジュールのPDPプロキシ・クライアントを構成するパラメータをまとめています。

表A-14 PDP RMIプロキシ・クライアントの構成パラメータ

パラメータ名

情報

コンソール名

oracle.security.jps.pdp.PDPTransport

Oracle Entitlements Serverと通信するためにマルチ・プロトコル・セキュリティ・モジュールによって使用される、基礎となるプロトコルを指定します。

必須

許容値: デフォルト値はありません。RMIセキュリティ・モジュールでは、常にXACMLが使用可能です。

- WS

- RMI

oracle.security.jps.pdp.proxy.PDPAddress

RMIセキュリティ・モジュールのホストおよびポート番号を指定します。たとえば、rmi://localhost:9400などです。

必須

許容値: URIのカンマ区切りリスト(複数のアドレスが指定されている場合、最初はプライマリ、残りはバックアップとみなされます。)

oracle.security.jps.pdp.proxy.RequestTimeoutMilliSecs

リモートPDP (RMIまたはWebサービスのセキュリティ・モジュール)が応答しない場合、認可リクエストがタイムアウトになる時間間隔を定義します。

オプション

許容値: ミリ秒単位の時間(デフォルト値は10000)

oracle.security.jps.pdp.proxy.FailureRetryCount

代替フェイルオーバー・サーバーを試行する前に試行する回数を指定します。

オプション

許容値: 数値(デフォルト値は3)

oracle.security.jps.pdp.proxy.FailbackTimeoutMilliSecs

失敗したプライマリ・サーバーがフェイルオーバーのために再試行するまでの時間間隔を指定します。

オプション

許容値: ミリ秒単位の時間(デフォルト値は180000)

oracle.security.jps.pdp.proxy.SynchronizationIntervalMilliSecs

状態を同期するために、PDPプロキシがPDPサーバーをポーリングする頻度を定義します。たとえば、この間隔は、認可キャッシュをフラッシュする必要があるかどうかを定期的にチェックするために使用されます。

オプション

許容値: ミリ秒単位の時間(デフォルト値は60)

A.4 ポリシー・ストア・サービス構成

表A-15では、ポリシー・ストア・サービスの構成パラメータをまとめています。

表A-15 ポリシー・ストア・サービスの構成パラメータ

パラメータ名

情報

コンソール名

ldap.url

LDAPポリシー・ストアのURLを定義します。JEEアプリケーションおよびJSEアプリケーションで有効で、LDAPストアにのみ適用します。

必須

許容値: LDAPポリシー・ストアのURIで、形式はldap://host:portです。

max.search.filter.length

検索フィルタの最大長を定義します。

必須

許容値: 検索フィルタの最大長を定義する整数(1024など)

oracle.security.jps.ldap.root.name

LDAPポリシー・ストア内のルート・ノードのRDN形式を定義します。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

必須

許容値: jpsコンテキストのルート名(cn=jpsrootなど)。

oracle.security.jps.farm.name

LDAPポリシー・ストア内のルート・ノードのRDN形式を定義します。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

必須

許容値: ドメインのファーム名(cn=base_domainなど)。

oracle.security.jps.policystore.resourcetypeenforcementmode

次のいずれかのチェックに合格しなかった場合に、例外のスローを制御します。

- 2つのリソース・タイプが同じパーミッション・クラスの場合、そのパーミッションはResourcePermissionまたは拡張AbstractTypedPermissionでなければならず、この最後のリソース・タイプが作成不可能であることの確認。

- すべてのパーミッションにリソース・タイプが定義されており、リソース・マッチャ・パーミッション・クラスと付与するパーミッションが一致することの確認。

JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

オプション

許容値

- strict (前述のいずれかのチェックで失敗すると、例外がスローされ、操作が中止されます。)

- lenient (デフォルト値。前述のいずれかのチェックで失敗しても、例外はスローされず、操作は中断せずに続行され、検出されたすべての矛盾が記録されます。)

bootstrap.security.principal.key

CSFストアに格納されている、LDAPポリシー・ストアにアクセスするためのパスワード資格証明の鍵を定義します。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

必須

許容値: 資格証明のキー名(oes_sm_keyなど)。出荷時の値はbootstrapです。

bootstrap.security.principal.map

CSFストアに格納されている、LDAPポリシー・ストアにアクセスするためのパスワード資格証明のマップを定義します。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。

必須

許容値: 資格証明のマップ名(oes_sm_mapなど)。デフォルト値はBOOTSTRAP_JPSです。

jdbc.driver

JDBCドライバの名前を定義します。

必須

許容値: JDBCドライバの名前。

jdbc.url

JDBCドライバ接続URLを定義します。

必須

許容値: JDBCドライバの接続URL。

B 属性リトリーバの手動構成

1.3項「Oracle Entitlements Serverのアーキテクチャの概要」で説明しているように、ポリシー情報ポイント(PIP)は、属性値のソースとして機能するシステム・エンティティです。Oracle Entitlements Serverは、1つ以上のこれらの情報ストアから属性値を取得するために、属性リトリーバ・プラグインに依存しています。事前定義済属性リトリーバは、Oracle Entitlements Serverに同梱されています。この章では、これらの事前定義済属性リトリーバおよび関連する構成要件について説明します。この章には次の項目があります。

- B.1項「事前定義済属性リトリーバの理解」

- B.2項「事前定義済属性リトリーバの構成」

- B.3項「jps-config.xmlの変更」

- B.4項「PIP接続資格証明の設定」

- B.5項「データベース・パスワードの更新」

注意:

詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』の属性リトリーバでの作業に関する項を参照してください。

B.1 事前定義済属性リトリーバについて

Oracle Entitlements Serverには事前定義済属性リトリーバが含まれており、これは、Lightweight Directory Access Protocol (LDAP)データ・ストアおよびリレーショナル・データベース管理システム(RDBMS)に接続し、属性値を取得するのに使用されます。これらの事前定義済属性リトリーバは、追加のプログラミングを行わずに、システムに定義された1つ以上の属性を処理できます。これには、キャッシング機能およびフェイルオーバーも含まれています。

- メモリー内キャッシュ・メカニズムは、Oracle Entitlements Serverと外部リポジトリ間の通信を減らすことでパフォーマンスを向上させるために使用されます。キャッシュは最大1000エントリを保持し、個々の属性に対して有効化できます。キャッシュ・サイズは構成できません。制限に達すると、キャッシュ項目はランダムに削除されます。例B-2は、cachedプロパティとttlプロパティを持つ個々の属性の定義を示します。

- リポジトリ・フェイルオーバーも構成できます。属性への呼出しを受信すると、Oracle Entitlements Serverは、プライマリ・リポジトリがアクティブであるかどうかを確認します。アクティブな場合、値が取得されます。プライマリ・リポジトリがアクティブではない場合、すでに失敗しており、バックアップ・リポジトリがアクティブになります。後者の場合、Oracle Entitlements Serverは、(構成に基づいて)アクティブ・リポジトリへのスイッチ・バックのタイミングであるかどうかを確認します。スイッチ・バックのタイミングである場合、切替えが行われ、プライマリ・リポジトリから値が取得されます。構成された時間がまだ経過していない場合、アクティブなバックアップ・リポジトリから値が取得されます。

注意:

プライマリ・リポジトリから値を取得中にエラーが発生した場合、Oracle Entitlements Serverは、アクティブなバックアップ・リポジトリが見つかるまで、バックアップ・リポジトリを1つずつ検索します。

構成情報については、B.2.3項「事前定義済属性リトリーバの個々の属性の構成」を参照してください。

B.2 事前定義済属性リトリーバの構成

これらの属性リトリーバの構成情報は、jps-config.xml構成ファイルで定義されます。2つのタイプの情報(属性問合せ情報およびリポジトリ接続情報)を構成する必要があります。

- リポジトリ接続情報は、データ・ストアに接続するために使用され、場所、JDBCドライバとURLまたはLDAP URL(いずれか該当するもの)、およびユーザー/資格証明情報が含まれます。この接続情報は、特定のリトリーバ・インスタンスに関連します。例B-1に示すように、リポジトリ接続情報は、jps-config.xmlの<serviceInstances>セクションで定義されます。

例B-1 属性リトリーバに定義されるリポジトリ接続情報

<serviceInstance name="policystore.rdbms" provider="policy.rdbms">
<property name="jdbc.url"
value="jdbc:oracle:thin:@scl58116.domainexample.com:1521:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="oracle.security.jps.ldap.root.name" value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name"
value="cn=wcai_view_jing.atzsrg"/>
</serviceInstance>

B.2.1項「LDAPレスピレイトリ属性リトリーバ・パラメータの構成」、B.2.2項「データベース・リポジトリ属性リトリーバ・パラメータの構成」およびB.3項「jps-config.xmlの変更」では、レスピレイトリ接続構成に関する情報が記載されています。

注意:

インスタンスは、デフォルトの<jpsContexts>セクションにも定義する必要があります。例B-8「jpsContextでの事前定義済属性リトリーバの宣言」を参照してください。

- 属性問合せ情報は、特定の属性に関連し、名前、使用する事前定義済属性リトリーバの名前、取得のための検索問合せ(たとえば、ストアがリレーショナル・データベースの場合はSQL問合せ、ストアがディレクトリの場合はLDAP問合せ)、および属性キャッシング情報が含まれます。例B-2に示すように、属性問合せ情報は、jps-config.xmlの<propertySets>セクションで定義されます。

例B-2 属性リトリーバに定義される属性問合せ情報

<propertySet name="ootb.pip.attribute.age.based.on.myattr.ldap">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
<property name="name" value="oespipage_myattr"/>
<property name="query" value="(cn=%MyAttr%)"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

B.2.3項「事前定義済属性リトリーバの個々の属性の構成」およびB.3項「jps-config.xmlの変更」では、属性問合せ構成に関する情報が記載されています。

注意:

これらの事前定義済属性リトリーバは、Oracle Database 11gR1、Oracle Internet Directory 11gR1、およびOracle Virtual Directory 11gR1で構成できます。

次の各項では、各タイプの属性リトリーバの構成パラメータの詳細を説明します。前述したように、これらのパラメータは、$DOMAIN_HOME/config/fmwconfigディレクトリにある(Java EEコンテナが使用する)構成ファイルであるjps-config.xml内にあります。

- B.2.1項「LDAPレスピレイトリ属性リトリーバ・パラメータの構成」

- B.2.2項「データベース・リポジトリ属性リトリーバ・パラメータの構成」

- B.2.3項「事前定義済属性リトリーバの個々の属性の構成」

B.2.1 LDAPレスピレイトリ属性リトリーバ・パラメータの構成

表B-1では、LDAP属性リトリーバを使用する場合に定義する必要があるパラメータについて説明します。構成のサンプル・コードは、例B-5「事前定義済LDAP属性リトリーバの使用」および例B-10「LDAPフェイルオーバーの構成」を参照してください。

表B-1 LDAP属性リトリーバ・パラメータ

名前

使用方法

name

説明: 事前定義済属性リトリーバの名前

必須

許容値: 属性リトリーバのサービス・インスタンスを定義する文字列。

description

説明: 事前定義済属性リトリーバの説明

オプション

許容値: 文字列

type

説明: 事前定義済属性リトリーバのタイプ

必須

許容値: LDAP_PIP

failed.server.retry.interval

説明: プライマリ・リポジトリとの通信が失敗した後、この属性は、プライマリ・リポジトリにスイッチ・バックする前にバックアップ・リポジトリが使用されている時間間隔を定義します。

オプション

許容値: 秒数に等しい値を指定します。デフォルト値は15です。

bootstrap.security.principal.key

説明: LDAPポリシー・ストアにアクセスするためのパスワード資格証明のキーを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。B.4項「PIP接続資格証明の設定」を参照してください。

必須

許容値: 資格証明のキー名(oes_sm_keyなど)。

bootstrap.security.principal.map

説明: LDAPポリシー・ストアにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。B.4項「PIP接続資格証明の設定」を参照してください。

必須

許容値: 資格証明のマップ名(oes_sm_mapなど)。

ldap.url

説明: LDAPポリシー・ストアのURLを定義します。JEEアプリケーションおよびJSEアプリケーションで有効で、LDAPストアにのみ適用します。

必須

許容値: LDAPポリシー・ストアのURIで、形式はldap://host:portです。

search.base

説明: LDAP検索ベース。

必須: LDAP用のみ。

許容値: 検索ベース・オブジェクトのDN。

B.2.2 データベース・リポジトリ属性リトリーバ・パラメータの構成

表B-2では、RDBMS属性リトリーバを使用する場合に定義する必要があるパラメータについて説明します。構成のサンプル・コードは、例B-6「JDBCでの事前定義済RDBMS属性リトリーバの使用」および例B-7「SQLでの事前定義済RDBMS属性リトリーバの使用」を参照してください。

表B-2 RDBMS属性リトリーバ・パラメータ

名前

使用方法

name

説明: 事前定義済属性リトリーバの名前

必須

許容値: 属性リトリーバのサービス・インスタンスを定義する文字列。

description

説明: 事前定義済属性リトリーバの説明

オプション

許容値: 文字列

type

説明: 事前定義済属性リトリーバのタイプ

必須

許容値: RDBMS_PIP

failed.server.retry.interval

説明: プライマリ・リポジトリが失敗した後、この属性は、プライマリ・リポジトリにスイッチ・バックする前にバックアップ・リポジトリが使用されている時間間隔を特定します。

オプション

許容値: 秒数に等しい値を指定します。デフォルト値は15です。

bootstrap.security.principal.key

説明: データベースにアクセスするためのパスワード資格証明のキーを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。B.4項「PIP接続資格証明の設定」を参照してください。

必須

許容値: 資格証明のキー名(oes_sm_keyなど)。

bootstrap.security.principal.map

説明: データベースにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。B.4項「PIP接続資格証明の設定」を参照してください。

必須

許容値: 資格証明のマップ名(oes_sm_mapなど)。

jdbc.driver

説明: Java Database Connectivity (JDBC) APIを使用してデータベースに接続する場合のドライバの場所。

必須: JDBC APIを使用してデータベースに接続している場合。

許容値: oracle.jdbc.driver.OracleDriverなど

jdbc.url

説明: データベースを指すURLを指定します。

必須: JDBC APIを使用してデータベースに接続している場合。

許容値: カンマ区切りのURLのリスト。最初はプライマリなどとして処理されます。たとえば、jdbc:oracle:thin:@scl58116.domainexample.com:1521:orclと定義します。

datasource.jndi.name

説明: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合のデータ・ソースJNDI名。データ・ソース・シナリオは、WebLogic ServerおよびWebSphere Application Serverのみでサポートされます。

必須: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合。

許容値: 事前定義済データ・ソース・オブジェクトのJNDI名。

B.2.3 事前定義済属性リトリーバの個々の属性の構成

表B-3では、構成された属性リトリーバによって取得された各属性に定義されるパラメータについて説明します。構成のサンプルは、例B-9「属性のキャッシュの有効化」を参照してください。

表B-3 取得する属性の構成

名前

使用方法

name

説明: ポリシー・ストアで定義されている属性の名前。LDAP事前定義済属性リトリーバを使用している場合、Oracle Entitlements Serverに定義される属性名は、LDAPストアで定義される属性名と同じである必要があります。現在、名前マッピング機能はありません。

必須

許容値: 属性名

query

説明: 問合せに使用されるSQLコマンドまたはLDAPフィルタ。ユーザーは、問合せ文字列内の組込み属性およびカスタム属性を使用できます。たとえば、組込み属性sys_userを使用して、select age from customers where name=%sys_user%;などの問合せを定義できます。データ・ストアに問合せを送信する前に、トークンはその値に自動的に置き換えられます。双方向の依存性(たとえば、属性Aの問合せ文字列に属性Bが含まれ、属性Bの問合せ文字列に属性Aが含まれている)も検出でき、このような場合、例外がスローされます。

必須

許容値: SQLコマンドまたはLDAPフィルタ。

ttl

説明: cachedが有効化されている場合、cached属性値の存続時間(秒)。

オプション

許容値: 任意の整数。cachedが有効化されている場合、デフォルト値は60秒です。

cached

説明: 属性値のキャッシングを有効化します。

オプション

許容値: デフォルト値はfalseです。

ootb.pip.attr.type

説明: OOTB_PIP_ATTRIBUTEに設定する必要があります。

必須

許容値: OOTB_PIP_ATTRIBUTE

ootb.pip.ref

説明: OOTB PIPインスタンスに設定する必要があります。

必須

許容値: jps-config.xmlの<serviceInstance>セクションで定義されたPIPサービス・インスタンス名。

B.3 jps-config.xmlの変更

jps-config.xml内で事前定義済属性リトリーバを構成するには、この項の各例で説明しているように、要素を変更します。例B-3は、jps-config.xmlファイルのサンプルです。これに続く各例は、行うことができる変更を示します。

例B-3 jps-config.xmlファイルのサンプル

<?xml version="1.0"?>

<jpsConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="
http://xmlns.oracle.com/oracleas/schema/jps-config-11_0.xsd">

<property name="oracle.security.jps.jaas.mode" value="off"/>
<property name="oracle.security.jps.enterprise.user.class"
value="weblogic.security.principal.WLSUserImpl"/>
<property name="oracle.security.jps.enterprise.role.class"
value="weblogic.security.principal.WLSGroupImpl"/>

<propertySets>
<!-- These are the global authenticated role properties -->
<propertySet name="authenticated.role.properties">
<property name="authenticated.role.name" value="authenticated-role"/>
<property name="authenticated.role.uniquename" value="authenticated-role"/>
<property name="authenticated.role.description"
value="This is the authenticated role used by identity store
service instance."/>
</propertySet>

<!-- attribute defined for ldap retriever -->
<propertySet name="ootb.pip.attribute.age.ldap">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
<property name="name" value="oespipage"/>
<property name="query" value="(cn=%SYS_USER%)"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

<propertySet name="ootb.pip.attribute.age.based.on.myattr.ldap">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
<property name="name" value="oespipage_myattr"/>
<property name="query" value="(cn=%MyAttr%)"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

<propertySet name="ootb.pip.attribute.gender.ldap">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
<property name="name" value="oespipgender"/>
<property name="query" value="(oespipage=%oespipage%)"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

<!-- attribute defined for rdbms retriever -->
<propertySet name="ootb.pip.attribute.age.rdbms">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.db"/>
<property name="name" value="oespipage"/>
<property name="query" value="select oespipage
from pip_info_store where username=%SYS_USER%"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

<propertySet name="ootb.pip.attribute.age.based.on.myattr.rdbms">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.db"/>
<property name="name" value="oespipage_myattr"/>
<property name="query" value="select oespipage
as oespipage_myattr from pip_info_store where username=%MyAttr%"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

<propertySet name="ootb.pip.attribute.gender.rdbms">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.db"/>
<property name="name" value="oespipgender"/>
<property name="query" value="select oespipgender
from pip_info_store where oespipage=%oespipage%"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>
</propertySets>

<serviceProviders>

<serviceProvider type="CREDENTIAL_STORE" name="credstoressp"
class="oracle.security.jps.internal.credstore.ssp.
SspCredentialStoreProvider">
<description>SecretStore-based CSF Provider</description>
</serviceProvider>

<serviceProvider class="oracle.security.jps.az.
internal.runtime.provider.PIPServiceProvider"
name="pip.service.provider" type="PIP"/>

<serviceProvider type="POLICY_STORE" name="policy.rdbms"
class="oracle.security.jps.internal.policystore.
OPSSPolicyStoreProvider">
<property name="policystore.type" value="DB_ORACLE"/>
<description>DBMS based PolicyStore</description>
</serviceProvider>

<serviceProvider name="pdp.service.provider" type="PDP"
class="oracle.security.jps.az.internal.
runtime.provider.PDPServiceProvider">
<description>OPSS Runtime PDP Service Provider</description>
</serviceProvider>

<serviceProvider name="idstore.xml.provider" type="IDENTITY_STORE"
class="oracle.security.jps.internal.idstore.
xml.XmlIdentityStoreProvider">
<description>XML-based IdStore Provider</description>
</serviceProvider>

<serviceProvider name="jaas.login.provider" type="LOGIN"
class="oracle.security.jps.internal.
login.jaas.JaasLoginServiceProvider">
<description>This is Jaas Login Service Provider and is used
to configure login module service instances</description>
</serviceProvider>

<serviceProvider name="policy.xml" type="POLICY_STORE"
class="oracle.security.jps.internal.
policystore.xml.XmlPolicyStoreProvider">
<description>XML-based PolicyStore</description>
</serviceProvider>

<serviceProvider type="POLICY_STORE" name="policy.oid"
class="oracle.security.jps.internal.
policystore.ldap.LdapPolicyStoreProvider">
<description>LDAP-based PolicyStore</description>
<property name="policystore.type" value="OID"/>
<property name="connection.pool.maxsize" value="30"/>
<property name="connection.pool.provider.type" value="idmpool"/>
</serviceProvider>

<serviceProvider type="AUDIT" name="audit.provider"
class="oracle.security.jps.internal.audit.AuditProvider">
<description>Audit Service</description>
</serviceProvider>
</serviceProviders>

<serviceInstances>

<serviceInstance name="credstore" provider="credstoressp" location="./">
<description>File Based Credential Store Service Instance</description>
</serviceInstance>

<serviceInstance name="idstore.xml" provider="idstore.xml.provider">
<!-- Subscriber name must be defined for XML Identity Store -->
<property name="subscriber.name" value="jazn.com"/>
<!-- This is the location of XML Identity Store -->
<property name="location" value="./user-data.xml"/>
<!-- This property set defines the authenticated role -->
<propertySetRef ref="authenticated.role.properties"/>
</serviceInstance>
<serviceInstance name="idstore.loginmodule"
provider="jaas.login.provider">
<description>Identity Store Login Module</description>
<property name="loginModuleClassName" value="oracle.security.jps.internal.
jaas.module.idstore.IdStoreLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
<property name="debug" value="true"/>
<property name="addAllRoles" value="true"/>
</serviceInstance>

<serviceInstance name="policystore.rdbms" provider="policy.rdbms">
<property name="jdbc.url"
value="jdbc:oracle:thin:@scl58116.domainexample.com:1521:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="oracle.security.jps.ldap.root.name"
value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name"
value="cn=wcai_view_jing.atzsrg"/>
</serviceInstance>

<serviceInstance name="policystore.rdbms.ds" provider="policy.rdbms">
<property name="oracle.security.jps.ldap.root.name"
value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name"
value="cn=wcai_view_jing.atzsrg"/>
<property value="atzsrgds" name="datasource.jndi.name"/>
</serviceInstance>

<serviceInstance name="pdp.service" provider="pdp.service.provider">
<property name="oracle.security.jps.runtime.pd.client.sm_name"
value="${atzsrg.pdp.configuration_id}"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEnabled" value="true"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionCapacity" value="500"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionPercentage" value="10"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheTTL" value="60"/>
<property name="oracle.security.jps.ldap.
policystore.refresh.interval" value="30000"/>
<property name="oracle.security.jps.policystore.
refresh.purge.timeout" value="600000"/> <!-- 10 minutes -->
<property name="loading_attribute_backward_compatible" value="false"/>
<!-- Properties for controlled mode PD -->
<property name="oracle.security.jps.runtime.
pd.client.policyDistributionMode" value="non-controlled"/>
<property name="oracle.security.jps.runtime.
instance.name" value="${atzsrg.pdp.instance_name}"/>
</serviceInstance>

<serviceInstance name="policystore.oid" provider="policy.oid">
<property name="max.search.filter.length" value="4096"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="ldap.url" value="ldap://scl58126.domainexample.com:3060"/>
<property name="oracle.security.jps.ldap.root.name"
value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name"
value="cn=wcai_view_jing.atzsrg"/>
<property name="oracle.security.jps.policystore.resourcetypeenforcementmode"
value="Lenient"/>
</serviceInstance>

<serviceInstance name="policystore.xml" provider="policy.xml"
location="./system-jazn-data.xml"/>

<serviceInstance name="user.authentication.loginmodule"
provider="jaas.login.provider">
<description>User Authentication Login Module</description>
<property name="loginModuleClassName"
value="oracle.security.jps.internal.
jaas.module.authentication.JpsUserAuthenticationLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>

<serviceInstance name="user.assertion.loginmodule"
provider="jaas.login.provider">
<description>User Assertion Login Module</description>
<property name="loginModuleClassName"
value="oracle.security.jps.internal.
jaas.module.assertion.JpsUserAssertionLoginModule"/>
<property name="jaas.login.controlFlag" value="REQUIRED"/>
</serviceInstance>

<serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
<property name="type" value="LDAP_PIP"/>
<property name="ldap.url"
value="ldap://scl58126.domainexample.com:3060"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="search.base" value="cn=pip_info_store,
cn=wcai_view_jing.atzsrg,cn=JPSContext,cn=jpsTestNode"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>
<!-- JPS Audit Service Instance-->
<serviceInstance name="audit" provider="audit.provider">
<property name="audit.filterPreset" value="None"/>
<property name="audit.maxDirSize" value ="0"/>
<property name="audit.maxFileSize" value ="104857600"/>
<property name="audit.loader.jndi" value="jdbc/AuditDB"/>
<property name="audit.loader.interval" value="15" />
<property name="audit.loader.repositoryType" value="File" />
</serviceInstance>

<serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
<property name="type" value="RDBMS_PIP"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@scl58116.domainexample.com:1521:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

<serviceInstance name="pip.service.ootb.db.ds" provider="pip.service.provider">
<property name="type" value="RDBMS_PIP"/>
<property value="atzsrgds" name="datasource.jndi.name"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

</serviceInstances>

<jpsContexts default="default">
<jpsContext name="default">
<serviceInstanceRef ref="policystore.oid"/>
<serviceInstanceRef ref="pdp.service"/>
<serviceInstanceRef ref="audit"/>
<serviceInstanceRef ref="idstore.xml"/>
<serviceInstanceRef ref="idstore.loginmodule"/>
<serviceInstanceRef ref="pip.service.ootb.ldap"/>
<serviceInstanceRef ref="pip.service.ootb.db"/>
</jpsContext>
<jpsContext name="smsec">
<serviceInstanceRef ref="credstore"/>
</jpsContext>

</jpsContexts>

</jpsConfig>

例B-4は、内部Oracle Entitlements Serverクラスを定義することによって、serviceProvider要素が事前定義済属性リトリーバの使用を定義する方法を示します。

例B-4 事前定義済属性リトリーバの宣言

<serviceProvider
class="oracle.security.jps.az.internal.runtime.provider.PIPServiceProvider"
name="pip.service.provider" type="PIP"/>

次の各例は、使用する事前定義済属性リトリーバのserviceInstance要素を変更する方法を示します。

- 例B-5「事前定義済LDAP属性リトリーバの使用」

- 例B-6「JDBCでの事前定義済RDBMS属性リトリーバの使用」

- 例B-7「SQLでの事前定義済RDBMS属性リトリーバの使用」

- 例B-8「jpsContextでの事前定義済属性リトリーバの宣言」

- 例B-9「属性のキャッシュの有効化」

- 例B-10「LDAPフェイルオーバーの構成」

例B-5は、事前定義済LDAP属性リトリーバを使用する場合にserviceInstance要素を変更する方法を示します。

例B-5 事前定義済LDAP属性リトリーバの使用

<serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
<property name="type" value="RDBMS_PIP"/>
<property name="ldap.url" value="ldap://dadvmg0065.domainexample.com:3080"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

次の2つの例は、事前定義済RDBMS属性リトリーバを使用する場合にserviceInstance要素を変更する方法を示します。例B-6は、Java Database Connectivity (JDBC) APIを使用する場合です。

例B-6 JDBCでの事前定義済RDBMS属性リトリーバの使用

<serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
<property name="type" value="RDBMS_PIP"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@scl58116.domainexample.com:1521:orcl"/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

例B-7は、SQLデータベースを使用する場合です。

例B-7 SQLでの事前定義済RDBMS属性リトリーバの使用

<serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
<property name="type" value="RDBMS_PIP"/>
<property name="datasource.jndi.name" value="DB_RAC"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

例B-8は、jpsContext要素で事前定義済属性リトリーバ参照を宣言する方法を示します。このサンプルでは、事前定義済RDBMS属性リトリーバを定義しています。

例B-8 jpsContextでの事前定義済属性リトリーバの宣言

<jpsContext name="default">
<serviceInstanceRef ref="policystore.db"/>
<serviceInstanceRef ref="pdp.service"/>
<serviceInstanceRef ref="audit"/>
<serviceInstanceRef ref="idstore.xml"/>
<serviceInstanceRef ref="idstore.loginmodule"/>
<serviceInstanceRef ref="pip.service.ootb.db"/>
</jpsContext>

例B-9は、特定の属性値のキャッシングを構成する方法を示します。キャッシングは属性ごとに有効化されます。この例では、キャッシュ・レコードは60秒後に削除されます。

例B-9 属性のキャッシュの有効化

<propertySet name="ootb.pip.attribute.gender.ldap">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
<property name="name" value="oespipgender"/>
<property name="query" value="(oespipage=%oespipage%)"/>
<property name="cached" value="true"/>
<property name="ttl" value="60"/>
</propertySet>

例B-10は、フェイルオーバー動作を構成する方法を示します。この例では、プライマリ接続はldap://dadvmg0065:3080で、バックアップ接続はldap://scl58123:3060です。失敗したサーバーの再試行間隔は10秒です。

例B-10 LDAPフェイルオーバーの構成

<serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
<property name="type" value="LDAP_PIP"/>
<property name="ldap.url"
value="ldap://dadvmg0065:3080,ldap://scl58123:3060"/>
<property name="bootstrap.security.principal.key" value="keyname"/>
<property name="bootstrap.security.principal.map" value="mapname"/>
<property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

B.4 PIP接続資格証明の設定

表B-1「LDAP属性リトリーバ・パラメータ」および表B-2「RDBMS属性リトリーバ・パラメータ」に示すように、bootstrap.security.principal.keyパラメータおよびbootstrap.security.principal.mapパラメータは、データ・ストアにアクセスするためのキーおよびマップ(それぞれ)を定義します。Oracle Entitlements Serverには、ブートストラップ資格証明ストアにこれらのLDAPおよびデータベース接続資格証明を設定するoesPassword.shが付属しています。ツールは、$OES_SM_INSTANCE_DIRECTORY/bin/ディレクトリにあります。次のコマンドを使用して実行します。

./oesPassword.sh -setpass

セキュリティ・プリンシパルのキー名、セキュリティ・プリンシパルのマップ名、ユーザー名および関連するパスワードの入力が求められます。

B.5 データベース・パスワードの更新

セキュリティ上の理由により、データベースに構成されているパスワードは、定期的に変更されます。したがって、Oracle Entitlements Serverコンポーネント(管理サーバーとセキュリティ・モジュール)を新しいパスワードに更新する必要があります。その手順を次に示します。

- 管理サーバーは、WebLogic Serverデータソースを使用して、データベース・アクセスとデータベース接続管理を提供します。パスワードを変更するには、WebLogic Serverコンソールを使用して、データソース構成を新しいパスワードで更新します。それ以外の手順は必要ありません。

- セキュリティ・モジュールは、次のどちらかの方法で特定のデータベースに接続できます。

- 制御プル、非制御または混合のいずれかの配布モードでポリシーを配布する際、セキュリティ・モジュールは、ポリシー・ストアとして使用されているデータベースに接続します。

- セキュリティ・モジュールは、属性リトリーバを使用して属性リポジトリから属性を取得する際、任意のリレーショナル・データベース管理システム(RDBMS)に接続できます。(この接続はデフォルトのポリシー・ストアに制限されません。)

どちらの場合も、WebLogic Serverデータソース構成または直接JDBCプロパティのどちらかを使用できます。WLSデータソース構成を使用して接続する場合、WebLogic Serverコンソールを使用して、データソース構成を新しいパスワードで更新します。それ以外の手順は必要ありません。直接JDBCプロパティを使用して接続する場合、B.4項「PIP接続資格証明の設定」で説明されているoesPasswordユーティリティを使用します。資格証明のマップとキーはjps-config.xmlで定義されます。

C WLSTによる拡張ポリシーの管理

WebLogic Scripting Tool (WLST)は、システム管理者とオペレータがWebLogic Serverのインスタンスとドメインの監視と管理に使用するコマンドライン・スクリプト・インタフェースです。この付録では、WSLTを使用してOracle Entitlements Serverで拡張ポリシーを管理するためのコマンドについて説明します。この章には次の項目があります。

- C.1項「Oracle Entitlements ServerでのWebLogic Scripting Toolの使用」

- C.2項「WLSTコマンドの使用」

- C.3項「スクリプトを使用したポリシーの作成」

C.1 Oracle Entitlements ServerでのWebLogic Scripting Toolの使用

WLSTスクリプト環境は、Javaのスクリプト・インタプリタであるJythonに基づいています。Oracle Entitlements Serverは、拡張ポリシーを管理できるように、Jython言語の構文に従ってスクリプト言語を拡張しています。新しいスクリプトは、WebLogic Application Server、WebSphere Application ServerおよびJBossApplication Serverのオフラインとオンラインの両方のモードでサポートされています。WLSTおよび関連するテーマの詳細は、次のリンクを参照してください。

- http://www.jython.org/

- 『Oracle Fusion Middleware Oracle WebLogic Scripting Tool』

このマニュアルの次の各項では、単純なポリシーを作成し、拡張要素を追加する一般的なプロセスについて説明します。

- 4.2項「認可ポリシーとそのコンポーネントの定義」

- 4.3項「認可ポリシーへの詳細な要素の追加」

C.2 WLSTコマンドの使用

この項では、両方のオンライン・モードのWLSTコマンドについて説明します。オフライン・モードはサポートされていません。

- createApplicationPolicy

- updateResourceType

- updateResource

- createPolicy

- updatePolicy

- deletePolicy

- listPolicies

- createAttribute

- updateAttribute

- deleteAttribute

- listAttributes

- createFunction

- updateFunction

- deleteFunction

- listFunctions

- getFunction

C.2.1 createApplicationPolicy

指定された名前のアプリケーション(アプリケーション・ポリシーとも呼ばれます)を作成します。

対話モード

createApplicationPolicy(appStripe="<appStripeName>")

スクリプト・モード

./wlst.sh createAdvancedPolicy.py -appStripe <appStripeName>

引数

- appStripeName – 作成するアプリケーション・ポリシーの名前。

C.2.2 updateResourceType

指定されたリソース・タイプを新しいプロパティで更新します。

対話モード

updateResourceType(appStripe="<appStripeName>",
resourceTypeName="<resourceTypeName>",
displayName="<displayName>", description="<description>',
allowedActions="<actions>', delimiter="<delimiter>',
attributes="<attributes>', provider="<resTypeProvider>',
matcher="<matcherClass>', hierarchicalResource="<hierarchicalResource>",
resourceNameDelimiter="<resourceNameDelimiter>")

スクリプト・モード

./wlst.sh updateResourceType.py -appStripe <appStripeName>
-resourceTypeName <resourceTypeName> [-displayName <displayName>]
[-description <description>] [-allowedActions <actions>]
[-delimiter <delimiter>]
[-attributes <attributes>] [-provider <resTypeProvider>]
[-matcher <matcherClass>]
[-hierarchicalResource <hierarchicalResource>
[-resourceNameDelimiter <resourceNameDelimiter>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- resourceTypeName – 更新するリソース・タイプの名前。必須。

- displayName – リソース・タイプの表示名。オプション。

- description – リソース・タイプの簡単な説明。オプション。

- actions - リソース・タイプに対する追加または削除を許可されたアクションのカンマ区切りリスト。接頭辞としてダッシュ(-)の付いているアクションはリストから削除され、接頭辞のないアクションはリストに追加されます。オプション。

- delimiter – アクション・リストで使用されるデリミタ。指定しない場合、カンマ(,)がデフォルトです。オプション。

- attributes – リソース・タイプの属性セットに対して追加または削除する属性名のカンマ区切りリスト。接頭辞としてダッシュ(-)の付いている属性はリストから削除され、接頭辞のない属性はリストに追加されます。オプション。nullを指定できます。

- resTypeProvider – このリソース・タイプのプロバイダ・クラス名。オプション。nullを指定できます。

- matcherClass – このリソース・タイプのマッチャ・クラス名。指定しない場合、使用されるデフォルト・マッチャ・クラスはoracle.security.jps.ResourcePermissionです。オプション。nullを指定できます。

- hierarchicalResource - リソース・タイプが階層型リソースをサポートしているかどうかを示すフラグ。これはオプション・パラメータであり、デフォルト値はfalseです。nullを指定できます。

- resourceNameDelimiter - このリソース・タイプの階層型リソースの名前でデリミタとして使用する文字。これはオプション・パラメータであり、デフォルト値はフォワード・スラッシュ(/)です。hierarchicalResourceパラメータに値trueが指定されていない場合は、値を指定してはいけません。

C.2.3 updateResource

指定されたリソースを新しいプロパティで更新します。

対話モード

updateResource (appStripe="<appStripeName>", resourceName="<resourceName>",
type="<resourceType>", displayName="<displayName>", description="<description>",
attributes="<attributes>")

スクリプト・モード

./wlst.sh updateResource.py -appStripe <appStripeName>
-resourceName <resourceName> -type <resourceType> [-displayName <displayName>]
[-description <description>] [-attributes <attributes>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- resourceName – 更新するリソースの名前。必須。

- type – リソースに関連付けられているリソース・タイプの名前。必須。

- displayName – リソース・タイプの表示名。オプション。

- description – リソース・タイプの簡単な説明。オプション。

- attributes – リソースの属性セットに対して追加または削除する属性のセミコロン区切りリスト。オプション。属性値の記述方法は次のルールに従います。

1. 単一値の属性を追加するには、<attribute name>:<value>という形式を使用します。

2. 複数値の属性を追加するには、<attribute name>:<value 1>,<value 2>,...,<value n>という形式を使用します。

3. 属性を削除するには、-<attribute name>という形式を使用します。

C.2.4 createPolicy

指定されたアプリケーション内に新しいポリシーを作成します。

対話モード

createPolicy (appStripe="<appStripeName>", policyName="<policyName>",
[displayName="<displayName>"], [description="<description>"],
ruleExpression="<ruleExpression> {entitlements="<entitlements>"|
resourceActions="<resActions>"},
{principals="<principals>"|-codeSource="<codeSource>"}",
[obligations="<obligations>"], [semantic="<semantic>"]

スクリプト・モード

./wlst.sh createPolicy.py -appStripe <appStripeName>
-policyName <policyName> [-displayName <displayName>]
[-description <description>] -ruleExpression <ruleExpression>
{-entitlements <entitlements>|-resourceActions <resActions>}
{-principals <principals>|-codeSource <codeSource>}
[-obligations <obligations>] [-semantic <semantic>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- policyName – 作成するポリシーの名前。必須。

- displayName – ポリシーの表示名。オプション。

- description – ポリシーの簡単な説明。オプション。

- ruleExpression – ルール式はポリシー決定のために評価されます。必須。式の記述方法は次のルールに従います。

1. ruleExpressionは名前で始まります。名前の後に、コロン(:)、影響(GRANT/DENY)が続きます。影響の後に、2つめのコロン(:)、式が続きます。式は関数と属性で構成されます。ruleExpressionに評価する条件が存在しない場合、2つめのコロン(:)と式は必要ありません。

2. 組込み関数を含むすべての関数は、有効な関数名の後にカッコ[()]で囲まれたパラメータのリストが続きます。

3. 属性と関数名は有効なJava識別子である必要があります。

4. 整数リテラル・パラメータは1-9の数字で始まり、0-9の数字が続きます。オプションで接頭辞としてダッシュ(-)を付けて負の整数を表すことができます。

5. 文字列リテラルは二重引用符("")で囲まれます。

6. 日付リテラルと時刻リテラルはGMT文字列の後にそれぞれ文字dとtが続きます。大/小文字は区別されません。

7. サポートされる標準のデータ型は、string、int、boolean、dateおよびtimeです。

8. サポートされる演算子: &&と||は2つのブール式を組み合せるために使用します。!はブール式に使用します。==は2つの文字列、整数、日付または時刻が等しいかどうかを確認するために使用します。>、<、>=および<=は2つの整数、日付または時刻を比較するために使用します。

9. &&、||および!を除くすべての演算子と関数は、パラメータとして値と属性のみ使用します。それら以外はパラメータとブール式を使用できます。

- entitlements – 権限セット・エントリ名のカンマ区切りリスト。指定するのは、resActions(リソース・アクション)が指定されていない場合のみにする必要があります。

- resActions – リソース・アクションのカンマ区切りリスト。指定するのは、entitlementsが指定されていない場合のみにする必要があります。リソース・アクションは、既存のリソース・タイプの後にコロン(:)を続けて指定します。その後に既存のリソース名、さらにそのリソースの有効なアクションの(カッコで囲まれた)カンマ区切りリストを続けます。たとえば、次のように入力します。

resType1:res1(act1, act2),resType2:res2(act1),resType2:res3(act2)

- principals – プリンシパルのカンマ区切りリスト。指定するのは、codeSourceが指定されていない場合のみにする必要があります。プリンシパルは、名前の後にコロン(:)と完全修飾クラス名を続けて指定します。たとえば、次のように入力します。

admin:com.example.myPrincipal, manager:com.example.myPrincipal

- codeSource – 文字列のコードソース。指定するのは、Principalsが指定されていない場合のみにする必要があります。オプション。

- obligations – 責任のカンマ区切りリスト。オプション。責任は、責任名の後にカッコで囲まれた責任属性割当てのカンマ区切りリストを続けて指定します。割当てがリテラルの場合、名前とそれに続くコロン(:)を接頭辞として指定する必要があります。割当てが属性の場合、名前はオプションです。たとえば、次のように入力します。

ob1(attr1,str1:"a String"),ob2(a2:attr2)

- semantic – ポリシー・セマンティクスとしてandまたはorを選択できます。オプション。

C.2.5 updatePolicy

指定されたアプリケーション内の既存のポリシーを更新します。

対話モード

updatePolicy (appStripe="<appStripeName>", policyName="<policyName>",
[displayName="<displayName>"], [description="<description>"],
[ruleExpression="<ruleExpression>"], [obligations="<obligations>"],
[entitlements="<entitlements>"|resourceActions="<resActions>"],
[principals="<principals>"|codeSource="<codeSource>"])

スクリプト・モード

./wlst.sh updatePolicy.py -appStripe <appStripeName>
-policyName <policyName> [-displayName <displayName>]
[-description <description>] [-ruleExpression <ruleExpression>]
[-obligations <obligations>]
[-entitlements <entitlements>|-resourceActions <resActions>]
[-principals <principals>|-codeSource <codeSource>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- policyName – 更新するポリシーの名前。必須。

- displayName – ポリシーの表示名。オプション。

- description – ポリシーの簡単な説明。オプション。

- ruleExpression – ルール式はポリシー決定のために評価されます。必須。式の記述方法は次のルールに従います。

1. ruleExpressionは名前で始まります。名前の後に、コロン(:)、影響(GRANT/DENY)が続きます。影響の後に、2つめのコロン(:)、式が続きます。式は関数と属性で構成されます。ruleExpressionに評価する条件が存在しない場合、2つめのコロン(:)と式は必要ありません。

2. 組込み関数を含むすべての関数は、有効な関数名の後にカッコ[()]で囲まれたパラメータのリストが続きます。

3. 属性と関数名は有効なJava識別子である必要があります。

4. 整数リテラル・パラメータは1-9の数字で始まり、0-9の数字が続きます。オプションで接頭辞としてダッシュ(-)を付けて負の整数を表すことができます。

5. 文字列リテラルは二重引用符("")で囲まれます。

6. 日付リテラルと時刻リテラルはGMT文字列の後にそれぞれ文字dとtが続きます。大/小文字は区別されません。

7. サポートされる標準のデータ型は、string、int、boolean、dateおよびtimeです。

8. サポートされる演算子: &&と||は2つのブール式を組み合せるために使用します。!はブール式に使用します。==は2つの文字列、整数、日付または時刻が等しいかどうかを確認するために使用します。>、<、>=および<=は2つの整数、日付または時刻を比較するために使用します。

9. &&、||および!を除くすべての演算子と関数は、パラメータとして値と属性のみ使用します。それら以外はパラメータとブール式を使用できます。

- entitlements – 権限セット・エントリ名のカンマ区切りリスト。指定するのは、resActions(リソース・アクション)が指定されていない場合のみにする必要があります。

- resActions – リソース・アクションのカンマ区切りリスト。指定するのは、entitlementsが指定されていない場合のみにする必要があります。リソース・アクションは、既存のリソース・タイプの後にコロン(:)を続けて指定します。その後に既存のリソース名、さらにそのリソースの有効なアクションの(カッコで囲まれた)カンマ区切りリストを続けます。たとえば、次のように入力します。

resType1:res1(act1, act2),resType2:res2(act1),resType2:res3(act2)

- principals – プリンシパルのカンマ区切りリスト。指定するのは、codeSourceが指定されていない場合のみにする必要があります。プリンシパルは、名前の後にコロン(:)と完全修飾クラス名を続けて指定します。たとえば、次のように入力します。

admin:com.example.myPrincipal, manager:com.example.myPrincipal

- codeSource – 文字列のコードソース。指定するのは、Principalsが指定されていない場合のみにする必要があります。オプション。

- obligations – 責任のカンマ区切りリスト。オプション。責任は、責任名の後にカッコで囲まれた責任属性割当てのカンマ区切りリストを続けて指定します。割当てがリテラルの場合、名前とそれに続くコロン(:)を接頭辞として指定する必要があります。割当てが属性の場合、名前はオプションです。たとえば、次のように入力します。

ob1(attr1,str1:"a String"),ob2(a2:attr2)

C.2.6 deletePolicy

指定されたアプリケーション内の既存のポリシーを削除します。

対話モード

deletePolicy (appStripe="<appStripeName>", policyName="<policyName>")

スクリプト・モード

./wlst.sh deletePolicy.py -appStripe <appStripeName> -policyName <policyName>

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- policyName – 更新するポリシーの名前。必須。

C.2.7 listPolicies

指定されたアプリケーション内のポリシーをリストします。

対話モード

listPolicies (appStripe="<appStripeName>")

スクリプト・モード

./wlst.sh listPolicies.py -appStripe <appStripeName>

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

C.2.8 createAttribute

アプリケーションに新しい属性を作成します。デフォルト属性はサポートされていません。

対話モード

createAttribute (appStripe="<appStripeName>", attributeName="<attributeName>",
[displayName="<displayName>"], [description="<description>"], type="<type>",
category="<category>", [isSingle="<true/false>'], [values="<values>"])

スクリプト・モード

./wlst.sh createAttribute.py -appStripe <appStripeName>
-attributeName <attributeName> [-displayName <displayName>]
[-description <description>] -type <type> -category  <category>
[-isSingle <true/false>][-values <values>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- attributeName – 作成する属性の名前。必須。

- displayName – 属性の表示名。オプション。

- description – 属性の簡単な説明。オプション。

- type - タイプの完全修飾クラス名。必須。

- category - 属性カテゴリ。DynamicまたはResource。必須。

- isSingle – 属性が単一値または複数値のどちらであるかを示します。デフォルト値はtrueです。オプション。

- values – 属性の初期値。オプション。

C.2.9 updateAttribute

アプリケーションで定義済の属性の値を更新します。デフォルト属性はサポートされていません。

対話モード

updateAttribute (-appStripe="<appStripeName>", attributeName="<attributeName>",
[displayName="<displayName>"], [description="<description>"],
[values="<values>"])

スクリプト・モード

./wlst.sh updateAttribute.py -appStripe <appStripeName>
-attributeName <attributeName> [-displayName <displayName>]
[-description <description>] [-values <values>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- attributeName – 作成する属性の名前。必須。

- displayName – 属性の表示名。オプション。

- description – 属性の簡単な説明。オプション。

- values – 属性値のカンマ区切りリスト。この値が空の文字列の場合、属性は値が未割当ての状態に更新されます。オプション。

C.2.10 deleteAttribute

指定されたアプリケーションの指定された属性を削除します。デフォルト属性はサポートされていません。

対話モード

deleteAttribute (appStripe="<appStripeName>", attributeName="<attributeName>",
[cascade="<true/false>"])

スクリプト・モード

./wlst.sh deleteAttribute.py -appStripe <appStripeName>
-attributeName <attributeName>
[-cascade <true/false>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- attributeName – 作成する属性の名前。必須。

- cascade – 削除がカスケードされているかどうかを示すブール値。指定しない場合、値はデフォルトでfalseに設定されます。オプション。

C.2.11 listAttributes

指定されたアプリケーションで定義されているすべての属性をリストします。

オンライン・モード

listAttributes (appStripe="<appStripeName>", [hideBuiltIn="<hideBuiltIn>"])

オフライン・モード

./wlst.sh listAttributes.py -appStripe <appStripeName>
[-hideBuiltIn <hideBuiltIn>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- hideBuiltIn – 組込み属性を非表示にするかどうかを示すブール値。値のデフォルトはtrueです。オプション。

C.2.12 createFunction

指定されたアプリケーション内に関数を作成します。

対話モード

createFunction (appStripe="<appStripeName>", functionName="<functionName>",
[displayName="<displayName>"], [description="<description>"],
className="<className>", returnType="<returnType>",
[paramTypes="<paramTypes>"])

スクリプト・モード

./wlst.sh createFunction.py -appStripe <appStripeName>
-functionName <functionName> [-displayName <displayName>]
[-description <description>] –className <className>
-returnType <returnType> [-paramTypes <paramTypes>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- functionName – 作成する関数の名前。必須。

- displayName – 関数の表示名。オプション。

- description – 関数の簡単な説明。オプション。

- className - 関数が属するクラスの名前。必須。

- returnType - 関数の戻り型。必須。

- paramTypes – カンマ(,)で連結されたパラメータのタイプのリスト。指定しない場合、関数は入力としてパラメータを使用しません。オプション。

C.2.13 updateFunction

関数を指定された値で更新します。

対話モード

updateFunction (appStripe="<appStripeName>", functionName="<functionName>"
[displayName="<displayName>"], [description="<description>"],
[className="<className>"], [returnType="<returnType>"],
[paramTypes="<paramTypes>"])

スクリプト・モード

./wlst.sh updateFunction.py -appStripe <appStripeName>
-functionName <functionName> [-displayName <displayName>]
[-description <description>] [–className <className>]
[-returnType <returnType>] [-paramTypes <paramTypes>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- functionName – 更新する関数の名前。必須。

- displayName – 関数の表示名。オプション。

- description – 関数の簡単な説明。オプション。

- className - 関数が属するクラスの名前。必須。

- returnType - 関数の戻り型。必須。

- paramTypes – カンマ(,)で連結されたパラメータのタイプのリスト。指定しない場合、関数のパラメータ・タイプは変更されません。この値が空の文字列の場合、関数は入力パラメータを使用しないように更新されます。オプション。

C.2.14 deleteFunction

指定されたアプリケーションの関数を削除します。

対話モード

deleteFunction (appStripe="<appStripeName>", functionName="<functionName>",
[cascade="<true/false>"])

スクリプト・モード

./wlst.sh deleteFunction.py -appStripe <appStripeName>
-functionName <functionName> [-cascade <true/false>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- functionName – 更新する関数の名前。必須。

- cascade – 削除がカスケードされているかどうかを示すブール値。指定しない場合、値はデフォルトでfalseに設定されます。オプション。

C.2.15 listFunctions

指定されたアプリケーション内のすべての関数をリストします。

対話モード

listFunctions (appStripe="<appStripeName>", [hideBuiltIn="<hideBuiltIn>"]

スクリプト・モード

./wlst.sh listFunctions.py -appStripe <appStripeName>
[-hideBuiltIn <hideBuiltIn>]

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- hideBuiltIn – 組込み関数を非表示にするかどうかを示すブール値。値のデフォルトはtrueです。オプション。

C.2.16 getFunction

指定されたアプリケーションの指定された関数の詳細を取得します。

対話モード

getFunction (appStripe="<appStripeName>", functionName="<functionName>")

スクリプト・モード

./wlst.sh getFunction.py -appStripe <appStripeName>
-functionName <functionName>

引数

- appStripeName – アプリケーション(アプリケーション・ポリシーとも呼ばれます)名。必須。

- functionName – 取得する関数の名前。

C.3 スクリプトを使用したポリシーの作成

例C-1は、ルール(1つの属性比較と1つの関数起動が行われます)と責任(2つの責任属性が含まれます)を使用する単一ポリシーを作成する方法を示します。

例C-1 ポリシー作成のためのサンプル・スクリプト

createApplicationPolicy(appStripe="jpsWebApp_wlst_test")
createResourceType(appStripe="jpsWebApp_wlst_test", resourceTypeName="resType1",
provider="myProvider", matcher="myMatcher",
allowedActions="action1,action2", delimiter=",")
createResourceType(appStripe="jpsWebApp_wlst_test", resourceTypeName="resType2",
provider="myProvider", matcher="myMatcher",
allowedActions="action1,action2", delimiter=",")
createResource(appStripe="jpsWebApp_wlst_test",name="res1",type="resType1")
createResource(appStripe="jpsWebApp_wlst_test",name="res2",type="resType2")
createResource(appStripe="jpsWebApp_wlst_test",name="res3",type="resType2")
createAttribute(appStripe="jpsWebApp_wlst_test", attributeName="attr1",
type="date", category="dynamic")
createAttribute(appStripe="jpsWebApp_wlst_test", attributeName="attr2",
type="time", category="dynamic")
createAttribute(appStripe="jpsWebApp_wlst_test", attributeName="abc",
type="int", category="dynamic")
createAttribute(appStripe="jpsWebApp_wlst_test", attributeName="c",
type="int", category="dynamic")
createAttribute(appStripe="jpsWebApp_wlst_test", attributeName="aString",
type="string", category="dynamic")
createFunction(appStripe="jpsWebApp_wlst_test", functionName="boolFunction",
className="com.example.myClassName",
returnType="oracle.security.jps.service.policystore.info.OpssBoolean")
paramTypes="oracle.security.jps.service.policystore.infoOpssString,
oracle.security.jps.service.policystore.info.OpssInteger")
createPolicy(appStripe="jpsWebApp_wlst_test", policyName="policy1",
ruleExpression="rule1:grant: !(abc > -1162) && (c==2)&& (\"a String\" ==
aString)", resourceActions="resType1:res1(act1,
act2),resType2:res2(act1),resType2:res3(act2)",
principals="admin:com.example.MyPrincipal", obligations="ob3(attr1,str1:\"a
String\"),ob4(a2:attr2)", semantic="or"
updatePolicy(appStripe="jpsWebApp_wlst_test", policyName="policy1",
ruleExpression="rule3:deny:boolFunction(\"abc\",c)",
resourceActions="-resType2:res3(act2),resType2:res3(act1)",
obligations="-ob1,email(addr:\"me@mycompany.com\")")
listPolicies(appStripe="jpsWebApp_wlst_test")
deletePolicy(appStripe="jpsWebApp_wlst_test", policyName="policy1")

索引
A  C  D  E  F  G  H  I  J  L  M  N  O  P  R  S  T  U  W  X

A

ABAC, 1.5, 1.5.2

アクセス制御

およびOracle Entitlements Server, 1.2

サポートされている標準, 1.5

概要, 1.1

管理ポリシー

管理ロール

管理ポリシー, 11.3.1

管理コンソール

認可管理, 3.4.1.1

カスタマイズ, 12.1

「ホーム」領域, 3.4.3

ログイン, 3.3.1

ナビゲーション・パネル, 3.4.2

オンライン・ヘルプ, 3.4.4

概要, 3.2

検索, 5.1

サイン・アウト, 3.3.2

システム構成, 3.4.1.2

使用, 3.4

管理者ロール

管理, 11.6

SystemAdmin, 3.2.1

管理者, 3.2.1 拡張

ポリシー・シミュレーション, 13.2

拡張検索, 5.3 匿名ロール, 4.5.5.1 アプリケーション

管理, 11.3

定義済, 4.1

管理, 4.5.1

アプリケーション・ロール

管理, 4.5.5, 4.5.6

アプリケーション・ロール, 5.3.4 アプリケーション, 5.3.2 アーキテクチャ

認可プロセス・フロー, 1.4

ポリシー管理ポイント, 1.3.1

ポリシー決定ポイント, 1.3.2

ポリシー実行ポイント, 1.3.2

ポリシー情報ポイント, 1.3.3

セキュリティ・モジュール, 1.3.2.3

属性

管理, 4.5.9

属性リトリーバ

事前定義済, B.1

属性リトリーバ, 1.3.3, B 属性ベースのアクセス制御

「ABAC」を参照, 1.5.2

属性, 5.3.9 監査, 13.4

構成, 13.4.2

追加情報, 13.4.4

認証ロール, 4.5.5.1 認可

プロセス・フロー, 1.4

認可管理, 3.4.1.1 認可ポリシー, 5.3.8 認可ポリシー, 2.1.1

および責任, 4.5.5.1

定義済, 2.1

管理, 4.5.5

認可ポリシー・マネージャ

コンソールとして, 1.2.2

「管理コンソール」を参照, 3.2

Az API, 1.5, 1.5.5

C

キャッシュ

構成, 13.6

大/小文字区別, 5.4 構成

デバッグ, 13.8.1.1

大まかな認可, 1.1 条件

管理, 4.6

構成

デバッグ, 13.8.1, 13.8.2

ロギング, 13.8.1.1

コンソール

および認可ポリシー・マネージャ, 1.2.2

カスタマイズ

管理コンソール, 12.1

D

データストア

アクセス, B.4

デバッグ・パラメータ, 13.8.1 デバッグ, 13.8

構成, 13.8.1

Javaセキュリティ・モジュール, 13.8.1.1.1

ポリシー配布, 13.8.3

ログの検索, 13.8.1.2

WebLogic Serverセキュリティ・モジュール, 13.8.1.1.2

メソッドを使用, 13.8.2

管理の委任, 11, 11.3, 11.4, 11.5 検出モード

WebLogic Server, 9.4, 9.4.2

ドキュメント

追加, はじめに

E

要素

ポリシー, 4.3

資格

管理, 4.5.4

資格, 5.3.7 拡張機能

管理, 4.5.9

外部ロール, 5.3.1

F

きめ細やかな認可, 1.1

FIPS, 13.3

関数

管理, 4.5.9

関数, 5.3.10

G

グローバル

定義済, 4.1

セキュリティ・モジュール, 10.2

システム管理者, 11.6

用語集, 2.3

アプリケーション, 2.3

アプリケーション・ロール, 2.3

属性, 2.3

認可ポリシー, 2.3

条件, 2.3

資格, 2.3

外部ロール, 2.3

関数, 2.3

責任, 2.3

ポリシー・ドメイン, 2.3

ポリシー・ストア, 2.3

プリンシパル, 2.3

リソース, 2.3

リソース・タイプ, 2.3

ロール・カテゴリ, 2.3

ロール・マッピング・ポリシー, 2.3

権限

OPSS, 3.2.4, 4.5.5.2, 5.3.8

H

階層型リソース・タイプ, 4.5.2.1

「ホーム」領域, 3.4.3

I

アイデンティティ・ストア

LDAP構成, 3.1

インストール, 3.1

J

Java 2権限, 1.5

Java権限, 1.5.3

JCEプロバイダ, 13.3

jps-config.xml, A

L

ログイン, 3.3.1

ログアウト, 3.3.2

ロギング, 13.7

デバッグ構成, 13.8.1.1

ログの検索, 13.8.1.2

M

メソッド

デバッグ, 13.8.2

ポリシーの移行, 13.5

データベースからXMLへ, 13.5.4

LDAPからXMLへ, 13.5.2

XMLからデータベースへ, 13.5.3

XMLからLDAPへ, 13.5.1

N

ナビゲーション・パネル, 3.4.2

O

オブジェクト名, 5.4

責任

作成, 4.5.5.1

オンライン・ヘルプ, 3.4.4 OpenAzフレームワーク, 1.5.5 OPSS

システム権限, 3.2.4, 4.5.5.2, 5.3.8

Oracle Entitlements Server, 1.2

アーキテクチャ, 1.3

機能, 1.2.3

インストール, 3.1

前のリリース, 1.2.1

P

PAP, 1.3.1

パラメータ

構成, A

インストール, A

PDPプロキシ・クライアント, A.3

ポリシー配布, A.1

ポリシー・ストア, A.4

セキュリティ・モジュール, A.2

PDP, 1.3.2 PDPプロキシ・クライアント, 8.5

パラメータ, A.3

PEP, 1.3.2 権限

Java, 1.5.3

PIP, 1.3.3

「属性リトリーバ」を参照, B.1

PIP資格証明, B.4 ポリシー

シミュレーション, 13.2

ポリシー

作成

追加要素, 4.3

手順の定義, 4.2 定義手順

追加要素, 4.3

移行, 13.5 ポリシー管理ポイント, 1.3.1 ポリシー作成, 4.2 ポリシー決定ポイント, 1.3.2 ポリシー配布

デバッグ, 13.8.3

概要, 6.2

パラメータ, A.1

手順, 6.3

ポリシー・ドメイン

管理, 11.5

概要,11.4

ポリシー実行ポイント, 1.3.2 ポリシー評価, 2.2 ポリシー情報ポイント, 1.3.3 ポリシー・オブジェクト

アプリケーション, 4.5.1

アプリケーション・ロール, 4.5.5, 4.5.6

属性, 4.5.9

認可ポリシー, 4.5.5

条件, 4.6

定義, 2.3

アプリケーション, 2.3

アプリケーション・ロール, 2.3

属性, 2.3

認可ポリシー, 2.3

条件, 2.3

資格, 2.3

外部ロール, 2.3

関数, 2.3

責任, 2.3

ポリシー・ドメイン, 2.3

ポリシー・ストア, 2.3

プリンシパル, 2.3

リソース, 2.3

リソース・タイプ, 2.3

ロール・カテゴリ, 2.3

ロール・マッピング・ポリシー, 2.3

定義, 2.3 資格, 4.5.4 拡張, 4.5.9 関数, 4.5.9 管理, 4.1 リソース, 4.5.3 リソース・タイプ, 4.5.2 ロール・カタログ, 4.5.5, 4.5.6 ロール・カテゴリ, 4.5.8 ロール・マッピング・ポリシー, 4.5.7 検索, 5.3, 5.3.1, 5.3.2, 5.3.3, 5.3.4, 5.3.5, 5.3.6, 5.3.7, 5.3.8, 5.3.9, 5.3.10, 5.3.11 ポリシー・シミュレータ, 13.2 ポリシー・ストア

パラメータ, A.4

ポリシー・タイプ, 2.1

認可ポリシー, 2.1.1

評価, 2.2

ロール・マッピング・ポリシー, 2.1.2

ポリシー・ユースケース, 2.4 ポップアップ検索ボックス, 5.1

R

RBAC, 1.5, 1.5.1

リソース

管理, 4.5.3

リソース・タイプ

管理, 4.5.2

リソース・タイプ, 5.3.3

階層, 4.5.2.1

リソース, 5.3.6

SharePoint, 9.2

WebLogic Server, 9.4

ロール・カタログ, 4.5.5, 4.5.6 ロール・カテゴリ

定義, 2.3

管理, 4.5.8

ロール・マッピング・ポリシー, 5.3.5 ロール・マッピング・ポリシー, 2.1.2

定義済, 2.1

管理, 4.5.7

ロールベースのアクセス制御

「RBAC」を参照, 1.5.1

ロール

割当て, 2.1.2

S

検索

管理コンソール, 5.1

拡張, 5.3

アプリケーション・ロール, 5.3.4

アプリケーション, 5.3.2

属性, 5.3.9

認可ポリシー, 5.3.8

資格, 5.3.7

外部ロール, 5.3.1

関数, 5.3.10

ポップアップ検索, 5.1

リソース・タイプ, 5.3.3

リソース, 5.3.6

ロール・マッピング・ポリシー, 5.3.5

簡易, 5.2

ユーザー, 5.3.11

ログの検索, 13.8.1.2 セキュリティ・モジュール

構成, 10.2

Java

デバッグ, 13.8.1.1.1

パラメータ, A.2 WebLogic Server

デバッグ, 13.8.1.1.2

セキュリティ・モジュール

およびWebLogic Server, 9.4.1

アーキテクチャ, 1.3.2.3

PDPとして, 1.3.2.1

PDP/PEPとして, 1.3.2.2

デプロイ, 9.1

Java構成, 8.4.1

PDPプロキシ・クライアント, 8.5

SMConfig UIの起動, 8.2

タイプ, 1.3.2.3, 9.1, 9.1

セキュリティ・プロバイダ, 13.3 SharePointリソース, 9.2 単純

ポリシー・シミュレーション, 13.2

簡易検索, 5.2 シミュレーション

ポリシー, 13.2

SMConfig UI

起動, 8.2

システム管理者, 11.6 システム構成, 3.4.1.2 システム権限, 3.2.4, 4.5.5.2, 5.3.8 システム・ポリシー, 3.2.4, 4.5.5.2, 5.3.8 システム要件, 3.1 SystemAdmin, 3.2.1

T

T2P, 13.1

テスト環境から本番環境へ, 13.1

U

ユースケース, 2.4

ユーザー, 5.3.11

W

WebLogic Server

検出モード, 9.4, 9.4.2

統合, 9.4.1

WebLogic Serverリソース, 9.4 WebLogicユーザー, 3.2.1 WLST

コマンド, C.2

サンプル・スクリプト, C.3

使用, C.1, C.1

X

XACML, 1.5, 1.5.4

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2013, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。