13.3.7. LDAP 인증
단순 바인드 인증을 사용하여 LDAPv3 서버에 대해 사용자 이름과 암호의 유효성을 검사하도록
를 설정합니다.
identityProviders
스탠자에서 LDAPPasswordIdentityProvider
다음 단계를 따르지 않고 LDAP 서버에 장애 조치가 필요한 경우 LDAP 페일오버를 위해 SSSD를 구성하여 기본 인증 방법을 확장합니다.
LDAP 디렉터리는 인증 중 제공된 사용자 이름과 일치하는 항목으로 검색됩니다. 고유한 일치 항목이 1개 발견되는 경우 해당 항목의 고유 이름(DN)과 제공된 암호를 사용하여 단순 바인딩이 시도됩니다.
다음 단계를 수행합니다.
-
구성된
URL
의 속성 및 필터를 사용자가 입력한 사용자 이름과 결합하여 검색 필터를 생성합니다. - 생성된 필터를 사용하여 디렉터리를 검색합니다. 검색에서 정확히 하나의 항목을 반환하지 않으면 액세스를 거부합니다.
- 검색에서 검색된 항목의 DN과 사용자 제공 암호를 사용하여 LDAP 서버에 바인딩합니다.
- 바인딩에 실패하면 액세스를 거부합니다.
- 바인딩이 성공하면 구성된 속성을 ID, 이메일 주소, 표시 이름, 기본 사용자 이름으로 사용하여 ID를 빌드합니다.
구성된 URL
은 RFC 2255 URL이며, 사용할 LDAP 호스트 및 검색 매개변수를 지정합니다. URL 구문은 다음과 같습니다.
ldap://host:port/basedn?attribute?scope?filter
위 예의 경우 다음을 수행합니다.
URL 구성 요소 | 설명 |
---|---|
|
일반 LDAP의 경우 |
|
LDAP 서버의 이름 및 포트입니다. ldap의 경우 기본값은 |
| 모든 검색을 시작해야 하는 디렉터리 분기의 DN입니다. 적어도 디렉터리 트리의 맨 위에 있어야 하지만 디렉터리에 하위 트리를 지정할 수도 있습니다. |
|
검색할 속성입니다. RFC 2255에서는 쉼표로 구분된 속성 목록을 사용할 수 있지만 제공되는 속성 수와 관계없이 첫 번째 속성만 사용됩니다. 속성이 제공되지 않는 경우 기본값은 |
|
검색 범위입니다. |
|
유효한 LDAP 검색 필터입니다. 제공하지 않는 경우 기본값은 |
검색을 수행할 때 속성, 필터, 제공된 사용자 이름을 결합하여 다음과 같은 검색 필터가 생성됩니다.
(&(<filter>)(<attribute>=<username>))
예를 들어 다음과 같은 URL을 살펴보십시오.
ldap://ldap.example.com/o=Acme?cn?sub?(enabled=true)
클라이언트가 사용자 이름 bob
을 사용하여 연결을 시도하는 경우 결과 검색 필터는 (&(enabled=true)(cn=bob))
입니다.
LDAP 디렉터리에서 검색에 인증이 필요한 경우 항목을 검색하는 데 사용할 bindDN
및 bindPassword
를 지정하십시오.
LDAPPasswordIdentityProvider
를 사용한 마스터 구성
oauthConfig: ... identityProviders: - name: "my_ldap_provider" 1 challenge: true 2 login: true 3 mappingMethod: claim 4 provider: apiVersion: v1 kind: LDAPPasswordIdentityProvider attributes: id: 5 - dn email: 6 - mail name: 7 - cn preferredUsername: 8 - uid bindDN: "" 9 bindPassword: "" 10 ca: my-ldap-ca-bundle.crt 11 insecure: false 12 url: "ldap://ldap.example.com/ou=users,dc=acme,dc=com?uid" 13
- 1
- 이 공급자 이름은 반환된 사용자 ID 앞에 접두어로 지정되어 ID 이름을 형성합니다.
- 2
true인
경우 웹 이외의 클라이언트(예: CLI)의 인증되지 않은 토큰 요청이 이 프로바이더의WWW-Authenticate 챌린지
헤더가 전송됩니다.- 3
true인
경우 웹 콘솔과 같은 웹 클라이언트의 인증되지 않은 토큰 요청은 이 프로바이더가 지원하는 로그인 페이지로 리디렉션됩니다.- 4
- 위에서 설명한 대로 이 프로바이더의 ID와 사용자 오브젝트 간의 매핑 설정 방법을 제어합니다.
- 5
- ID로 사용할 속성 목록입니다. 비어 있지 않은 첫 번째 속성이 사용됩니다. 하나 이상의 속성이 필요합니다. 나열된 어떤 속성에도 값이 없는 경우 인증이 실패합니다.
- 6
- 이메일 주소로 사용할 속성 목록입니다. 비어 있지 않은 첫 번째 속성이 사용됩니다.
- 7
- 표시 이름으로 사용할 속성 목록입니다. 비어 있지 않은 첫 번째 속성이 사용됩니다.
- 8
- 이 ID에 대해 사용자를 프로비저닝할 때 기본 사용자 이름으로 사용할 속성 목록입니다. 비어 있지 않은 첫 번째 속성이 사용됩니다.
- 9
- 검색 단계에서 바인딩하는 데 사용할 선택적 DN입니다.
- 10
- 검색 단계에서 바인딩하는 데 사용할 선택적 암호입니다. 이 값은 환경 변수, 외부 파일 또는 암호화된 파일에서 도 제공할 수 있습니다.
- 11
- 구성된 URL에 대한 서버 인증서의 유효성을 검사하는 데 사용할 인증서 번들입니다. 이 파일의 내용은 /etc/origin/master/<identity_provider_name>_ldap_ca.crt 파일에 복사됩니다. ID 공급자 이름은
openshift_master_identity_providers
매개변수의 값입니다. CA 텍스트 또는 로컬 CA 파일의 경로를 지정하지 않으면/etc/origin/master/
디렉터리에 CA 인증서를 배치해야 합니다. 여러 ID 공급자를 지정하는 경우/etc/origin/master/
디렉터리에 각 공급자의 CA 인증서를 수동으로 배치해야 합니다. 이 위치를 변경할 수 없습니다. 인증서 번들 정의는insecure: false
가 인벤토리 파일에 설정된 경우에만 적용됩니다. - 12
true
인 경우 서버에 TLS 연결이 이루어지지 않습니다.false
인 경우ldaps://
URL은 TLS를 사용하여 연결되고,ldap://
URL은 TLS로 업그레이드됩니다.- 13
- 위에 설명된 대로 사용할 LDAP 호스트 및 검색 매개변수를 지정하는 RFC 2255 URL입니다.
LDAP 통합을 위해 사용자를 허용 목록에 추가하려면 lookup
매핑 방법을 사용하십시오. LDAP에서 로그인하려면 클러스터 관리자가 각 LDAP 사용자에 대한 ID 및 사용자 오브젝트를 생성해야 합니다.