Аутентификация LDAP с использованием RADIUS-сервера

У меня есть сервер RADIUS с пользовательским методом аутентификации. У меня есть база данных Mysql с паролями CMS Django, которые хэшируются в PBKDF2_SHA256, поэтому мне пришлось написать собственный скрипт аутентификации. Мои разделы авторизации RADIUS выглядят следующим образом:

authorize {
    update control {
         Auth-Type := `/usr/bin/php -f /usr/djangologin/cpauth.php %{User-Name} %{User-Password}`
    }
}

Скрипт проверяет пароль с помощью python passlib, возвращая true или false, и поэтому RADIUS возвращает Access-Accept или Accept-Reject.

Теперь мне нужно настроить LDAP-сервер, потому что одно из наших новых программ (Ulteo) не поддерживает аутентификацию RADIUS.

Я никогда не работал с LDAP раньше. Прежде чем я попытаюсь достичь невозможного, вот мои основные вопросы:

1. Я не выяснил, как именно хранятся пароли. Как они зашифрованы? Я знаю, что они хранятся в /etc/shadow. Они зашифрованы в MD5 или SHA256 / 512?
2. Можно ли использовать RADIUS в качестве метода аутентификации для LDAP-сервера? Например, пользователь хочет пройти аутентификацию на сервере LDAP. Сервер LDAP ищет имя пользователя и передает его через RADIUS. В случае успеха RADIUS возвращает Access-Accept, а LDAP-сервер подтверждает успешный вход в систему.
3. Если 2. невозможно: есть ли способ создать пользовательский метод аутентификации, подобный тому, который я создал для RADIUS? Есть ли лучший способ архивировать мою цель?

Спасибо!

1 ответ

На большинстве серверов LDAP пароль хранится в каталоге, на котором расположен сервер. Я думаю, что было бы проще хранить пароли в LDAP и аутентифицировать RADIUS и все остальное против LDAP. Однако, например, OpenLDAP поддерживает SASL, так что вы можете аутентифицировать LDAP против чего-то другого, обычно Kerberos.

Другие вопросы по тегам