Добавьте GSSAPI в OpenLdap в поддерживаемых SASLMechanisms
Я смотрю, как добавить поддержку GSSAPI в мой OpenLDAP?
Текущая настройка
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
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
Сторона клиента
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
Клиент 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
Очевидно, что ошибка достаточно ясна, чтобы объяснить, что мой запрос ldap не нашел механизм аутентификации.
Я прошел много уроков, объяснений, но до сих пор нигде не могу найти, как " добавить " этот механизм.
Спасибо Что такое SASL/GSSAPI? за все удивительные объяснения.
Обновлено для пользователя 473183469
Я создал keytab только для ldap, скопировал его в /etc/ldap/ldap.keytab и отредактировал /etc/default/slapd в соответствии с https://help.ubuntu.com/community/SingleSignOn с просьбой раскомментировать и указать путь для экспорта KRB5_KTNAME=/etc/ldap/ldap.keytab
Эта таблица ключей ldap была сгенерирована таким образом
kadmin: addprinc -randkey ldap/ldap.example.com@EXAMPLE.COM
kadmin: ktadd -k ~/ldap.keytab ldap/ldap.example.com@EXAMPLE.COM
У меня также есть /etc/krb5.keytab, который был создан в начале установки
kadmin.local: listprincs
admin@EXAMPLE.COM
K/M@EXAMPLE.COM
krbtgt/EXAMPLE.COM@EXAMPLE.COM
kadmin/admin@EXAMPLE.COM
kadmin/changepw@EXAMPLE.COM
kadmin/history@EXAMPLE.COM
kadmin/kdc.example.com@EXAMPLE.COM
user1@example.com (also in the ldap, can issue a ticket and everything)
user2@example.com (same for him)
ldap/ldap.example.com@EXAMPLE.COM
Результат ктутил
# ktutil
ktutil: read_kt /etc/ldap.keytab
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 2 ldap/ldap.example.com@EXAMPLE.COM
2 2 ldap/ldap.example.com@EXAMPLE.COM
3 2 ldap/ldap.example.com@EXAMPLE.COM
4 2 ldap/ldap.example.com@EXAMPLE.COM
ktutil: read_kt /etc/krb5.keytab
ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
1 2 ldap/ldap.example.com@EXAMPLE.COM
2 2 ldap/ldap.example.com@EXAMPLE.COM
3 2 ldap/ldap.example.com@EXAMPLE.COM
4 2 ldap/ldap.example.com@EXAMPLE.COM
5 2 kadmin/kdc.example.com@EXAMPLE.COM
6 2 kadmin/kdc.example.com@EXAMPLE.COM
7 2 kadmin/kdc.example.com@EXAMPLE.COM
8 2 kadmin/kdc.example.com@EXAMPLE.COM
3 ответа
РЕШИТЬ
Мне не хватало SASL_MECH GSSAPI
а также SASL_REAM
в /etc/ldap/ldap.conf
[Tue Feb 28 13:48 root:ldap] [~] # cat /etc/ldap/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
SASL_REALM EXAMPLE.COM
Теперь я могу просто ldapsearch uid=user напрямую с билетом Kerberos и получить
SASL/GSSAPI authentication started
SASL username: user@EXAMPLE.COM
SASL SSF: 112
SASL data security layer installed.
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> (default) with scope subtree
# filter: uid=user
# requesting: ALL
#
Конечно, если у меня нет билета Kerberos (что имеет смысл)
client% ldapsearch uid=gleger
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Local error (-2)
additional info: SASL(-1): generic failure: GSSAPI Error: Miscellaneous failure (see text (No credentials cache file found)
Вы хотите изменить конфигурацию sasl для slapd, обычно /etc/sasl2/slapd.conf
, чтобы включить гссапи.
Например:
mech_list: external gssapi plain
pwcheck_method: saslauthd
После этого вам нужно будет перезапустить slapd.
Вы просто не пропустили /etc/krb5.keytab
файл с именем SPN ldap/fdqn
?
Я не думаю, что вам нужно устанавливать какой-либо SASL-переключатель, связанный с GSSAPI, на OpenLDAP, так как настройки по умолчанию хороши и требуют, например, царства больше проблем, чем других.