Я использую Ubuntu 12.04 и OpenLDAP 2.4.28-1.1ubuntu4.5. У меня есть пользователи в LDAP с userPassword
атрибут, являющийся хешем {SHA1}. Пользователи могут входить в систему через SSH и проходить аутентификацию в веб-приложениях.
Теперь я хотел бы добавить аутентификацию Radius (от OTP-сервера) к серверу LDAP в качестве дополнительного механизма. Таким образом, пользователи могут аутентифицироваться с помощью «Одноразового пароля» Radius, но все атрибуты POSIX будут извлечены из LDAP. Это возможно? Как называется механизм?
Openldap 2.4 поддерживает сквозную аутентификацию паролей SASL ( http://www.openldap.org/doc/admin24/security.html ).
Эта функция позволяет делегировать процесс аутентификации демону saslauthd и поддерживает другие атрибуты в openldap.
Эта функция требует заменить фактическое значение userPassword строкой «{SASL} username @ realm», чтобы вы не могли использовать пароль SHA1 и аутентификацию SASL для одного и того же пользователя. Кроме того, SASL может использовать PAM в качестве внутреннего метода аутентификации.
В PAM есть модуль, позволяющий использовать аутентификацию по свободному радиусу. Полная цепочка аутентификации будет:
Сервер OpenLDAP -> saslauthd -> модуль pam с радиусом -> сервер Freeradius
Есть два других способа решить эту проблему:
если ваше веб-приложение поддерживает аутентификацию PAM, создайте модуль pam, который использует аутентификацию как freeradius, так и ldap
Если ваше веб-приложение поддерживает аутентификацию Radius, настройте свободный радиус с OpenLDAP в качестве бэкэнда.
SSH уже поддерживает аутентификацию PAM и Radius (последняя с использованием модуля pam).