この章では、OPSS認可モデルおよびこのモデルで使用されるセキュリティ・オブジェクトについて説明します。これらのオブジェクトは、セキュリティ管理者がOracle Authorization Policy Managerを使用して管理できます。次の各項でこれらのオブジェクトについて説明します。
この章で定義している用語は、Authorization Policy Managerのユーザー・インタフェースおよびこのガイド全体で使用されています。
アプリケーション・ストライプとは、アプリケーション・ポリシーを格納するドメイン・ポリシー・ストアの論理的なサブセットです。特に指定しない限り、アプリケーション・ストライプ名はアプリケーションの表示名から導出されます。たとえば、アプリケーションの表示名がappName(version)
の場合、アプリケーション・ストライプ名はappName#vers
となります。1つのアプリケーション・ストライプを複数のアプリケーション間で共有できます。
Authorization Policy Managerを使用してアクセス可能なセキュリティ・アーティファクトそれぞれを区別する第1の要素は、それがグローバルなアーティファクトか、あるいはアプリケーション固有のアーティファクトであるかです。
グローバルなアーティファクトには、ユーザー、外部ロールおよびシステム・ポリシーがあります。これらはすべてのアプリケーション・ストライプに適用されます。システム・ポリシーはドメイン・ポリシー・ストアに格納されていますが、このリリースのAuthorization Policy Managerではシステム・ポリシーの表示や管理はサポートされていません。システム・ポリシーの管理は、Fusion Middleware Controlを使用して行います(『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照)。
アプリケーション固有のアーティファクトは、リソース・カタログ、アプリケーション・ポリシー、アプリケーション・ロールおよびロール・カテゴリがあります。これらはアプリケーション・ストライプのみに適用されます。
外部ロールは、ユーザーおよびその他のグループの集まりです。外部ロールという用語は、エンタープライズ・ロールまたはエンタープライズ・グループと同義で使用されることもあり、通常はアイデンティティ・ストア内のLDAPグループとして実装されます。外部ロールは、他の種類のロールと同じく階層構造にすることができます。
ロール階層および権限継承の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。
注意: 外部ロール(およびユーザー)は、Authorization Policy Manager内部では表示のみ可能です。管理は通常、Oracle Identity Managerなどの別のツールを使用して行います。詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドを参照してください。 |
図2-1は、アプリケーション・ポリシーの論理的なモデルを示しています。この図には、(資格内に)リソース・タイプが示されていません。ユーザーおよび外部ロールをプリンシパルとして使用できます。また、外部ロールは階層構造にできます。
次の各項で、アプリケーション・ストライプのコンポーネントおよび詳細について説明します。
アプリケーション・ロールは、ユーザー、グループおよびその他のアプリケーション・ロールの集まりであり、階層構造にできます。アプリケーション・ロールはアプリケーション・ポリシーによって定義されます。JavaEEコンテナに認識されるとは限りません。アプリケーション・ロールは、外部ロールに多対多でマッピングできます。たとえば、(アイデンティティ・ストアに格納されている)外部グループemployee
を、(あるストライプ内の)アプリケーション・ロールhelpdesk service request
にマッピングして、さらに(別のストライプ内の)アプリケーション・ロールself service HR
にマッピングできます。
プリンシパルとは、ポリシー内の認可が付与されるアイデンティティです。プリンシパルになるのはユーザー、外部ロールまたはアプリケーション・ロールですが、最も多いのはアプリケーション・ロールです。
リソース・カタログは、リソース・タイプ、リソース、アクションおよび資格で構成されます。
リソース・タイプは、保護されたアーティファクトのタイプを表します。リソース・タイプの例として、UIアーティファクト(ADFタスクフロー、ページ、ボタン、フィールド、Webサービス、レポート、URL、スケジュールされたジョブなど)があります。基本的に、リソース・タイプはリソースを作成するためのテンプレートです。
リソース・タイプは、1つのJavaクラス(マッチャー・クラス)と関連付けられます。このクラスは、そのリソース・タイプのインスタンスで起動できるアクションを説明するもので、クラスjava.security.Permission
を実装する必要があります。たとえば、リソース・タイプがADFタスクフローの場合、権限クラスによりタスクフローの表示またはカスタマイズが許可されます。
リソース・タイプの指定では、次の点に注意してください。
名前は必須であり、大/小文字が区別されます。
マッチャー・クラス名は必須であり、大/小文字が区別されます。通常、マッチャー・クラスは、提供されているOPSS ResoucePermission
クラスですが、カスタム・クラスにすることもできます。同じマッチャー・クラスに2つの異なるリソース・タイプを指定することはできません(クラスResourcePermission
の場合を除く)。このクラスの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。
説明文字列はオプションであり、大/小文字が区別されます。
表示名はオプションであり、大/小文字が区別されます。表示名はOracle Authorization Policy Managerに表示され、セキュリティ管理者にアーティファクトの特定に役立つ追加情報を提供するため、分かりやすい表示名を指定することをお薦めします。
アクションのリストはオプションであり、大/小文字が区別されます。空にすることもできます。アクション・リストが空の場合、そのリソース・タイプのインスタンスに対するアクションは外部で決定され、Authorization Policy Managerには不透明になります。すなわち、これらのアクションはこのリソース・タイプには関連していません(この場合、リソースは名前付きリソースとして処理されます)。
リソース・タイプの作成方法の詳細は、5.1.2項「アプリケーション・リソース・タイプの管理」を参照してください。
アクションはリソース・タイプと関連付けられ、リソースに対して許可される操作を定義します。リソース・タイプに関連付けられたマッチャー・クラスは通常、そのリソース・タイプのアクションのリストを説明します。リソースに対するアクションの例を次に示します。
URLに対する取得またはポスト。
ファイルに対する読取り、書込み、コピー、編集または削除。
当座預金口座に対する預入れ、引出し、残高照会、履歴照会、預金の振込みまたは振替え。
リソースまたはリソース・インスタンスは、具体的なリソースを表すリソース・タイプのインスタンスであり、ポリシー(URL、EJB、JSPなど)により保護できるアプリケーション・リソースを定義します。アプリケーションは実行時にリソース名を渡して権限の確認を行い、プリンシパルが認可されているかどうかを判断します。
リソースには、リソース・タイプを関連付ける必要がありますが、資格と関連付ける必要はありません。リソースの指定では、様々な文字列の大/小文字に関する次の点に注意してください。
名前は必須であり、大/小文字が区別されます。アプリケーションは実行時にこの名前を渡して権限の確認を行い、ユーザーが認可されているかどうかを判断します。
説明はオプションであり、大/小文字が区別されます。
表示名は必須であり、大/小文字が区別されます。表示名はOracle Authorization Policy Managerに表示され、セキュリティ管理者にアーティファクトの特定に役立つ追加情報を提供するため、分かりやすい表示名を指定することをお薦めします。
リソースの作成方法の詳細は、5.1.3項「アプリケーション・リソースの管理」を参照してください。
権限は、クラス、リソース、および各リソースのリソース・タイプで許可されるアクションのサブセットを集約したものです。
資格または権限セットは、タスクの実行に必要なリソースおよび権限の小さなセットを表します。つまり、ビジネス機能を実行するために必要な関連するリソース(タイプが異なる場合もある)をひとまとめにしたものです。資格は、複数のプリンシパルに付与できる再利用可能な権限の集まりです。
たとえば、購買依頼管理という資格は、次のリソースをひとまとめにしたものです。
Resource Type: ADF Taskflow Resource: PO Summary Action: view Resource Type: ADF Taskflow Resource: PO Details Action: view Resource Type: ADF Taskflow Resource: Supplier Details Action: view Resource Type: Web Service Resource: SpendingLimitCheckWS Action: invoke Resource Type: Workflow Resource: POApproval Action: submit
資格の指定では、様々な文字列の大/小文字に関する次の点に注意してください。
名前は必須であり、大/小文字が区別されます。
説明はオプションであり、大/小文字が区別されます。
表示名は必須であり、大/小文字が区別されます。表示名はOracle Authorization Policy Managerに表示され、セキュリティ管理者にアーティファクトの特定に役立つ追加情報を提供するため、分かりやすい表示名を指定することをお薦めします。
資格の作成方法の詳細は、5.1.4項「アプリケーション資格の管理」を参照してください。
アプリケーション・ポリシーは、アプリケーション内でエンティティ(権限受領者、プリンシパルまたはコード・ソース)に付与される権限セット(Webページの閲覧やレポートの変更など)を指定する機能ポリシーです。つまり、アプリケーション・ポリシーはアプリケーションで誰が何を実行できるかを指定するものです。
アプリケーション・ポリシーの特徴を次に示します。
プリンシパルを権限受領者として使用します。少なくとも1つのプリンシパルを割り当てる必要があります(このリリースのOracle Authorization Policy Managerでは、コード・ソースは権限受領者として使用できません)。
1つ以上の権限または資格を使用できますが、その両方は使用できません。資格を使用するポリシーは資格に基づくポリシーと呼ばれ、1つ以上の権限を使用するポリシーはリソースに基づくポリシーと呼ばれます。
アプリケーション・ポリシー・モデルは、図2-1に示されています。
Authorization Policy Managerには豊富な機能を備えたユーザー・インタフェースが用意されており、セキュリティ管理者はこれを使用してアプリケーション・ポリシーの問合せ、プロビジョニングおよび管理を行うことができます。詳細は、第4章「セキュリティ・アーティファクトの問合せ」および第5章「セキュリティ・アーティファクトの管理」を参照してください。
ロール・カテゴリは、アプリケーション・ロールの集まりです。ロール・カテゴリを使用すると、管理者はアプリケーション・ロールを任意のフラット・コレクションに編成できます。ロール・カテゴリは、実行時のポリシー評価では使用されません。
ロール・カテゴリは、ロール階層とは無関係です(ロール階層と混同しないでください)。ロール階層はアプリケーションと外部ロールの両方に適用されます。ロール階層および権限階層の詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。
ロール・カテゴリ名では大/小文字が区別されます。ロール・カテゴリの作成方法の詳細は、5.1.6項「アプリケーション・ロール・カテゴリの管理」を参照してください。