以前のバージョンのOracle Identity Managerでは、ロール名(データベースのUGP.UGP_NAME)が一意です。エンタープライズの規模が大きい場合、数多くのロールが存在する可能性があるため、この制限がありますが、管理者は名前が同じで目的の異なる複数のロールをOracle Identity Managerで作成する必要がある場合があります。
Oracle Identity Managerは、LDAP同期を有効にしてインストールできます。リコンシリエーションによってLDAPからロールを取得するときに、複数のロールの名前が同じである場合があります。LDAPでは、ロールが2つの異なる組織単位(OU)に配置されている場合、同じ名前を持つ2つのロールがサポートされます。
Oracle Identity Manager 11gリリース1(11.1.1)では、同じ名前を持つ2つのロールを処理するネームスペースが導入されています。同じ名前を持つロールは、ネームスペースが異なる場合にサポートされます。ただし、同じネームスペースの同じ名前を持つ複数のロールはサポートされていません。
LDAPをOracle Identity Managerと統合すると、ネームスペースはOUにマッピングします。デフォルトの構成では、Defaultと呼ばれるネームスペースが1つだけあるため、ロール名は一意です。複数のネームスペースを構成するには、XMLファイルLDAPContainerRules.xmlを作成し、このファイルをメタデータ・ストア(MDS)にロードする必要があります。LDAPContainerRules.xmlでは、ロール属性に基づきロールのネームスペースも指定します。
LDAP同期が有効であり、ユーザーを作成する場合は、プラグインによってユーザーを作成するコンテナが決定されます。同様に、ロールを作成する場合は、このプラグインによって、ロールを作成するコンテナが決定されます。この場合、Oracle Identity Managerがoracle.iam.ldapsync.LDAPContainerMapperインタフェースを実装するプラグインを呼び出します。ユーザー/ロールのすべての属性がこのプラグインに渡され、プラグインはLDAPコンテナのドメイン名(DN)を返します。独自のプラグインを記述し、Oracle Identity Managerにこのプラグインを登録して、LDAPContainerMapperPluginシステム・プロパティを設定することによってこのプラグインを使用するようOracle Identity Managerを構成できます。このシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する説明を参照してください。
Oracle Identity Managerでは、LDAPに同期化されるユーザーまたはロールの属性に基づいてユーザー/ロールのLDAPコンテナを決定するデフォルト・プラグインが提供されます。このデフォルト・プラグインは、XMLファイルからルールを読み取り、LDAPコンテナを決定します。XMLファイルは/db/LDAPContainerRules.xmlとしてMDSにデプロイされる必要があります。Oracle Identity ManagerをLDAP同期を有効にしてインストールすると、インストーラによってユーザーおよびロールのコンテナ値を要求されます。これらの値は、式がDefaultのコンテナの/db/LDAPContainerRules.xmlファイルに格納されています。次に、例を示します。
<container-rules> <user> <rule> <expression>Country=US, Locality Name=AMER</expression> <container>l=amer,dc=oracle,dc=com</container> </rule> <rule> <expression >Country=IN, Locality Name=APAC</expression> <container>l=apac,dc=oracle,dc=com</container> </rule> <rule> <expression>Default</expression> <container>l=users,dc=oracle,dc=com</container> </rule> </user> <role> <rule> <expression>Role Description=AMER</expression> <description>AMER</description> <container>l=amer,ou=role,dc=oracle,dc=com</container> </rule> <rule> <expression >Role Description=APAC</expression > <description>APAC</description> <container>l=apac,ou=role,dc=oracle,dc=com</container> </rule> <rule> <expression>Default</expression> <description>Default</description> <container>l=roles,dc=oracle,dc=com</container> </rule> </role> </container-rules>
LDAPContainerRules.xmlファイルでは、各ルールに次のセクションが含まれています。
expression: LDAPのネームスペースおよびOUの検索に使用する実際のルールを指定します。
ユーザー/ロールの属性に基づいて<expression>タグが定義されている必要があります。<expression>タグでは、「次と等しい」(=)演算子のみがサポートされます。この例に示すように式は複数の属性に基づくことができ、LDAPコンテナはすべての定義済属性のAND演算子に基づいて決定されます。いずれのルールも満たされていない場合、ユーザーまたはロールは式がDefaultのコンテナに配置されます。
description: Role Namespace属性に使用されるネームスペースです。
デフォルトの式に関連付けられている説明(ネームスペース)は、常にDefaultを使用します。デフォルトでは、ロールには意味のある式を作成するための属性が数多くありません。このため、Role Location属性など、新しいUser Defined Field(UDF)属性を追加する必要があります。この例では、Role Description属性を使用してルールが定義されています。
container: LDAPでユーザーまたはロールを作成する場所を確認するために使用するOUです。
属性Country=USおよびLocality Name=AMERを使用してユーザーを作成すると仮定します。このユーザーはコンテナl=amer,dc=oracle,dc=comに作成されます。ユーザーがCountry=FranceおよびLocality Name=FRに作成される場合は、これら2つの属性に一致する式がなく、デフォルト・コンテナが選択されるため、このユーザーはコンテナl=users,dc=oracle,dc=comに作成されます。