14.6. 중첩 멤버십 동기화 예
OpenShift Container Platform의 그룹은 중첩되지 않습니다. 데이터를 사용하려면 LDAP 서버에서 그룹 멤버십을 평면화해야 합니다. Microsoft의 Active Directory 서버에서는 OID 1.2.840.113556.1.4.1941
이 있는 LDAP_MATCHING_RULE_IN_CHAIN
규칙을 통해 이 기능을 지원합니다. 또한 이 일치 규칙을 사용하는 경우에는 명시적으로 허용된 그룹 만 동기화할 수 있습니다.
이 섹션에는 한 명의 사용자 Jane
과 하나의 그룹 otheradmins
가 멤버인 admins
라는 그룹을 동기화하는 보강된 Active Directory 스키마에 대한 예가 있습니다. otheradmins
그룹에는 하나의 사용자 멤버가 있습니다. Jim
. 이 예제에서는 다음을 설명합니다.
- 그룹 및 사용자를 LDAP 서버에 추가하는 방법
- LDAP 동기화 구성 파일의 내용
- 동기화 후 OpenShift Container Platform에 생성되는 결과 그룹 레코드
보강된 Active Directory 스키마에서는 사용자(Jane
및 Jim
)와 그룹 모두 LDAP 서버에 최상위 항목으로 존재하며, 그룹 멤버십은 사용자 또는 그룹 속성에 저장됩니다. 다음의 ldif
조각에서는 이 스키마의 사용자 및 그룹을 정의합니다.
보강된 Active Directory 스키마를 중첩 멤버와 함께 사용하는 LDAP 항목: augmented_active_directory_nested.ldif
dn: ou=users,dc=example,dc=com objectClass: organizationalUnit ou: users dn: cn=Jane,ou=users,dc=example,dc=com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: testPerson cn: Jane sn: Smith displayName: Jane Smith mail: jane.smith@example.com memberOf: cn=admins,ou=groups,dc=example,dc=com 1 dn: cn=Jim,ou=users,dc=example,dc=com objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: testPerson cn: Jim sn: Adams displayName: Jim Adams mail: jim.adams@example.com memberOf: cn=otheradmins,ou=groups,dc=example,dc=com 2 dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups dn: cn=admins,ou=groups,dc=example,dc=com 3 objectClass: group cn: admins owner: cn=admin,dc=example,dc=com description: System Administrators member: cn=Jane,ou=users,dc=example,dc=com member: cn=otheradmins,ou=groups,dc=example,dc=com dn: cn=otheradmins,ou=groups,dc=example,dc=com 4 objectClass: group cn: otheradmins owner: cn=admin,dc=example,dc=com description: Other System Administrators memberOf: cn=admins,ou=groups,dc=example,dc=com 5 6 member: cn=Jim,ou=users,dc=example,dc=com
중첩 그룹을 Active Directory와 동기화하려면 사용자 항목 및 그룹 항목에 대한 LDAP 쿼리 정의와 내부 OpenShift Container Platform 그룹 레코드에서 해당 항목을 표시하는 속성을 제공해야 합니다. 또한 이 구성에는 특정 변경이 필요합니다.
-
oc adm groups sync
명령은 그룹을 명시적으로 허용해야 합니다. -
LDAP_MATCHING_RULE_IN_CHAIN
규칙을 준수하려면 사용자의groupMembershipAttributes
에"memberOf:1.2.840.113556.1.4.1941:"
이 포함되어야 합니다. -
groupUIDAttribute
를dn
으로 설정해야 합니다. groupsQuery
의 경우-
filter
를 설정하지 않아야 합니다. -
유효한
derefAliases
를 설정해야 합니다. -
해당 값이 무시되므로
baseDN
을 설정하지 않아야 합니다. -
해당 값이 무시되므로
scope
를 설정하지 않아야 합니다.
-
명확히 하기 위해, OpenShift Container Platform에서 생성한 그룹의 경우 사용자용 필드 또는 관리자용 필드에 가급적 고유 이름 이외의 속성을 사용해야 합니다. 예를 들면 이메일로 OpenShift Container Platform 그룹의 사용자를 구분하고, 그룹 이름을 공통 이름으로 사용합니다. 다음 구성 파일에서는 이러한 관계를 생성합니다.
중첩 멤버와 함께 보강된 Active Directory 스키마를 사용하는 LDAP 동기화 구성: augmented_active_directory_config_nested.yaml
kind: LDAPSyncConfig apiVersion: v1 url: ldap://LDAP_SERVICE_IP:389 augmentedActiveDirectory: groupsQuery: 1 derefAliases: never pageSize: 0 groupUIDAttribute: dn 2 groupNameAttributes: [ cn ] 3 usersQuery: baseDN: "ou=users,dc=example,dc=com" scope: sub derefAliases: never filter: (objectclass=inetOrgPerson) pageSize: 0 userNameAttributes: [ uid ] 4 groupMembershipAttributes: [ "memberOf:1.2.840.113556.1.4.1941:" ] 5
- 1
groupsQuery
필터를 지정할 수 없습니다.groupsQuery
기본 DN 및 범위 값이 무시됩니다.groupsQuery
에서 유효한derefAliases
를 설정해야 합니다.- 2
- LDAP 서버에서 그룹을 고유하게 식별하는 속성입니다.
dn
으로 설정해야 합니다. - 3
- 그룹 이름으로 사용할 속성입니다.
- 4
- OpenShift Container Platform 그룹 레코드에서 사용자 이름으로 사용할 속성입니다.
uid
또는sAMAccountName
은 대부분의 설치에서 선호됩니다. - 5
- 멤버십 정보를 저장하는 사용자 속성입니다.
LDAP_MATCHING_RULE_IN_CHAIN
사용에 유의하십시오.
augmented_active_directory_config_nested.yaml 파일과의 동기화를 실행하려면 다음을 수행합니다.
$ oc adm groups sync \ 'cn=admins,ou=groups,dc=example,dc=com' \ --sync-config=augmented_active_directory_config_nested.yaml \ --confirm
cn=admins,ou=groups,dc=example,dc=com
그룹을 명시적으로 허용해야 합니다.
OpenShift Container Platform은 위 동기화 작업의 결과로 다음과 같은 그룹 레코드를 만듭니다.
augmented_active_directory_config_nested.yaml 파일을 사용하여 생성된 OpenShift 그룹
apiVersion: user.openshift.io/v1 kind: Group metadata: annotations: openshift.io/ldap.sync-time: 2015-10-13T10:08:38-0400 1 openshift.io/ldap.uid: cn=admins,ou=groups,dc=example,dc=com 2 openshift.io/ldap.url: LDAP_SERVER_IP:389 3 creationTimestamp: name: admins 4 users: 5 - jane.smith@example.com - jim.adams@example.com