Consigo fazer login em um Active Directory usando o userPrincipalName
atributo de um user
objectClass; (por exemplo [email protected]
)
Também configurei uma instância de servidor para a qual sóOpenLDAP
posso autenticar usando o , por exemplodn
"cn=somecn,cn=anothercn,ou=someou,dc=mydomain,dc=com"
Como é possível autenticar OpenLDAP
usando outro campo, por exemplo, o mail
atributo do inetOrgPerson
por exemplo?
Além disso, mesmo que isso fosse possível, como alguém garantiria a singularidade do campo? (uma funcionalidade que suponho ser oferecida pelo AD em termos de userPrincipalName
campo)
OpenLDAP suporta dois métodos de autenticação (
simple
eSASL
), enquantoSASL
é o método padrão para ldap-utils comoldapsearch
.Quando você está autenticando usando o DN, você faz uma chamada "ligação simples".
ligação simples
O
simple
método tem três modos de operação:Por exemplo:
ou:
SASL
Clientes e servidores OpenLDAP são capazes de autenticar por meio da estrutura Simple Authentication and Security Layer (SASL), que é detalhada na RFC4422 . SASL suporta vários mecanismos de autenticação. Os mecanismos mais comuns com OpenLDAP são
EXTERNAL
eGSSAPI
.O mecanismo EXTERNAL faz uso de uma autenticação realizada por um protocolo de nível inferior: geralmente TLS ou Unix IPC. Por exemplo, usando Unix IPC como usuário root:
O usuário autenticado é mapeado para um DN na árvore
cn=peercred,cn=external,cn=auth
.O mecanismo GSSAPI geralmente significa Kerveros 5. Se você tiver uma infraestrutura Kerberos 5 implantada, poderá usar os principais Kerberos para autenticação.
Primeiro, autentique-se no KDC e obtenha um TGT:
Então você pode usar o GSSAPI para autenticação no OpenLDAP:
O principal
[email protected]
é mapeado para um DN na árvorecn=gssapi,cn=auth
.Agora você pode mapear esse DN autenticado para um DN real no banco de dados usando uma expressão regular com a
olcAuthzRegexp
configuração emcn=config
:Essa
olcAuthzRegexp
linha mapeia qualquer usuário principal no domínioPHYS.ETHZ.CH
para uma entrada correspondenteposixAccount
sobou=people,dc=phys,dc=ethz,dc=ch
a qual tem o mesmo nome de usuário nouid
atributo.Por exemplo, com a seguinte entrada posix
ldapwhoami
mostrará:O mapeamento usando
olcAuthzRegexp
deve corresponder a uma entrada exclusiva na DIT. Isso deve ser assegurado pelo administrador ou pelo software de gerenciamento.