Автор Тема: Авторизация с помощью entryUUID  (Прочитано 84397 раз)

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Авторизация с помощью entryUUID
« : 23 Май 2016, 10:13:45 »
Добрый день. С openldap столкнулся не так давно, не ругайтесь - если не в том разделе оформил тему.
Суть вопроса такова. Обычная авторизация проходит через dn=...., хотелось бы настроить авторизацию путём ввода entryUUID пользователя и пароля.
Как возможно реализовать данную задумку?

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #1 : 23 Май 2016, 16:48:17 »
А ну еще добавлю. ОС windows server 2008 r2, openldap 2.4+, в качестве браузера использую ldapAdmin.
Стандартная авторизация с помощью cn=....,dc=....,dc=... проходит. Нужна авторизация только с помощью entryUUID и пароля. Возможно вообще такое осуществить?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #2 : 24 Май 2016, 00:54:01 »
Здравствуйте! Какую программу Вы настраиваете для аутентификации c использованием каталога LDAP?

Если речь идёт об аутентификации в самом OpenLDAP, то можно попробовать настроить такое с помощью библиотеки Cyrus-SASL (см., например, тут), но я не уверен, что это будет работать на Windows =( .

Егор

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #3 : 24 Май 2016, 10:38:24 »
Спасибо за ответ. Для аутентификации на данный момент используем браузер ldapAdmin.
Поставили задачу авторизации с помощью entryUUID, но как по мне, это нереализуемо.
Пользователям не нравится использовать полный dn для авторизации.
Тогда еще следующий вопрос, возможно ли реализовать авторизацию с использованием только cn, упуская весь путь?

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #4 : 24 Май 2016, 13:04:46 »
Спасибо за ответ. Для аутентификации на данный момент используем браузер ldapAdmin.
Поставили задачу авторизации с помощью entryUUID, но как по мне, это нереализуемо.
Пользователям не нравится использовать полный dn для авторизации.
Тогда еще следующий вопрос, возможно ли реализовать авторизацию с использованием только cn, упуская весь путь?

В атрибуте entryUUID хранится уникальный идентификатор записи каталога (нужен, в первую очередь, для репликации), он выглядит примерно так:
entryUUID: ff81634e-7aef-1035-968a-8173c660e1a4Вряд ли именно это хочется вводить Вашим пользователям =) . Видимо, имеется ввиду атрибут uid, в котором обычно хранят логины для разных систем.

Что касается аутентификации, то LDAP поддерживает простую basic-аутентификацию (тот самый DN и пароль) и SASL-аутентификацию, где логином может служить то, что распознаётся используемым SASL-механизмом, в том числе и значение атрибута LDAP (я Вам приводил ссылку в прошлом посте).

LdapAdmin, к сожалению, под рукой нет, как доберусь до компьютера с Windows, напишу, как там поддерживается SASL-аутентификации (если вообще поддерживается).

Егор Левинца

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #5 : 24 Май 2016, 13:18:36 »
Огромное спасибо за быстрый и развернутый ответ.
Буду рад, если у Вас будет возможность проверить SASL-аутентификацию.

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #6 : 26 Май 2016, 07:21:43 »
Здравствуйте ещё раз!

Простите, что задержался с ответом -- SASL оказался достаточно запутанным делом, с кандачка взять его не получилось, помогли вот эти материалы:
http://bacedifo.blogspot.ru/2014/09/sasldigest-md5-with-openldap-2.html
http://serverfault.com/questions/744050/how-to-get-sasl-authentication-to-work-with-digest-md5-for-openldap/747159
http://blog.toxa.de/archives/493

Пара ложек дёгтя:
  • Я настраивал в Linux, как дела с поддержкой SASL в Windows я не знаю.
  • Если в качестве хранилища учёток используется каталог LDAP, пароль должен указываться в открытом виде, что нехорошо.

В итоге я добился, что из комадной строки можно пройти SASL-аутентификацию:
# ldapsearch -LLL -Y DIGEST-MD5 -U egor -w test123 -b 'dc=mycompany,dc=ru' -s base dn
SASL/DIGEST-MD5 authentication started
SASL username: egor
SASL SSF: 128
SASL data security layer installed.
dn: dc=mycompany,dc=ru

Из LdapAdmin тоже получилось подключиться (см. вложения), вместо простого подключения выбрал пункт  GSS-API, указал мои учётные данные, и все прошло успешно (причём установка/отключение галки SASL ни на что не влияет =) ).

Так что всё осуществимо.

« Последнее редактирование: 26 Май 2016, 07:38:00 от egor »

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #7 : 26 Май 2016, 10:39:00 »
Большое спасибо! Но для меня, как для начинающего пользователя ldap (даже не было знакомства с AD), очень много трудностей в настройке SASL.
Буду пытаться найти информацию о настройке SASL на Windows.

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #8 : 26 Май 2016, 12:39:10 »
Какой дистрибутив OpenLDAP для Windows Вы используете? Дайте ссылку, я посмотрю, можно там что-то сделать.

Егор

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #9 : 26 Май 2016, 13:57:20 »
OpenLDAP 2.4.42 Standalone LDAP Server
Подсказать ссылку не могу, на шаре лежал.

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 486
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #10 : 27 Май 2016, 12:10:25 »
Я нашёл 2 сборки для Windows:

Установил первый вариант, сервер завёлся. Поддержка SASL в нём, вроде бы, есть, присутствует библиотека  libsasl.dll, но как её настроить -- ума не приложу. Если документация по настройке SASL в Linux достаточно путанная и отрывочная, то для Windows её ВООБЩЕ НЕТ, по крайней мере я не нашёл. Конечно, можно ещё поковыряться, либо попробовать поставить вторую сборку. Однако, насколько я помню, в LdapAdmin соединение с сервером (в том числе и учётные данные) настраивается один раз и запоминается, при повторном соединении вводить DN с паролем не надо, так стоит ли овчинка выделки?

Егор

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #11 : 27 Май 2016, 15:39:16 »
Спасибо большое за проделанную работу!)
Займусь в выходные этими сборками. Касаемо отсутствия документации по настройке SASL на OC Windows полностью согласен. Вы совершенно правы, что данные для авторизации достаточно ввести один раз. Но прихоть руководителя - дело такое.

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #12 : 16 Июнь 2016, 10:43:05 »
Добрый день. И снова я. Ушёл от счетных попыток настроить SASL аутентификацию на винде, перешел на линукс redhat.
Проблема следующего рода, основывая на ссылках, которые Вы предоставили мне ранее, пытаюсь поставить тот же пакет sasl2-bin, такого пакета не находит.

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #13 : 16 Июнь 2016, 16:27:59 »
При попытке поиска и авторизации через терминал получаю следующую фразу:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
При попытке авторизации через ldapadmin получаю следующий ответ:
неправильные учетные данные: SASL(-13): authentification failure: realm changed: authentication aborted
Подскажите, что не так делаю?
« Последнее редактирование: 17 Июнь 2016, 09:45:59 от elms »

elms

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Авторизация с помощью entryUUID
« Ответ #14 : 17 Июнь 2016, 09:45:10 »
[user1@localhost ~]$ ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
Вот что выдает этот запрос
Соответственно, как я понимаю, не задана база. В какую сторону копать?