この章では、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