LDAP 변환 맵

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 7분
  • 변환 맵은 임포트 세트 테이블에서 대상 테이블(사용자 또는 그룹)로 데이터를 이동합니다.

    LDAP 통합은 표준 임포트 세트와 변환 맵을 사용합니다. 사용자 정의 LDAP 변환 맵을 생성할 수도 있습니다.
    중요사항:
    사용자 지정 LDAP 변환 맵을 선택하든 작성하든 소스 및 대상 테이블 세트에 대한 활성 변환 맵이 하나 있어야 합니다. 동일한 소스 및 대상 테이블에 대해 여러 변환 맵을 사용하면 일치하는 필드에 대해 병합하지 않으면 대상 테이블에 중복 항목이 생성될 수 있습니다.

    기본 LDAP 변환 맵

    기본적으로 시스템은 LDAP 데이터에 대해 두 개의 변환 맵을 제공합니다.
    표 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 소스 아니오 u_source 필드는 임포트한 사용자 또는 그룹의 LDAP DN을 식별합니다. 시스템은 이 필드를 사용하여 사용자가 LDAP 인증을 필요로 하는지 확인하고, 사용자의 관리자를 찾고, 사용자를 그룹에 배치합니다.
    ldap_import 다음 필드 중 하나를 선택합니다.
    • u_samaccountname
    • u_dn
    • u_cn
    sys_user user_name 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
    이메일 메일
    전화 전화 번호
    home_phone 집전화
    mobile_phone 모바일
    first_name 지정된 이름
    last_name sn
    직위 직위
    부서 부서
    매니저 매니저
    middle_name 이니셜
    u_memberof 그룹
    u_member 구성원
    u_manager 매니저

    LDAP 데이터 변환

    LDAP 속성에 단순 데이터가 포함되어 있으면 변환 맵은 가져온 LDAP 속성을 대상 테이블(사용자 또는 그룹)의 해당 필드에 링크합니다. 예를 들어, sAMAccountName 속성의 샘플 데이터는 사용자 테이블의 사용자 ID 필드에 매핑됩니다.

    임포트한 LDAP 데이터가 참조 필드에 매핑되는 경우, 인스턴스는 일치하는 기존 기록을 검색합니다. 일치하는 기록이 없으면 필드 매핑에서 별도로 지정하지 않는 한 인스턴스가 참조 필드에 대한 새 기록을 생성합니다.

    예를 들어, LDAP 속성 l이 사용자 테이블의 위치 참조 필드에 매핑된다고 가정합니다. 임포트 시 기존 위치 기록 값과 일치하지 않는 속성 값을 가져올 때마다 변환 맵에서 새 위치 기록이 생성됩니다. 새 위치 기록은 임포트한 속성과 동일한 값을 가지며, 임포트한 사용자 기록에는 이제 새 위치 기록에 대한 링크가 포함됩니다.

    그러나 LDAP 속성이 기본적으로 LDAP 디렉토리 내의 다른 기록에 대한 참조인 고유 이름(DN)을 반환하는 경우가 있습니다. 예를 들어, 일반적으로 관리자 속성에는 현재 LDAP 디렉토리 항목의 관리자에 대한 고유 이름이 포함됩니다. 가져온 DN은 일반적으로 긴 텍스트 문자열을 사용합니다(예: cn=Beth Anglin,ou=Users,dc=my-domain,dc=com).
    경고:
    대상 필드가 DN을 포함할 수 있을 만큼 충분히 긴지 확인합니다. 대부분의 텍스트 필드는 기본 길이인 40을 사용하는데, 이는 일부 DN 값에 대해 충분히 길지 않을 수 있습니다. ServiceNow 시스템은 필드 길이를 초과하는 모든 값을 자릅니다.

    일반적으로 관리자는 새 사용자가 기존 사용자와 연결되어 있지 않기 때문에 시스템이 DN 값에서 새 사용자를 생성하는 것을 원하지 않습니다. 대신 관리자는 임포트를 통해 관리자의 기존 사용자 기록을 찾아 새로 임포트한 사용자와 연결하기를 원합니다. LDAPUtils 스크립트 포함에는 DN을 구문 분석하고 기존 사용자를 검색할 수 있는 setManagerprocessManagers 함수가 포함되어 있습니다. 최상의 결과를 얻으려면 다음 함수를 사용하여 사용자 지정 변환 맵을 생성하십시오.

    예를 들어, LDAP 사용자 임포트 변환 맵 스크립트는 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 통합에서 관리자 속성을 사용하지 않는 경우 setManagerprocessManagers 함수 호출을 제거하거나 주석 처리합니다.