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 |
소스 | 아니오 | u_source 필드는 임포트한 사용자 또는 그룹의 LDAP DN을 식별합니다. 시스템은 이 필드를 사용하여 사용자가 LDAP 인증을 필요로 하는지 확인하고, 사용자의 관리자를 찾고, 사용자를 그룹에 배치합니다. |
ldap_import |
다음 필드 중 하나를 선택합니다.
|
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이 사용자 테이블의 위치 참조 필드에 매핑된다고 가정합니다. 임포트 시 기존 위치 기록 값과 일치하지 않는 속성 값을 가져올 때마다 변환 맵에서 새 위치 기록이 생성됩니다. 새 위치 기록은 임포트한 속성과 동일한 값을 가지며, 임포트한 사용자 기록에는 이제 새 위치 기록에 대한 링크가 포함됩니다.
일반적으로 관리자는 새 사용자가 기존 사용자와 연결되어 있지 않기 때문에 시스템이 DN 값에서 새 사용자를 생성하는 것을 원하지 않습니다. 대신 관리자는 임포트를 통해 관리자의 기존 사용자 기록을 찾아 새로 임포트한 사용자와 연결하기를 원합니다. LDAPUtils 스크립트 포함에는 DN을 구문 분석하고 기존 사용자를 검색할 수 있는 setManager 및 processManagers 함수가 포함되어 있습니다. 최상의 결과를 얻으려면 다음 함수를 사용하여 사용자 지정 변환 맵을 생성하십시오.
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 통합에서 관리자 속성을 사용하지 않는 경우 setManager 및 processManagers 함수 호출을 제거하거나 주석 처리합니다.