단순 바인딩

단순 바인딩

objectClass userPrincipalName속성을 사용하여 Active Directory에 로그인 할 수 있습니다 user.[email protected]

OpenLDAP또한 서버 인스턴스를 설정하고오직인증하는 데 사용합니다 dn. 예:

"cn=somecn,cn=anothercn,ou=someou,dc=mydomain,dc=com"

OpenLDAP인증을 위해 다른 필드(예: mail속성)를 사용하는 방법은 무엇입니까 inetOrgPerson?

심지어,심지어만약 그런 일이가능하다면 필드의 고유성을 어떻게 보장할 수 있습니까? ( userPrincipalName이 분야에서는 AD가 그런 기능을 제공한다고 생각합니다 )

답변1

OpenLDAP는 두 가지 인증 방법( simpleSASL)을 지원 SASL하지만 ldap-utils 및 기타 인증 방법의 기본 방법입니다 ldapsearch.

DN을 사용하여 인증하면 "단순 바인딩"이라는 작업이 수행됩니다.

단순 바인딩

simple방법에는 세 가지 작동 모드가 있습니다.

  • 익명의
  • 확인되지 않은
  • 사용자/비밀번호가 확인되었습니다.

예를 들어:

# ldapwhoami -x
anonymous

또는:

# ldapwhoami -x -D uid=rda,ou=people,dc=phys,dc=ethz,dc=ch -w secret1234
dn:uid=rda,ou=people,dc=phys,dc=ethz,dc=ch

SASL

OpenLDAP 클라이언트 및 서버는 SASL(Simple Authentication and Security Layer) 프레임워크를 통해 인증할 수 있습니다.RFC4422. SASL은 여러 인증 메커니즘을 지원합니다. OpenLDAP의 가장 일반적인 메커니즘 EXTERNALGSSAPI.

이것외부이 메커니즘은 하위 수준 프로토콜(일반적으로 TLS 또는 Unix IPC)에 의해 수행되는 인증을 활용합니다. 예를 들어 Unix IPC를 사용자 루트로 사용하는 경우:

# ldapwhoami -Y EXTERNAL -H ldapi://
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth

인증된 사용자는 트리의 DN에 매핑됩니다 cn=peercred,cn=external,cn=auth.

이것GSAPI이 메커니즘은 일반적으로 Kerveros 5를 참조합니다. Kerberos 5 인프라를 배포한 경우 인증을 위해 Kerberos 주체를 사용할 수 있습니다.

먼저 KDC에 대해 인증하고 TGT를 얻습니다.

# kinit rda
Password for [email protected]: secret1234

그런 다음 GSSAPI를 사용하여 OpenLDAP에 대해 인증할 수 있습니다.

# ldapwhoami
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 56
SASL data security layer installed.
dn:uid=rda,cn=gssapi,cn=auth

주체는 [email protected]트리의 DN에 매핑됩니다 cn=gssapi,cn=auth.

olcAuthzRegexp이제 다음과 같이 구성된 정규식을 사용하여 인증된 DN을 데이터베이스의 실제 DN에 매핑할 수 있습니다 cn=config.

dn: cn=config
objectClass: olcGlobal
cn: config
olcAuthzRegexp: {0}uid=([^,/]*),cn=phys.ethz.ch,cn=gssapi,cn=auth uid=$1,ou=people,dc=phys,dc=ethz,dc=ch
...

olcAuthzRegexp줄은 영역의 모든 사용자 주체를 해당 항목 아래의 속성과 동일한 사용자 이름을 가진 해당 항목 PHYS.ETHZ.CH에 매핑합니다 .posixAccountou=people,dc=phys,dc=ethz,dc=chuid

예를 들어, 다음 posix 항목을 사용하십시오.

# ldapsearch uid=rda
dn: uid=rda,ou=people,dc=phys,dc=ethz,dc=ch
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: krbPrincipalAux
objectClass: krbTicketPolicyAux
uid: rda
krbPrincipalName: [email protected]
...

ldapwhoami제시될 것입니다 :

# ldapwhoami
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 56
SASL data security layer installed.
dn:uid=rda,ou=people,dc=phys,dc=ethz,dc=ch

사용된 매핑은 olcAuthzRegexpDIT의 고유 항목과 일치해야 합니다. 이는 관리자 또는 관리 소프트웨어에 의해 보장됩니다.

관련 정보