LDAP 変換マップ
変換マップは、データをインポートセットテーブルからターゲットテーブル (ユーザーまたはグループ) に移動します。
デフォルトの LDAP 変換マップ
| 変換マップ | ソーステーブル | ターゲットテーブル | 説明 |
|---|---|---|---|
| LDAP ユーザーインポート | [ldap_import] | [sys_user] | LDAP オンデマンドログインの一部として LDAP 認証情報からユーザーレコードを作成するためのデフォルトの変換マップ。Active Directory LDAP サーバーのマッピングが含まれています。 |
| LDAP グループインポート | [ldap_group_import] | [sys_user_group] | LDAP OU からグループレコードを作成するためのデフォルトの変換マップ。Active Directory LDAP サーバーのマッピングが含まれています。 |
カスタム LDAP 変換マップの要件
| ソーステーブル | ソースフィールド | ターゲットテーブル | ターゲットフィールド | 結合 | 説明 |
|---|---|---|---|---|---|
ldap_import |
u_source |
sys_user |
ソース | false | [u_source] フィールドは、インポートされたユーザーまたはグループの LDAP DN を識別します。システムはこのフィールドを使用して、ユーザーに LDAP 認証が必要かどうかを判断し、ユーザーのマネージャーを見つけて、ユーザーをグループに入れます。 |
ldap_import |
次のいずれかのフィールドを選択します。
|
sys_user |
user_name |
true | LDAP が Active Directory に統合されている場合は、ソースフィールドとして [u_samaccountname] を選択します。他の LDAP ディレクトリを使用する場合は、ソースフィールドとして [u_dn] または [u_cn] を選択します。 |
LDAP 変換マップと従来のインポートマップの違い
変換マップを使用して LDAP マッピング関係を指定する場合、マネージャーと部門で参照フィールドの設定方法に大きな違いがあります。
変換マップを使用する場合は、変換スクリプトを使用して参照を作成する必要があります。これは、「manager」などの LDAP 属性に関連付けられた値がマネージャーの識別名 (DN) であるためです。
追加のロジックがない場合、LDAP でのユーザーの識別名であるマネージャー名でユーザーレコードが作成されます。統合には、これらの参照の作成を容易にする変換スクリプトが含まれています。デフォルトの変換マップ「LDAP ユーザーインポート」には、これらの参照の変換スクリプトが含まれています。
- 既存のマッピング関係
- 従来のインポートマップを変換マップに更新する場合、システム LDAP アプリケーションが追加される前に存在していた LDAP マッピング関係を保持できます。LDAP サーバーには、従来のインポートマップへの参照である [マップ] フィールドがあります。注:変換マップの使用に移行する場合は、従来のインポートマップへの参照をクリアします。デフォルトでは、このフィールドは非表示になっているため、表示するようにフォームを構成する必要があります。
- LDAP インポートマップ設定
- 属性を確認して使用し、統合が LDAP ソースからインポートするフィールドを制限します。さらに、user_name フィールドをユーザーのログイン ID を含む LDAP 属性にマッピングすることが重要です。Active Directory の場合、これは通常 sAMAccountName 属性です。バイナリ属性 (objectSID や objectGUID など) をインポートして結合する場合は、カスタム変換スクリプトを作成する必要があります。注:user_name フィールドにマッピングされた値は一意である必要があります。
変換マップ (LDAP ユーザーインポートなど) を指定しない場合、統合では次のデフォルトマッピングが使用されます。
表 : 3. LDAP インポートのデフォルトマッピング ユーザーフィールドまたは変数 LDAP 属性 user_name sAMAccountName email mail phone telephoneNumber home_phone homePhone mobile_phone mobile first_name givenName last_name sn title title department department manager manager middle_name initials u_memberof groups u_member メンバー u_manager manager
LDAP データ変換
LDAP 属性に簡易データが含まれている場合、変換マップはインポートされた LDAP 属性をターゲットテーブル (ユーザーまたはグループ) にリンクします。たとえば、sAMAccountName 属性のサンプルデータは、ユーザーテーブルの [ユーザー ID] フィールドにマッピングされます。
インポートされた LDAP データが参照フィールドにマッピングされると、インスタンスは既存の一致するレコードを検索します。一致するレコードが存在しない場合、フィールドマッピングで指定されていない限り、インスタンスは参照フィールドの新しいレコードを作成します。
たとえば、ユーザーテーブルの [場所] 参照フィールドに対する LDAP 属性 l マップを想定します。インポートによって既存の場所レコード値と一致しない属性値が取り込まれるたびに、変換マップによって新しい場所レコードが作成されます。新しい場所レコードはインポートされた属性と同じ値になり、インポートされたユーザーレコードには新しい場所レコードへのリンクが含まれます。
新しいユーザーは既存のユーザーと関連付けられていないため、アドミニストレーターは通常、DN 値から新しいユーザーが作成されることを望んでいません。代わりに、アドミニストレーターは、インポートでマネージャーの既存のユーザーレコードを見つけて、新しくインポートされたユーザーに関連付けたいと考えています。LDAPUtils スクリプトインクルードには、DN を解析して既存のユーザーを検索できる setManager 関数と processManagers 関数が含まれています。最良の結果を得るには、これらの関数を使用してカスタム変換マップを作成します。
LDAP User Import 変換マップスクリプトは setManager 関数を呼び出します。
//
// The manager coming in from LDAP is the DN value for the manager.
// The line of code below will locate the manager that matches the
// DN value and set it into the target record. If you are not
// interested in getting the manager from LDAP then remove or
// comment out the line below
ldapUtils. setManager (source , target ) ;processManagers 関数を呼び出します。たとえば、[LDAP ユーザーインポート] 変換マップは、onComplete 変換スクリプトを使用して processManagers 関数を呼び出します。// It is possible that the manager for a user did not exist in the database when // the user was processed and therefore we could not locate and set the manager field. // The processManagers call below will find all those records for which a manager could // not be found and attempt to locate the manager again. This happens at the end of the // import and therefore all users should have been created and we should be able to // locate the manager at this point
ldapUtils. processManagers ( ) ;LDAP 統合でマネージャー属性を使用しない場合は、setManager および processManagers 関数呼び出しを削除するかコメントアウトします。