Estou procurando como adicionar o suporte GSSAPI ao meu OpenLDAP ?
Configuração atual
MIT Kerberos V + OpenLDAP
Kerberos bind to openldap
Able to issue kerberos tickets to my users (with kinit exampluser)
Able to ldapsearch -x uid=exampluser
Lado Openldap
server% ldapsearch -x -H ldapi:/// -b "" -LLL -s base -Z supportedSASLMechanisms
ldap_start_tls: Protocol error (2)
additional info: unsupported extended operation
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: EXTERNAL
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM
supportedSASLMechanisms: LOGIN
supportedSASLMechanisms: PLAIN
Lado do cliente
client% ldapsearch uid=exampleuser
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Authentication method not supported (7)
additional info: SASL(-4): no mechanism available: Couldn't find mech GSSAPI
Cliente ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=example,dc=com
URI ldap://ldap.example.com
SASL_MECH GSSAPI
Obviamente, o erro é claro o suficiente para explicar que minha solicitação ldap não encontrou o mecanismo para autenticação.
Já passei por muitos tutoriais, explicações, mas ainda não consigo encontrar em nenhum lugar como " adicionar " esse mecanismo.
Obrigado O que é SASL/GSSAPI? por todas as explicações impressionantes.
Atualizado para o usuário 473183469
Gerei um keytab apenas para o ldap, que copiei em /etc/ldap/ldap.keytab e editei o /etc/default/slapd de acordo com https://help.ubuntu.com/community/SingleSignOn pedindo para descomentar e fornecer o caminho para exportar KRB5_KTNAME=/etc/ldap/ldap.keytab
Aquele keytab ldap foi gerado assim
kadmin: addprinc -randkey ldap/[email protected]
kadmin: ktadd -k ~/ldap.keytab ldap/[email protected]
Também tenho um /etc/krb5.keytab que foi criado no início da instalação
kadmin.local: listprincs
[email protected]
K/[email protected]
krbtgt/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
[email protected] (also in the ldap, can issue a ticket and everything)
[email protected] (same for him)
ldap/[email protected]
O resultado do ktutil
# ktutil
ktutil: read_kt /etc/ldap.keytab
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 2 ldap/[email protected]
2 2 ldap/[email protected]
3 2 ldap/[email protected]
4 2 ldap/[email protected]
ktutil: read_kt /etc/krb5.keytab
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 2 ldap/[email protected]
2 2 ldap/[email protected]
3 2 ldap/[email protected]
4 2 ldap/[email protected]
5 2 kadmin/[email protected]
6 2 kadmin/[email protected]
7 2 kadmin/[email protected]
8 2 kadmin/[email protected]
RESOLVIDO
eu estava ausente
SASL_MECH GSSAPI
eSASL_REAM
em/etc/ldap/ldap.conf
Agora posso apenas ldapsearch uid=user diretamente com um tíquete Kerberos e obter o
Claro, se eu não tiver um tíquete Kerberos (o que faz sentido)
Você desejará alterar sua configuração sasl para slapd, geralmente
/etc/sasl2/slapd.conf
, para incluir gssapi.Por exemplo:
Você precisará reiniciar o slapd depois.
Você não está simplesmente perdendo o
/etc/krb5.keytab
arquivo tendo como SPNldap/fdqn
?Não acho que você precise definir nenhum switch SASL relacionado ao GSSAPI no OpenLDAP, pois os padrões são bons e forçados, por exemplo, o domínio é mais problemático do que outro.