LDAP 変換マップ

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:8分
  • 変換マップは、データをインポートセットテーブルからターゲットテーブル (ユーザーまたはグループ) に移動します。

    LDAP 統合では、標準のインポートセットと変換マップが使用されます。カスタム LDAP 変換マップを作成することもできます。
    重要:
    カスタム LDAP 変換マップを選択するか作成するかにかかわらず、一連のソースおよびターゲットテーブルに対して 1 つのアクティブな変換マップが必要です。一致するフィールドに対して結合しない限り、同じソーステーブルとターゲットテーブルに対して複数の変換マップを有効にすると、ターゲットテーブルに重複するエントリが生成される可能性があります。

    デフォルトの LDAP 変換マップ

    デフォルトでは、LDAP データの変換マップは 2 つあります。
    表 : 1. デフォルトの 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 変換マップの要件

    カスタム変換マップを作成する場合、変換マップは次のマッピング要件を満たす必要があります。
    表 : 2. カスタム LDAP 変換マップの要件
    ソーステーブル ソースフィールド ターゲットテーブル ターゲットフィールド 結合 説明
    ldap_import u_source sys_user ソース false [u_source] フィールドは、インポートされたユーザーまたはグループの LDAP DN を識別します。システムはこのフィールドを使用して、ユーザーに LDAP 認証が必要かどうかを判断し、ユーザーのマネージャーを見つけて、ユーザーをグループに入れます。
    ldap_import 次のいずれかのフィールドを選択します。
    • u_samaccountname
    • u_dn
    • u_cn
    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 マップを想定します。インポートによって既存の場所レコード値と一致しない属性値が取り込まれるたびに、変換マップによって新しい場所レコードが作成されます。新しい場所レコードはインポートされた属性と同じ値になり、インポートされたユーザーレコードには新しい場所レコードへのリンクが含まれます。

    ただし、LDAP 属性が識別名 (DN) を返す場合があります。これは、基本的に LDAP ディレクトリ内の別のレコードへの参照です。たとえば、マネージャー属性には通常、現在の LDAP ディレクトリエントリのマネージャーの識別名が含まれています。インポートされた DN は通常、 cn=Beth Anglin,ou=Users,dc=my-domain,dc=com のような長いテキスト文字列を使用します。
    警告:
    ターゲットフィールドが DN を含むのに十分な長さであることを確認してください。多くのテキストフィールドでは、デフォルトの長さである 40 が使用されています。これは、一部の DN 値では長さが足りない場合があります。ServiceNow システムでは、フィールドの長さを超える値は切り捨てられます。

    新しいユーザーは既存のユーザーと関連付けられていないため、アドミニストレーターは通常、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 関数呼び出しを削除するかコメントアウトします。