
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는 두 가지 인증 방법( simple
및 SASL
)을 지원 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의 가장 일반적인 메커니즘 EXTERNAL
은 GSSAPI
.
이것외부이 메커니즘은 하위 수준 프로토콜(일반적으로 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
에 매핑합니다 .posixAccount
ou=people,dc=phys,dc=ethz,dc=ch
uid
예를 들어, 다음 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
사용된 매핑은 olcAuthzRegexp
DIT의 고유 항목과 일치해야 합니다. 이는 관리자 또는 관리 소프트웨어에 의해 보장됩니다.