この章では、LDAPv3準拠ディレクトリ・サーバーでのコネクタの使用に関する次の情報を説明します。
ノート:
この章では、LDAPv3準拠ターゲット・システムの例としてOpenLDAPサーバーを使用します。この章の例を、ご使用のLDAPv3準拠ディレクトリ・サーバーに合せて調整する必要があります。
LDAPv3ターゲット・システムにセキュアな通信を提供するには、Oracle Identity Manager、コネクタ・サーバーおよびLDAPv3ターゲット・システムの間でSSLを構成します。
詳細は、「コネクタのSSLの構成」を参照してください。
ノート:
前提条件として、OpenLDAPサーバー(または、ご使用のLDAPv3準拠のディレクトリ・サーバー)のインストールと構成が完了している必要があります。この章の例では、baseDNとしてdc=example,dc=com、管理者アカウントとしてcn=admin,dc=example,dc=comが使用されます。
コネクタをインストールするときに、表8-1のパラメータを設定してOpenLDAPという名前の新しいITリソース・インスタンスを作成します。
表8-1 OpenLDAPサーバー・ターゲット・システムのITリソースのパラメータ
| パラメータ | 説明 |
|---|---|
host |
OpenLDAPサーバーのホスト名またはIPアドレス |
port |
OpenLDAPサーバー・ポート。 |
ssl |
ターゲット・システムとの通信をSSLで保護する必要があるかどうかを指定します。 OpenLDAPサーバーの構成方法に応じて、trueまたはfalseを指定します。 |
Configuration Lookup |
リコンシリエーションおよびプロビジョニング時に使用される構成情報を格納する参照定義の名前。 Lookup.LDAP.Configurationを指定します。 |
baseContexts |
ターゲット・システムでの操作のためのベース・コンテキスト。 サンプル値: "dc=example,dc=com" |
credentials |
OpenLDAPサーバーの設定時に使用したパスワード。 |
principal |
OpenLDAPサーバー・ターゲット・システムで操作を実行するためのバインドDN。 サンプル値: cn=admin,dc=example,dc=com |
この項では次の内容について説明します。
メインの構成参照であるLookup.LDAP.Configurationは、OpenLDAPサーバーに対して変更する必要がある構成パラメータを含みます。
まず、Lookup.LDAP.Configuration参照のentryUUIDをuidAttributeに設定します。OpenLDAPはentryUUIDを使用するためです。
ノート:
Lookup.LDAP.Configurationは、コネクタの動作を変更できる多くの構成プロパティを含みます。構成オプションの詳細は、「Lookup.LDAP.Configuration」を参照してください。ただし、最も重要な構成プロパティは、この項で説明するuidAttributeです。
コネクタでプロビジョニングを実行できるように、次の参照リコンシリエーションを構成します。プロビジョニング・フォームでそれらの値が使用されるためです。
このジョブは、ターゲット・リソースで既存のすべての組織単位を検索し、Lookup Nameジョブ・パラメータに構成された参照(デフォルトではLookup.LDAP.Organization)にリコンサイルします。
Code Key Attributeジョブ・パラメータは、参照のコード・キーの値として使用されるLDAP属性を指定します。OpenLDAPではデフォルト値dnを変更する必要はありません。同様に、Decode Attributeジョブ・パラメータも変更しないでください。デフォルト値ouが適切です。
Object Typeジョブ・パラメータはデフォルトでOUに設定されていることに注意してください。コネクタ・バンドルはこの値をorganizationalUnitオブジェクト・クラスに変換します。したがって、OpenLDAPに定義されている組織単位にorganizationUnitオブジェクト・クラスを割り当てる必要があります。
つまり、必要となるのはIT Resource Nameジョブ・パラメータをOpenLDAPに設定することだけです。
このタスクを実行すると、コネクタ・バンドルは、(&(objectClass=top)(objectClass=organizationalUnit))のようなLDAPフィルタを使用して検索し、属性dnおよびouがそれぞれLookup.LDAP.Configuration参照のコード・キー値およびデコード値として使用されます。
このセクションには次のトピックが含まれます:
OpenLDAPではデフォルト構成が適切に機能するため、プロビジョニングを実行するために何も変更する必要はありません。
新しいLDAP Userリソース・オブジェクトを作成するとき、Oracle Identity ManagerはLDAP Userプロセスを使用し、Create Userプロセス・タスクを起動します(このタスクがadpLDAPCREATEOBJECTアダプタを使用します)。
このアダプタは、すべてのICFベース・コネクタに共通して実装されているICProvisioningManager#createObjectメソッドを呼び出します。ICProvisioningManagerは、ICFコネクタ・バンドルを検索して構成し、Lookup.LDAP.UM.ProvAttrMap参照に基づいてフォーム・フィールドをICF属性にマップし、CreateApiOp#create ICFメソッドを起動します。このコネクタ・バンドル・コードが、OpenLDAPでのオブジェクトの作成を実際に処理します。
Lookup.LDAP.UM.ProvAttrMapには次のエントリがあることに注意してください。
NsuniqueID:__UID__
entryUUIDがUID属性として使用されるように構成したため、Nsuniqueフォーム・フィールド属性(非表示として構成)はオブジェクト作成によりentryUUID値で更新されます。同様のマッピングが、すべてのグループと組織単位に対して存在しています。このフィールドはリコンシリエーション一致ルールで使用されます。
リソース・オブジェクトの更新も同様の方法で処理されます。LDAP Userプロセスに含まれるUD_LDAP_USR Updatedプロセス・タスクは、複数のフィールドを変更すると起動されます。つまり、すべての変更は1つのCreateApiOp#create操作を起動することで処理されます。
LDAPユーザー・プロビジョニングでは、2つの複数値属性GroupとRoleがデフォルトでサポートされます。つまり、次の2つの子表がUD_LDAP_USR表に定義されています。
UD_LDAP_GRP (グループ用)
UD_LDAP_ROL (ロール用)
ノート:
これらの機能をターゲット・ディレクトリが次の標準的な方法で実装する場合のみ、コネクタでロールおよびグループの概念がサポートされます。
ロール用: ユーザーのロールを表すユーザー・オブジェクトに複数値属性が追加される。
グループ用: グループのメンバーを表すグループ・オブジェクトに複数値属性が追加される。
OpenLDAPではロールはサポートされないため、使用できるのはグループだけです。
デフォルトでサポートされないLDAP属性を追加する必要がある場合は、「コネクタの機能拡張」で説明するステップを実行します。
グループ・プロビジョニングは、LDAP Groupリソース・オブジェクトをOracle Identity Managerの組織にプロビジョニングすることにより、Oracle Identity Managerで実行されます。
コネクタは、グループのオブジェクト・クラスとしてgroupOfUniqueNamesを使用します。OpenLDAPでは、uniqueMember属性に値を設定する必要があります。コネクタで提供されるのは、Lookup.LDAP.Group.ProvAttrMapに構成された4つの属性(container、cn、__NAME__および__UID__)であるため、グループ・プロビジョニングが次の例外で終了します。
object class 'groupOfUniqueNames' requires attribute 'uniqueMember'
この問題を解決するには、次のいずれかを実行します。
uniqueAttributeが必要でなくなるように、OpenLDAPでgroupOfUniqueNamesオブジェクト・クラス・スキーマを更新します。ただし、これはOpenLDAPでは推奨されません。
次のエントリをLookup.LDAP.Group.ProvAttrMapに追加して、グループの作成または更新のたびにOracle Identity ManagerがuniqueMember属性値を提供するように構成します。
uniqueMember: uniqueMember='cn=admin,dc=example,dc=com'
このエントリにより、管理ユーザーが、Oracle Identity Managerによってプロビジョニングされるすべてのグループのメンバーになります。デプロイメントによってはこれが望ましくないことがあります。
デフォルトでサポートされないLDAP属性を追加する必要がある場合は、「コネクタの機能拡張」で説明するステップを実行します。
組織単位プロビジョニングは、LDAP Organisation Unitリソース・オブジェクトをOracle Identity Managerの組織にプロビジョニングすることにより、Oracle Identity Managerで実行されます。
「Organizational Unit (OU) Lookup Reconciliation」で説明したように、コネクタは組織単位プロビジョニングでorganizationalUnitオブジェクト・クラスを使用します。OpenLDAP OUプロビジョニングを実行するために構成を変更する必要はありません。
デフォルトでサポートされないLDAP属性を追加する必要がある場合は、「コネクタの機能拡張」で説明するステップを実行します。
このセクションには次のトピックが含まれます:
OpenLDAPではデフォルト構成が適切に機能するため、OpenLDAPをIT Resource Nameとして設定するだけです。modifyTimestamp属性は、OpenLDAPで機能するIncremental Recon Attributeとしてデフォルトで構成されています。
Lookup.LDAP.UM.ReconAttrMapには次のエントリがあることに注意してください。
NsuniqueID: __UID__
entryUUIDがuidAttributeとして構成されているため、entryUUID値がNsuniqueIDフィールドに格納されます。このフィールドもリコンシリエーション一致ルールで使用されます。
ノート:
ご使用のLDAPv3サーバーでmodifyTimestampがサポートされるかどうかを確認します。modifyTimestampがサポートされない場合は、Incremental Recon Attributeを削除してください。スケジュール済ジョブは常に完全リコンシリエーションを実行します。
リコンシリエーションにカスタム属性を追加する必要がある場合は、「ターゲット・リソースのリコンシリエーション用のカスタム・フィールドの追加」を参照してください。
このジョブもデフォルト設定で機能します。必要となるのは、IT Resource NameにOpenLDAPを設定することだけです。
信頼できるリコンシリエーションの場合は、次のように別のITリソースを作成する必要があります。
IT Resource Nameジョブ・パラメータをOpenLDAP Trustedに設定するだけで、このジョブをOpenLDAPで実行できます。
IT Resource Nameジョブ・パラメータをOpenLDAPに設定するだけで、このジョブをOpenLDAPで実行できます。
IT Resource Nameジョブ・パラメータをOpenLDAPに設定するだけで、このジョブをOpenLDAPで実行できます。
IT Resource Nameジョブ・パラメータをOpenLDAPに設定するだけで、このジョブをOpenLDAPで実行できます。
次のリコンシリエーション・ジョブはOpenLDAPでは使用できません。OpenLDAPでは変更ログとロールがサポートされないためです。
Group Sync Reconciliation
Organizational Unit (OU) Sync Reconciliation
Role Lookup Reconciliation
Role Search Delete Reconciliation
Role Search Reconciliation
Role Sync Reconciliation
User Sync Reconciliation