Oracle® Fusion Middleware Oracle Entitlements Server開発者ガイド 11gリリース2 (11.1.2.3) E67355-01 |
|
前 |
次 |
第2章「プログラムによるポリシーの作成」に記載されているアプリケーション・プログラミング・インタフェース(API)の多くは、プログラムによってポリシー・オブジェクトを管理可能なメソッドを含んでいます。この章では、それらのメソッドの使用方法について説明します。
この章には次の項目があります。
Oracle Entitlements Serverでは、管理者がすべてのポリシーおよびグローバル・オブジェクトでの作成、読取り、更新および削除(CRUD)操作を実行できます。これは、次の方法のいずれかで実行できます。
管理APIの使用(3.2項「範囲レベルを使用したポリシー・オブジェクトの管理」を参照)
管理コンソールの使用方法(『Oracle Fusion Middleware Oracle Entitlements Server管理者ガイド』を参照)
コマンド行でのWebLogic Scripting Toolの使用方法(『Oracle Fusion Middleware Oracle Entitlements Server管理者ガイド』を参照)
ポリシー・ストアには、トップ・レベルのポリシー・ストア自体と、アプリケーション(アプリケーション・ポリシー)およびポリシー・ドメインの3つの範囲レベルがあり、それらの配下でポリシーが管理されます。
PolicyStore
オブジェクトは、ポリシー・ストア全体を表します。アプリケーション・ポリシーとシステム管理ポリシーは、この範囲で管理されます。ポリシー管理アクティビティの前に、2.3.1項「ポリシー・ストアへのアクセス」
に記載されているように、PolicyStoreオブジェクトのインスタンスを取得する必要があります。ポリシー・ストアの場所へのアクセスには、アカウントとアカウントのパスワードを使用します。これらは、Oracle Platform Security Servicesの構成ファイルのjps-config.xml
に定義されています。例3-1は、この情報をインストール時にjps-config.xml
に定義する方法を示しています。
例3-1 jps-config.xmlでのポリシー・ストアの定義
<jpsConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http:// xmlns.oracle.com/oracleas/schema/jps-config-11_0.xsd"> <serviceProviders> <serviceProvider type="POLICY_STORE" name="policy.db" class="oracle.security.jps.internal.policystore.OPSSPolicyStoreProvider"> <property name="policystore.type" value="DB_ORACLE"/> <property name="repository.type" value="database"/> </serviceProvider> </serviceProviders> <serviceInstances> <serviceInstance name="policystore.db" provider="policy.db"> <property name="jdbc.url" value="jdbc:oracle:thin:@10.182.219.120:1521:mc"/> <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="bootstrap.security.principal.key" value="bootstrap"/> <property name="bootstrap.security.principal.map" value="BOOTSTRAP_JPS"/> <property name="oracle.security.jps.ldap.root.name" value="cn=farm,cn=JPSContext,cn=jpsroot"/> </serviceInstance> </serviceInstances> <jpsContexts default="default"> <jpsContext name="default"> <serviceInstanceRef ref="policystore.db"/> </jpsContext> </jpsContexts> </jpsConfig>
注意: jps-config.xml構成ファイルの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』 を参照してください。Oracle Entitlements Server固有のパラメータは、『Oracle Fusion Middleware Oracle Entitlements Server管理者ガイド』を参照してください。 |
詳細は、3.2.1項「PolicyStoreの範囲で作成されたオブジェクトの管理」を参照してください。
ApplicationPolicy
オブジェクトは、Oracle Entitlements Serverによって保護されるアプリケーションを表します。ApplicationPolicy
内では、ポリシーを管理するために使用するプログラム・オブジェクトのResourceTypeEntry
、FunctionEntry
、AppRoleEntry
およびRolePolicyEntry
が管理されます。
注意: これらのプログラム・オブジェクトは、オプションで、ApplicationPolicy 内に1つ(以上の)PolicyDomainEntry オブジェクトを作成して管理することもできます。次の箇条書きと第5章「ポリシー管理の委任」を参照してください。 |
詳細は、3.2.2項「ApplicationPolicy範囲内でのオブジェクトの管理」を参照してください。
オプションのPolicyDomainEntry
オブジェクトは、パーティションに作成することができ、ポリシー・オブジェクトや指定済のポリシー定義に対する管理ポイントとなります。PolicyDomainEntry
を1つ使用して、アプリケーションを保護するすべてのポリシーを管理するか、複数使用して必要時にポリシー・コンポーネントを編成できます。ポリシーは、その親のApplicationPolicy
オブジェクトで作成されたオブジェクトを使用して定義します。ポリシー・ドメインどうしは、親と子の関係でも互いに不可視です。したがって、あるポリシー・ドメインで管理されるリソース、権限セットおよびポリシーは、そのポリシー・ドメインのみで使用できます。ポリシー・ドメインの詳細は、第5章「ポリシー管理の委任」を参照してください。
詳細は、3.2.3項「PolicyDomainEntry範囲内でのオブジェクトの管理」を参照してください。
管理ロールは、作成された場所に応じてすべての範囲レベルで管理されます。管理ロールの作成および管理は、第5章「ポリシー管理の委任」を参照してください。
次の項では、さらに詳しい情報について説明します。
PolicyStore
オブジェクト内では、異なるアプリケーションを保護するポリシー・コンポーネントが2番目のレベルの1つまたは複数のApplicationPolicy
オブジェクト内に編成されます。2.3.2項「アプリケーション・ポリシーの作成」では、ApplicationPolicy
オブジェクトの作成方法について説明しました。また、ApplicationPolicy
オブジェクトは、PolicyStore
インタフェースのメソッドによって削除または取得できます。
注意: ApplicationPolicy オブジェクトは、Oracle Entitlements Server管理コンソールでアプリケーションとして表現されます。 |
例3-2は、Tradingという名前のApplicationPolicy
オブジェクトをdeleteApplicationPolicy()
メソッドを使用して削除する方法を示しています。
例3-2 deleteApplicationPolicy()メソッドの使用方法
PolicyStore ps = ctx.getServiceInstance(PolicyStore.class); ApplicationPolicy ap = ps.deleteApplicationPolicy("Trading");
deleteApplicationPolicy()
パラメータの値はTradingです。これはオブジェクトが最初に作成されたときに名前として定義された固有識別子です。getApplicationPolicy()
メソッドは、これと同じ名前の値を使用してApplicationPolicy
オブジェクトを取得します。さらに、getApplicationPolicies()
メソッドをコールし、ApplicationPolicySearchQuery
クラスを使用して検索条件を渡すことで多数のApplicationPolicy
オブジェクトを取得できます。
注意: ApplicationPolicy オブジェクトを削除すると、その中に作成されたすべての子オブジェクトも削除されます。 |
ApplicationPolicy
オブジェクト内では、ポリシー・コンポーネントが1つまたは複数のPolicyDomainEntry
オブジェクト内に編成されます。ApplicationPolicy
レベルで管理されるその他のコンポーネントには、リソース・タイプ、アプリケーション・ロール、ロール・ポリシーおよび拡張機能(関数および属性)があります。詳細は、次の各項を参照してください。
5.7項「ポリシー・ドメインの委任」では、ポリシー定義コンポーネントのパーティションを作成するために使用できる、オプションのPolicyDomainEntry
オブジェクトの作成方法について説明しています。また、PolicyDomainEntry
オブジェクトは、ApplicationPolicy
インタフェースのメソッドによって削除または取得できます。ポリシー・ドメインを管理するには、PolicyDomainManager
のインスタンスを取得して、適切なメソッドをコールします。例3-3は、Tradingという名前のApplicationPolicy
内で作成されたPolicyDomainEntry
の削除方法を示しています。mydomain
は、オブジェクトが最初に作成されたときに名前として定義された固有の識別子です。
例3-3 deletePolicyDomain()メソッドの使用方法
PolicyDomainManager domainMgr = app.getPolicyDomainManager(); PolicyDomainEntry pdEntry = domainMgr.deletePolicyDomain("mydomain");
例3-4はインタフェースにあるsetDescription()
およびsetDisplayName()
メソッドを使用してPolicyDomainEntry
の表示名と説明を変更する方法を示しています。
例3-4 modifyPolicyDomain()メソッドの使用方法
PolicyDomainManager domainMgr = app.getPolicyDomainManager(); PolicyDomainManager domainMgr = app.getPolicyDomainManager(); PolicyDomainEntry pdEntry = domainMgr.getPolicyDomain("mydomain"); // modify PolicyDomainEntry displayName and description pdEntry.setDescription("This is description."); pdEntry.setDisplayName("Domain Display Name"); // persist the change domainMgr.modifyPolicyDomain(pdEntry);
例3-5は、mydomain
を使用してPolicyDomainEntry
を取得する方法を示しています。mydomainは、オブジェクトが最初に作成されたときに名前として定義された固有の識別子です。
例3-5 getPolicyDomain()メソッドの使用方法
PolicyDomainManager domainMgr = app.getPolicyDomainManager(); PolicyDomainEntry PDEntry = domainMgr.getPolicyDomain("mydomain");
さらに、getPolicyDomains()
メソッドをコールし、PolicyDomainSearchQuery
クラスを使用して検索条件を渡すことで多数のPolicyDomainEntry
オブジェクトを取得できます。
2.3.3項「リソース・タイプの定義」では、ResourceTypeEntry
オブジェクトの作成方法について説明しました。また、ResourceTypeEntry
オブジェクトは、ResourceTypeManager
のインスタンスを取得し(ApplicationPolicy
インタフェースのgetResourceTypeManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。
注意: ResourceTypeEntry オブジェクトは、Oracle Entitlements Server管理コンソールでリソース・タイプとして表現されます。 |
例3-6では、TradingというApplicationPolicy
オブジェクト内のTradingResTypeという名前のResourceTypeEntry
を削除しています。
例3-6 deleteResourceType()メソッドの使用方法
//get the ResourceTypeManager ResourceTypeManager resourceTypeManager = Trading.getResourceTypeManager(); //delete the Resource Type resourceTypeManager.deleteResourceType("TradingResType", "true");
Tradingは、ResourceType
オブジェクトが作成されたApplicationPolicy
の名前です。TradingResTypeは削除するResourceType
オブジェクトの名前です。deleteResourceType()
パラメータの値は次のように定義されています。
名前 - TradingResTypeは、オブジェクトが最初に作成されたときに名前として定義された固有の識別子です。
cascadeDelete - このパラメータは、trueまたはfalseの値を取り、ResourceTypeEntry
と関連するオブジェクトの削除方法を管理します。trueの場合、ResourceTypeEntry
と、インスタンス化されたすべてのResourceEntry
オブジェクトが削除されます。falseで、ResourceEntry
インスタンスが存在する場合には、処理が失敗し、PolicyStoreOperationNotAllowedException
がスローされます。
getResourceType()
メソッドはResourceTypeEntry
を取得するために使用でき、名前によって取得することもできます。getResourceTypes()
メソッドをコールし、ResourceTypeSearchQuery
クラスを使用して検索条件を渡すことで多数のResourceTypeEntry
オブジェクトを取得できます。
2.4.1項「アプリケーション・ロールの作成」では、AppRoleEntry
オブジェクトの作成方法と、AppRoleEntryへのユーザーの割当て方法について説明しました。(次にAppRoleEntry
オブジェクトを特定のポリシーに対してプリンシパルとして指定すると、ロールに割り当てられたすべてのユーザーがそのポリシーによって管理されます。)また、AppRoleEntry
オブジェクトは、AppRoleManager
のインスタンスを取得し(ApplicationPolicy
インタフェースのgetAppRoleManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。
注意: AppRoleEntry オブジェクトは、Oracle Entitlements Server管理コンソールでアプリケーション・ロールとして表現されます。アプリケーション・ロールは、管理コンソールのナビゲーション・ツリーの「ロール・カタログ」ブランチで検索され、この配下にまとめられます。ロール・カタログは、アプリケーション・ロールとその性質の管理に関連するすべてのアクティビティをグループ化するユーザー・インタフェースです。ロール・カテゴリは管理を容易にするためにロールに割り当てることができるタグです。 |
例3-7はTradingAppRoleという名前のAppRoleEntry
をポリシー・ストアから削除しています。TradingAppは、AppRoleEntry
オブジェクトが作成されたApplicationPolicy
の名前です。
例3-7 deleteAppRole()メソッドの使用方法
//get the AppRoleManager AppRoleManager appRoleManager = Trading.getAppRoleManager(); //delete the AppRoleEntry appRoleManager.deleteAppRole("TradingAppRole", "true");
deleteAppRole()
パラメータの値は次のように定義されています。
名前 - TradingAppRoleは、オブジェクトが最初に作成されたときに名前として定義された固有の識別子です。
cascadeDelete - このパラメータは、trueまたはfalseの値を取り、AppRoleEntry
と関連するオブジェクトの削除方法を管理します。trueの場合、AppRoleEntry
が削除され、これを参照しているすべてのポリシーから取り除かれます。(ポリシーが参照しているのがそのロールのみの場合は、ポリシーも削除されます。)falseで、ロールがいずれかのポリシーで参照されている場合には、処理が失敗し、PolicyStoreOperationNotAllowedException
がスローされます。
getAppRole()
メソッドは、名前を渡すことでAppRoleEntry
を取得するために使用できます。getAppRoles()
メソッドをコールし、AppRoleSearchQuery
クラスを使用して検索条件を渡すことで多数のAppRoleEntry
オブジェクトを取得できます。さらに、modifyAppRole()
メソッドによってAppRoleEntry
を変更し、getDirectAppRoleMembers()
メソッドによってアプリケーション・ロールが直接付与されたメンバーを取得し、getDirectGrantedAppRoles()
メソッドによって特定のプリンシパルに対するアプリケーション・ロール階層を取得できます。
AppRoleEntry
の取消しは、revokeAppRole()
メソッドを使用して行えます。1つ以上のPrincipalEntry
オブジェクトへのAppRoleEntry
の付与は、grantAppRole()
メソッドを使用して静的に行うか、ロール・マッピング・ポリシーを使用して動的に行えます。
注意: ロール・マッピング・ポリシーでは、プリンシパル(ユーザー、グループ)、ターゲット(リソース、リソース名の式)および(オプションの)条件を定義できます。認可ポリシーは、アプリケーション・ロールをアクセス権限にマップするために使用します。認可ポリシーには、プリンシパル(ユーザー、グループ、アプリケーション・ロール)、ターゲット(リソース、資格セット、リソース名の式)、条件および義務を定義できます。詳細は、3.2.2.4項「ロール・マッピング・ポリシー(RolePolicyEntry)オブジェクトの管理」を参照してください。 |
アプリケーション・ロールは継承および階層も使用します。ロールは、プリンシパルがロールに割り当てられる(ロール・マッピング・ポリシーを使用)階層で作成でき、(他に構成されたポリシーにより禁止されないかぎり)子ロールにも継承されます。子のロールを基にアクションが付与されたユーザーは、そのロールの親からのアクションを継承します。親のロールを基にアクションが拒否されたユーザーは、そのロールの子のアクションも拒否されます。
2.4.2項「ロール・マッピング・ポリシーの作成」ではRolePolicyEntry
オブジェクトの作成方法について説明しました。また、RolePolicyEntry
オブジェクトは、RolePolicyManager
のインスタンスを取得し(ApplicationPolicy
インタフェースのgetRolePolicyManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。例3-8では、TellerAppというApplicationPolicy
オブジェクト内のTellerRoleMappingという名前のRolePolicyEntry
を削除する方法を示しています。
例3-8 deleteRolePolicy()メソッドの使用方法
//get the RolePolicyManager RolePolicyManager rolePolicyManager = tellerApp.getRolePolicyManager(); //delete the RolePolicyEntry rolePolicyManager.deleteRolePolicy("TellerRoleMapping");
例3-9では、modifyRolePolicy()
メソッドにオブジェクトの修正されたインスタンスを渡すことでRolePolicyEntry
を修正する方法を示しています。
例3-9 modifyRolePolicy()メソッドの使用方法
//get the RolePolicyManager RolePolicyManager rolePolicyManager = tellerApp.getRolePolicyManager(); // get the policy RolePolicyEntry rolePolicy = rolePolicyManager.getRolePolicy("TellerRoleMapping"); // change description rolePolicy.setDescription("the policy is changed!"); //persist the change rolePolicyManager.modifyRolePolicy(rolePolicy);
getRolePolicy()
メソッドは、名前を渡すことでRolePolicyEntry
を取得するために使用できます。getRolePolicies()
メソッドをコールし、RolePolicySearchQuery
クラスを使用して検索条件の配列を渡すことで多数のRolePolicyEntry
オブジェクトを取得できます。
2.4.3項「属性と関数定義の作成」では、(オプション)でポリシーの条件と義務で使用するAttributeEntry
定義とFunctionEntry
定義の作成方法について説明しました。また、これらのオブジェクトは、ExtensionManager
をコールすることで削除、変更または取得できます。次の各項では、詳細を説明します。
例3-10では、ポリシー・ストアからPhoneという名前のAttributeEntry
オブジェクトを取得しています。bankApplicationは、ExtensionManager
をインスタンス化するApplicationPolicy
オブジェクトを参照します。Phone
は、AttributeEntry
オブジェクトが最初に作成されたときに名前として定義された固有の識別子を参照します。
例3-10 getAttribute()メソッドの使用方法
//get the ExtensionManager ExtensionManager extMgr = bankApplication.getExtensionManager(); //retrieve the attribute AttributeEntry<? extends DataType> oneAttrEntry = extMgr.getAttribute("Phone");
getAttributes()
メソッドをコールし、AttributeSearchQuery
クラスを使用して検索条件を渡すことで多数のAttributeEntry
オブジェクトを取得できます。例3-11では、ApplicationPolicy
からAttributeEntry
を削除しています。
例3-11 deleteAttribute()メソッドの使用方法
//get the ExtensionManager ExtensionManager extMgr = bankApplication.getExtensionManager(); //retrieve the attribute AttributeEntry<? extends DataType> oneAttrEntry = extMgr.deleteAttribute("myattr", false);
注意: deleteAttribute() メソッドを実行する前に、AttributeEntry を参照するポリシーから該当するAttributeEntryを削除します。属性を使用中の場合は削除されず、PolicyStoreOperationNotAllowedException がスローされます。このリリースでは、cascadeDelete パラメータをfalseにする必要があります。 |
AttributeEntry
オブジェクトを変更するには、新しい変更された値を持つオブジェクトをmodifyAttribute()
メソッドを使用してExtensionManager
に渡します。オブジェクトを渡す前に、AttributeEntry
インタフェースにあるメソッドを使用して新しい変更する値を設定します。
例3-12では、ポリシー・ストアからClientTypeという名前のFunctionEntry
オブジェクトを取得しています。bankApplicationは、ExtensionManager
をインスタンス化するApplicationPolicy
オブジェクトを参照します。ClientTypeは、FunctionEntry
オブジェクトが最初に作成されたときに名前として定義された固有の識別子を参照します。
例3-12 getFunction()メソッドの使用方法
//get the ExtensionManager ExtensionManager extMgr = bankApplication.getExtensionManager(); //retrieve the function FunctionEntry oneFuncEntry = extMgr.getFunction("ClientType");
getFunctions()
メソッドをコールし、FunctionSearchQuery
クラスを使用して検索条件を渡すことで多数のFunctionEntry
オブジェクトを取得できます。例3-13では、ApplicationPolicy
からFunctionEntry
を削除しています。
例3-13 deleteFunction()メソッドの使用方法
//get the ExtensionManager ExtensionManager extMgr = bankApplication.getExtensionManager(); //remove the function extMgr.deleteFunction("ClientType", false);
FunctionEntry
オブジェクトを変更するには、新しい変更された値を持つオブジェクトをmodifyFunction()
メソッドを使用してExtensionManager
に渡します。オブジェクトを渡す前に、FunctionEntry
インタフェースにあるメソッドを使用して新しい変更する値を設定します。
2.3.4項「リソースのインスタンス化」では、ResourceTypeEntry
オブジェクトからResourceEntry
オブジェクトをインスタンス化する方法について説明しました。また、ResourceEntry
オブジェクトは、ResourceManager
のインスタンスを取得し(ApplicationPolicy
インタフェースまたは管理を委任するためにポリシー・ドメインを使用している場合はPolicyDomainEntry
インタフェースで、getResourceManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。
注意: ResourceEntry オブジェクトは、Oracle Entitlements Server管理コンソールでリソースとして表現されます。 |
例3-14は、ResourceEntry
オブジェクトの取得方法を示しています。getResource()
メソッドは、ResourceManager
インタフェースで拡張されたResourceFinder
で定義されています。このメソッドに、リソース・タイプの定義済の名前とリソースを渡すことで、ResourceEntry
が返されます。
例3-14 getResource()メソッドの使用方法
//get the ResourceManager ResourceManager resMgr = domain.getResourceManager(); //retrieve the Resource ResourceEntry checkingRes = resMgr.getResource ("WidgetType", "WidgetResource")
例3-15は、当座預金口座のResourceEntry
を削除します。domain
は、ResourceManager
を取得するPolicyDomainEntry
オブジェクトを参照します。このメソッドに、リソース・タイプの定義済の名前とリソースを渡すことで、ResourceEntry
が返されます。
例3-15 deleteResource()メソッドの使用方法
//get the ResourceManager ResourceManager resMgr = domain.getResourceManager(); //remove the Resource resMgr.deleteResource("WidgetType", "WidgetResource", true);
deleteResource()
パラメータの値は次のように定義されています。
リソース・タイプ名 - WidgetTypeは、ResourceTypeEntry
が最初に作成されたときに名前として定義された固有の識別子です。
名前 - WidgetResourceは、ResourceEntry
が最初に作成されたときに名前として定義された固有の識別子です。
cascadeDelete - このパラメータは、trueまたはfalseの値を取り、ResourceEntry
と関連するオブジェクトの削除方法を管理します。trueの場合、ResourceEntry
を参照しているポリシーからResourceEntryが削除されます。ポリシーが参照しているのがそのオブジェクトのみの場合は、ポリシーも削除されます。falseで、ResourceEntry
インスタンスが存在する場合には、処理が失敗し、PolicyStoreOperationNotAllowedException
がスローされます。
ResourceEntry
オブジェクトは、modifyResource()
メソッドをコールし、そのオブジェクト自身へのハンドルをEntryReference
および変更の配列の形式で渡すことで変更することもできます。例3-16に、これを示します。
例3-16 modifyResource()メソッドの使用方法
//get the ResourceManager ResourceManager resMgr = domain.getResourceManager(); // get resource object ResourceEntry resEntry = resMgr.get("WidgetType", "WidgetResource"); // create attrName Attribute with value of 'test' AttributeEntry attrEntry1 = new BasicAttributeEntry("testAttr", new OpssString("test")); resEntry.addResourceAttribute(attrEntry1); // persist the change resMgr.modifyResource(resEntry);
2.4.4「権限セットの定義」では、PermissionSetManager
をコールし、createPermissionSet()
メソッドを使用することで、PermissionSetEntry
オブジェクト内で1つ以上のResourceActionsEntry
オブジェクトを編成する方法について説明しています。また、PermissionSetEntry
オブジェクトは、PermissionSetManager
のインスタンスを取得し(ApplicationPolicy
インタフェースまたは管理を委任するためにポリシー・ドメインを使用している場合はPolicyDomainEntry
インタフェースで、getPermissionSetManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。
注意: PermissionSetEntry オブジェクトはOracle Entitlements Server管理コンソールで資格として表現されます。 |
例3-17は、2つのResourceActionsEntry
オブジェクトを削除することでPermissionSetEntry
を変更する方法を示しています。domain
は、ポリシーが作成され、さらにPermissionSetManager
を取得するポリシー・ドメインを参照します。
例3-17 PermissionSetEntryの変更
// get the PermissionSetManager PermissionSetManager psMgr = domain.getPermissionSetManager(); // get the PermissionSet PermissionSetEntry permSetEntry = psMgr.getPermissionSet("myPermSet"); // get the ResourceActionEntries from PermissionSet List<ResourceActionsEntry> resultResActions = permSetEntry.getResourceActionsList(); // delete the first ResourceActionsEntry object permSetEntry.deleteResourceActions(resultResActions.get(0)); // persist the change psMgr.modifyPermissionSet(permSetEntry);
例3-18は、PermissionSetEntry
オブジェクトの削除方法を示しています。
例3-18 deletePermissionSet()メソッドの使用方法
//get the PermissionSetManager PermissionSetManager psMgr = domain.getPermissionSetManager(); //remove PermissionSetEntry psMgr.deletePermissionSet("RptsPermSet", "true");
deletePermissionSet()
パラメータの値は次のように定義されています。
名前 - RptsPermSetは、オブジェクトが最初に作成されたときに名前として定義された固有の識別子です。
cascadeDelete - このパラメータは、trueまたはfalseの値を取り、PermissionSetEntry
と関連するオブジェクトの削除方法を管理します。trueの場合、PermissionSetEntry
を参照しているポリシーからPermissionSetEntryが削除されます。ポリシーが参照しているのがそのオブジェクトのみの場合は、ポリシーも削除されます。falseで、PermissionSetEntry
インスタンスが参照されている場合には、処理が失敗し、PolicyStoreOperationNotAllowedException
がスローされます。
getPermissionSet()
メソッドはPermissionSetEntry
を取得するために使用でき、名前によって取得することもできます。getPermissionSets()
メソッドをコールし、PermissionSetSearchQuery
クラスを使用して検索条件を渡すことで多数のPermissionSetEntry
オブジェクトを取得できます。modifyPermissionSet()
は、入力として使用されるPermissionSet
オブジェクトで定義された変更を永続化します。
2.3.8項「ポリシーの定義」では、PolicyRuleEntry
、ResourceActionsEntry
、PrincipalEntry
など、アクセス制御の作成に必要なすべての要素を統合することで、PolicyEntry
オブジェクトを作成する方法について説明しました。PolicyManager
のインスタンスを取得したら、createPolicy()
メソッドを使用します。また、PolicyEntry
オブジェクトは、PolicyManager
のインスタンスを取得し(ApplicationPolicy
インタフェースまたは管理を委任するためにポリシー・ドメインを使用している場合はPolicyDomainEntry
インタフェースで、getPolicyManager()
を使用)、適切なメソッドをコールすることによって削除、変更および取得できます。
例3-19は、PolicyEntry
の表示名と表示パラメータの値を変更する方法を示しています。domain
は、ポリシーが作成され、さらにPolicyManager
を取得するポリシー・ドメインを参照します。
例3-19 modifyPolicy()メソッドの使用方法
// get the Policy PolicyManager policyMgr = domain.getPolicyManager(); PolicyEntry policyEntry = policyMgr.getPolicy("mypolicy"); // update PolicyEntry description and displayName policyEntry.setDescription("updated description"); policyEntry.setDisplayName("updated display name"); // persist the change policyMgr.modifyPolicy(policyEntry);
例3-20は、deletePolicy()
のメソッドの使用方法を示しています。Bank Policyは、PolicyEntry
が作成されたときに名前パラメータの値として定義された固有の識別子を参照します。
例3-20 deletePolicy()メソッドの使用方法
PolicyManager policyMgr = domain.getPolicyManager(); policyManager.deletePolicy("BankPolicy");
getPolicy()
メソッドはPolicyEntry
を取得するために使用でき、名前によって取得することもできます。getPolicies()
メソッドをコールし、PolicySearchQuery
クラスを使用して検索条件を渡すことで多数のPolicyEntry
オブジェクトを取得できます。modifyPolicy()
は、入力として使用されるPolicyEntry
オブジェクトで定義された変更を永続化します。
PolicyEntry
オブジェクトを検索するには、PolicySearchQuery
クラスを使用します。問合せを作成して、次のパラメータに基づいて検索できます。
名前
表示名
説明
プリンシパル
権限セット
義務
属性
関数
詳細は、Oracle Fusion Middleware Oracle Entitlements Server管理Java APIリファレンスを参照してください。
ポリシーのパーティション化が必要な場合には、ポリシー定義のコンポーネントを1つ以上のPolicyDomainEntry
オブジェクト内で編成できます。このコンポーネントにはリソース、権限セット、ポリシーなどがあります。
注意: PolicyDomainEntry の作成はオプションです。ポリシーのパーティション化が必要ない場合は、ApplicationPolicy の範囲でポリシー定義コンポーネントを管理してください。 |
次の項では、ApplicationPolicy
の範囲でコンポーネントを管理する方法について説明します。後からパーティション化するためにPolicyDomainEntry
を作成済の場合には、これらの同じコンポーネントをPolicyDomainEntry
の範囲で管理できます。
PolicyDomainEntry
の使用に関する情報は、5.7項「ポリシー・ドメインの委任」を参照してください。