Назад | Перейти на главную страницу

FreeBSD: OpenLDAP, SASL и GSSAPI

Я столкнулся с некоторыми проблемами при получении OpenLDAP на FreeBSD (8.2-STABLE) аутентификации с использованием билетов Kerberos. Я надеюсь, что у меня только что произошел сбой в мозгу, поэтому, пожалуйста, дайте мне знать, что я пропустил что-то очевидное.

Вот где дела:

И все еще...

Мне не удалось заставить slapd принять аутентификацию GSSAPI. Просто пытаюсь бежать ldapwhoamiс действительным билетом Kerberos приводит к следующей ошибке:

SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Other (e.g., implementation specific) error (80)
    additional info: SASL(-1): generic failure: GSSAPI Error:  No credentials were supplied, or the credentials were unavailable or inaccessible. (unknown mech-code 0 for mech unknown)

Та же ошибка регистрируется slapd. Здесь я как бы врезался в стену; slapd даже с включенной различной отладкой не дает мне ничего полезного. Помогите?

Обновить: Просто ради удовольствия я решил попробовать настроить OpenLDAP в тюрьме Linux (CentOS 5), чтобы посмотреть, не изменилось ли поведение. После пересборки пакетов OpenLDAP (поддержка FreeBSD Linux не включает epoll() системный вызов), он выдавал мне сообщения об ошибках, которые казались немного более полезными (относительно отсутствия принципалов Kerberos). По крайней мере, казалось, что согласование GSSAPI выполняется правильно. Похоже, это проблема FreeBSD ... может быть? Надеюсь на мнение кого-то там.

И ... загадочным образом заработало. Для записи, вот что кажется повторяющимся процессом:

  • Установите security / cyrus-sasl2.
  • Установите net / openldap24-server. Обязательно включите поддержку SASL.
  • Установите net / openlda24-client, также с поддержкой SASL.
  • Инициализировать Kerberos для справочник. Обязательно добавьте соответствующие ldap/... главный.
  • Убедитесь, что slapd сможет читать файл keytab. Самый простой механизм:

    chgrp ldap /etc/krb5.keytab
    chmod g+r /etc/krb5.keytab
    
  • Настройте slapd для SASL. Вы, вероятно, захотите установить sasl-host, sasl-realm, и sasl-regexp.
  • Настройте соответствующие значения для BASE и URI в /usr/local/etc/openldap/ldap.conf.

Протестируйте, получив билет Kerberos и затем запустив ldapwhoami -Y GSSAPI.

У меня была точно такая же проблема, и в конце концов выяснилось, что это потому, что я установил sasl-host в slapd.conf как имя хоста сервера Kerberos.

Когда я изменил sasl-host на имя хоста ldap (например, sasl-host ldap.example.com), он работал правильно.