7 複数ディレクトリのアイデンティティ・ストアの構成
この章のトピックは、次のとおりです:
7.1 アイデンティティ・ストアとしての複数ディレクトリの構成の概要
この章では、2つの複数ディレクトリ・シナリオ用にOracle Virtual Directoryを構成する方法について説明します。どちらのシナリオでも、一部のユーザー・データはActive Directoryなどのサード・パーティ・ディレクトリに存在し、その他のユーザー・データはOracle Internet Directoryに存在します。
どちらのシナリオでも、Oracle Virtual Directoryを使用して、Oracle Identity Managementの各コンポーネントが解釈できる単一の統合ビューにすべてのアイデンティティ・データを提供します。
これらのシナリオは次のとおりです。
-
分割プロファイル: 分割プロファイルまたは分割ディレクトリ構成は、アイデンティティ・データを複数のディレクトリ(場合によっては別々の場所にある)に格納する構成です。分割プロファイルは、特定のスキーマ要素をサポートするためにディレクトリ・スキーマを拡張する必要があるが、サード・パーティのアイデンティティ・ストアでスキーマを拡張できない、または拡張したくない場合に使用します。この場合、拡張属性を格納するシャドウ・ディレクトリとしてOracle Internet Directoryをデプロイします。詳細は、「アイデンティティ・ストアとしての複数ディレクトリの構成: 複数ディレクトリに別個のユーザーおよびグループを格納」を参照してください。(一方、スキーマを拡張できる場合は、Access Manager用のディレクトリ・スキーマの拡張に関する項で説明している方法を使用してください。)
-
別個のユーザーおよびグループの格納: もう1つのマルチディレクトリ・シナリオは、内部ユーザーと外部ユーザーなど、別個のユーザーおよびグループを格納するものです。この構成では、Oracle固有のエントリおよび属性がOracle Internet Directoryに格納されます。Fusion Applications固有の属性を持つエントリなど、エンタープライズ固有のエントリは、Active Directoryに格納されます。詳細は、「アイデンティティ・ストアとしての複数ディレクトリの構成: 複数ディレクトリに別個のユーザーおよびグループを格納」を参照してください。
この章では、Oracle Internet Directory以外のエンタープライズ・ディレクトリとしてActive Directoryが選択されています。このソリューションは、エンタープライズ・アイデンティティ・ストアとして1つ以上のActive Directoryを持つすべてのエンタープライズに適用できます。
7.2 アイデンティティ・ストアとしての複数ディレクトリの構成: 分割プロファイル
この項では、アイデンティティ・ストアとして複数のディレクトリを構成する方法を説明します。Active Directoryスキーマが拡張できない場合は、Oracle Internet Directoryをシャドウ・ディレクトリとして使用し、これらの属性を格納します。Oracle Virtual Directoryは、これらを一緒にリンクして、単一の統合DITビューをクライアントに提示します。これは、分割プロファイルまたは分割ディレクトリ構成と呼ばれます。この構成では、Oracle固有の属性とOracle固有のエンティティがすべて、Oracle Internet Directoryに作成されます。
この項では、次の項目について説明します。
7.2.1 アイデンティティ・ストアとしての複数ディレクトリの構成の前提条件
このデプロイメント・トポロジには、次の前提と規則が適用されます。
-
Oracle Internet Directoryは、Fusionアイデンティティ・ストアを格納します。これは、Oracle Internet DirectoryがFusion Application固有のすべてのアーティファクトのストアであることを意味します。アーティファクトには、Fusion Applicationで使用されるエンタープライズ・ロール・セットやFusion Applicationで要求される一部のユーザー属性が含まれます。その他のストアはすべて、エンタープライズ・アイデンティティ・ストアと呼ばれます。
-
エンタープライズは複数のLDAPディレクトリを含んでいます。それぞれのディレクトリに、別個のユーザーおよびロールのセットが格納されています。
-
エンタープライズ・ポリシーは、Fusion Application固有の属性など、特定のユーザー属性がエンタープライズ・ディレクトリに格納できないことを指定します。拡張属性はすべて、シャドウ・ディレクトリと呼ばれる別個のディレクトリに格納する必要があります。Active Directoryではスキーマを拡張できないので、このシャドウ・ディレクトリはOracle Internet Directoryであることが必要です。
-
ユーザー・ログインIDは、ディレクトリ全体で一意です。これらのディレクトリ間で、ユーザー・ログインIDの重複はありません。
-
Oracle Identity Managementは、細分化された認可を行いません。Oracle Identity Managementのマッピング・ルールで、ディレクトリの1つの特定サブツリーを使用することが許可されている場合は、LDAPディレクトリのそのサブツリー内でCRUD (作成、読取り、更新、削除)操作をすべて実行できます。Oracle Identity Managementに対してサブツリー内のユーザー・データの読取りを可能にし、サブツリー内のユーザーの作成または削除を不可にする方法はありません。
-
Active Directoryディレクトリの1つに含まれるメンバーがOracle Internet Directoryグループに所属できるように、Oracle Internet Directoryでは参照整合性をオフにする必要があります。ユーザーのグループ・メンバーシップは、参照整合性のあるディレクトリ間では維持されません。
7.2.2 リポジトリの説明
この項では、アイデンティティ・ストアのアーティファクトについて説明し、様々なエンタープライズ・デプロイメントの要件に基づいてActive DirectoryとOracle Internet Directoryの間でアーティファクトを分散する方法を示します。
アイデンティティ・ストアに格納されるアーティファクトは、次のとおりです。
-
アプリケーションID: これらは、相互に通信するアプリケーションを認証するために必要なアイデンティティです。
-
シードされたエンタープライズ・ロール: これらは、デフォルトの機能に必要なエンタープライズ・ロールまたはLDAPグループ・エントリです。
-
Oracle Identity Managementによってプロビジョニングされたエンタープライズ・ロール: これらは実行時ロールです。
-
エンタープライズ・ユーザー: これらは、エンタープライズの実際のユーザーです。
-
エンタープライズ・グループ: これらは、エンタープライズにすでに存在するロールおよびグループです。
分割プロファイル・デプロイメントでは、Active DirectoryとOracle Internet Directoryの間でアイデンティティ・ストアのアーティファクトを次のように分散できます。
-
Oracle Internet Directoryは、エンタープライズ・ロールのリポジトリです。具体的には、Oracle Internet Directoryには次のものが格納されます。
-
アプリケーションID
-
シードされたエンタープライズ・ロール
-
Oracle Identity Managementによってプロビジョニングされたエンタープライズ・ロール
-
-
Active Directoryは次のもののリポジトリです。
-
エンタープライズ・ユーザー
-
エンタープライズ・グループ(Oracle Identity ManagementまたはFusion Applicationには認識されない)
-
次の制限が適用されます。
-
Active DirectoryユーザーはOracle Internet Directoryグループのメンバーである必要があります。
-
Active Directoryのグループはまったく公開されません。Oracleアプリケーションは、Oracleによって作成されたエンタープライズ・ロールのみを管理します。Active Directoryのグループは、Oracle Identity ManagementやFusion Applicationには認識されません。
7.2.3 Oracle Internet Directoryのシャドウ・ディレクトリとしての設定
Fusion Application固有の属性など特定の属性を格納するためのシャドウ・ディレクトリとしてOracle Internet Directoryを使用する場合は、シャドウ属性を格納するためにOracle Internet Directory内で別個のコンテナを使用します。
-
シャドウ・エントリのコンテナ(
cn=shadowentries
)は、ユーザーおよびグループのコンテナdc=mycompany,dc=com
の親とは別個のDITに格納されている必要があります(図7-1を参照)。 -
Oracle Internet Directory内で
dc=mycompany,dc=com
に対して構成されているものと同じACLを、cn=shadowentries
に対しても構成する必要があります。この構成を実行するには、ldapmodify
コマンドを使用します。構文は次のとおりです。ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
次に、
ldapmodify
で使用するためのサンプルLDIFファイルを示します。dn: cn=shadowentries changetype: modify add: orclaci orclaci: access to entry by group="cn=RealmAdministrators,cn=groups,cn=OracleContext,dc=mycompany,dc=com" (browse,add,delete) orclaci: access to attr=(*) by group="cn=RealmAdministrators,cn=groups,cn=OracleContext,dc=mycompany,dc=com" (read, write, search, compare) orclaci: access to entry by group="cn=OIMAdministrators,cn=groups,dc=mycompany,dc=com" (browse,add,delete) orclaci: access to attr = (*) by group="cn=OIMAdministrators,cn=groups,dc=mycompany,dc=com" (search,read,compare,write) - changetype: modify add: orclentrylevelaci orclentrylevelaci: access to entry by * (browse,noadd,nodelete) orclentrylevelaci: access to attr=(*) by * (read,search,nowrite,nocompare)
-
Oracle Internet Directoryをシャドウ・ディレクトリとして使用するディレクトリが複数ある場合は、ディレクトリごとに異なるシャドウ・コンテナを作成する必要があります。コンテナ名は、これがシャドウ・エントリとなる特定のディレクトリが一意に識別されるように選択できます。
7.2.4 ディレクトリ構造の概要-シャドウ結合
図7-1は、プライマリ・ディレクトリおよびシャドウ・ディレクトリのディレクトリ構造を示しています。コンテナcn=reservation
、cn=appIDUsers
、cn=FusionGroups
およびcn=DataRoleGroups
は、Fusion Applicationに固有です。
図7-1 ディレクトリ構造
図7-2は、ユーザー・アプリケーションまたはクライアント・アプリケーションにDITがどのように現れるかを示しています。コンテナcn=appIDUsers
、cn=FusionGroups
およびcn=DataRoleGroups
は、Fusion Applicationに固有です。
図7-2 DITのクライアント・ビュー
図7-3に、アダプタとプラグインをまとめます。コンテナcn=appIDUsers
およびcn=FusionGroups
は、Fusion Applicationに固有です。
図7-3 アダプタおよびプラグインの構成
7.2.5 分割プロファイルのOracle Virtual Directoryアダプタの構成
図7-2に示したデータのクライアント側でのビューを作成するには、この項のステップに従って、Oracle Virtual Directory内で複数のアダプタを構成する必要があります。
idmConfigTool
を使用すると、この構成を容易にするアダプタを作成できます。
関連項目:
Oracle Directory Services Managerを使用したアダプタの表示方法については、第A.1項「ODSMを使用した分割プロファイルのOracle Virtual Directoryアダプタの検証」を参照してください。
idmConfigTool
を使用してアダプタを作成するには、IDMHOST1で次のタスクを実行します。
7.2.6 グローバル統合変更ログ・プラグインの構成
すべての変更ログ・アダプタからの変更ログ・エントリを処理するために、グローバル・レベル統合変更ログ・プラグインをデプロイします。
- Webブラウザで、Oracle Directory Services Manager (ODSM)にアクセスします。
- Oracle Virtual Directoryインスタンスに接続します。
- ホーム・ページで、「拡張」タブをクリックします。拡張ナビゲーション・ツリーが表示されます。
- グローバル・プラグインの展開
- 「プラグインの作成」ボタンをクリックします。「プラグイン」ダイアログ・ボックスが表示されます。
- 「名前」フィールドにプラグインの名前を入力します。
- リストからプラグイン・クラスConsolidatedChglogPluginを選択します。
- 「OK」をクリックします。
- 「適用」をクリックします。
7.2.7 Oracle Virtual Directory変更ログの検証
変更ログ・アダプタが機能していることを検証するには、次のコマンドを実行します。
$IDM_ORACLE_HOME/bin/ldapsearch -p 6501 -D cn=orcladmin -q -b 'cn=changelog' -s base 'objectclass=*' lastchangenumber
このコマンドは、次のような変更ログの結果を戻します。
Please enter bind password: cn=Changelog lastChangeNumber=changelog_OID:190048;changelog_AD1:363878
ldapsearch
が変更ログの結果を戻さない場合は、変更ログ・アダプタの構成を再確認してください。
7.3 アイデンティティ・ストアとしての複数ディレクトリの構成: 複数ディレクトリに別個のユーザーおよびグループを格納
この構成では、Oracle固有エントリをOracle Internet Directoryに格納し、エンタープライズ固有エントリをActive Directoryに格納します。必要に応じて、Active Directoryスキーマを拡張します。Oracle® Fusion Middleware Oracle Identity and Access Managementエンタープライズ・デプロイメント・ガイドのOracle Access ManagerとOracle Identity Governanceで使用するためのActive Directoryの構成に関する項を参照してください。
ノート:
使用されるOracle Internet Directoryは、ポリシー・ストアのOracle Internet Directoryであるとはかぎりません。理論的には、Active Directory以外のディレクトリを第2のディレクトリとして使用できます。便宜上、この項ではポリシー・ストアのOracle Internet Directoryについて言及します。
次のような条件であるとします。
-
エンタープライズ・ディレクトリ・アイデンティティ・データが、1つ以上のディレクトリ内にあります。ユーザーおよびグループのアプリケーション固有の属性は、エンタープライズ・ディレクトリに格納されます。
-
アプリケーション固有のエントリは、アプリケーション・ディレクトリに格納されます。AppIDおよびエンタープライズ・ロールは、アプリケーション・ディレクトリに格納されます。
この項では、次の項目について説明します。
7.3.1 複数ディレクトリに別個のユーザーおよびグループを格納するためのディレクトリ構造の概要
図7-4は、ここで内部と外部としてリストされている2つのディレクトリのディレクトリ構造を示しています。コンテナcn=appIDUsers、cn=FusionGroupsおよびcn=RGX_FusionGroupsはFusion Applicationに固有です。
図7-4 ディレクトリ構造
Oracle Virtual Directoryでは、図7-5に示すように、複数のディレクトリがユーザーまたはクライアント・アプリケーションには単一のDITのように表示されます。コンテナcn=appIDUsers、cn=FusionGroupsおよびcn=RGX_FusionGroupsはFusion Applicationに固有です。
図7-5 DITのクライアント・ビュー
図7-6は、アダプタ構成の概要を示しています。クラスinetOrgPerson
、orclIDXPerson
およびorclIDXGroup
と、コンテナcn=appIDusers
およびcn=fusionGroups
は、Fusion Applicationに対してのみ必要です。
図7-6 構成の概要
7.3.2 複数ディレクトリに別個のユーザーおよびグループを格納するためのOracle Virtual Directoryアダプタの構成
以降の項で説明するとおり、LDAPHOST1とLDAPHOST2でそれぞれ実行されているOracle Virtual Directoryインスタンスでユーザー・アダプタを作成します。:
7.3.2.1 エンタープライズ・ディレクトリ・アダプタの作成
エンタープライズ・ディレクトリ用のOracle Virtual Directoryアダプタを作成します。作成されるアダプタのタイプは、バックエンド・ディレクトリがOracle Internet Directoryに存在するのか、Active Directoryに存在するのかによって異なります。
idmconfgTool
を使用すると、Oracle Internet DirectoryおよびActive Directory用のOracle Virtual Directoryユーザーおよび変更ログ・アダプタを作成できます。
関連項目:
Oracle Directory Services Managerを使用したアダプタの表示方法については、第A.1項を参照してください。
Oracle Identity Managementにはアダプタが必要です。Oracle Virtual Directoryを使用してOracle Internet Directoryに接続することを強くお薦めします。ただしこれは必須ではありません。
idmconfgTool
を使用してアダプタを作成するには、IDMHOST1で次のタスクを実行します。
トポロジ内の各Oracle Virtual Directoryで、プロパティ・ファイルのovd.host
に適切な値を使用してこのコマンドを実行します。
7.3.2.2 アプリケーション・ディレクトリ・アダプタの作成
アプリケーション・ディレクトリ用のOracle Virtual Directoryアダプタを作成します。アプリケーション・ディレクトリのバックエンド・ディレクトリは常にOracle Internet Directoryです。
idmconfgTool
を使用すると、Oracle Internet DirectoryおよびActive Directory用のOracle Virtual Directoryユーザーおよび変更ログ・アダプタを作成できます。Oracle Identity Managementにはアダプタが必要です。Oracle Virtual Directoryを使用してOracle Internet Directoryに接続することを強くお薦めします。ただしこれは必須ではありません。
そのためには、IDMHOST1で次のタスクを実行します。
トポロジ内の各Oracle Virtual Directoryで、プロパティ・ファイルのovd.host
に適切な値を使用してこのコマンドを実行します。