@Nikname_non_name

Как создать общую базу данных аутентификации?

Здравствуйте! Господа.
Как объединить базу данных пользователей ActiveDirectory, MySQL, LDAP и RADIUS для аутентификации в сервисах:
1. Web сайт
2. POP3 аутентификация
3. POP3 аутентификация перед SMTP
3. Идентификациа в SSH
4. OpenVPN
5. RDP сервера
6. Рабочии станции AD
7. Minecraft Java Edition Servers
8. Minecraft Bedrock Edition Servers
9. CS:GO server
10. iiS приложения
Сценарий примерно такой, когда пользователь регистрируется на web сайте, он указывает логин, пароль, номер телефона (без SMS кода)(Это важно) и адрес электронной почты (это важно). После регистрации пользователь создаётся во всех базах, попадает в группу пользователей, получает пользовательские права во всех вышеперечисленных сервисах и данные из полей регистрации попадают в поля Active Directory. При этом если пользователь забыл пароль, то он может зайти на страницу восстановления, ввести:
1. ДОМЕН\Имя_Пользователея
2. Номер телефона
и если телефон совпадает с тем, который введён при регистрации, то на него приходит СМС с кодом и открывается вкладка, где пользователь может ввести:
1. СМС код
2. Новый пароль
3. Подтверждение нового пароля
и если код верен, то после этого пароль сменится во всех базах.
Как такое реализовать и что нужно?!
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Центральным хранилищем данных авторизации - сделайте RADIUS.
2. Остальные - настройте на работу с ним.
3. Создайте программный триггер, который будет обрабатывать события при работе с данными авторизации и обеспечивать репликацию в сервисы, которые не поддерживают RADIUS-интеграцию.
4. Для централизованной системы работы с аккаунтом на веб-странице - создайте скрипт для работы с RADIUS-сервером.
Ответ написан
Комментировать
athacker
@athacker
1) Не надо ничего объединять, это чревато проблемами при рассинхронизации баз с учётным данными в разных (разнотипных) системах аутентификации. Должна быть единая система проверки пользовательских кредсов, а все другие системы должны проверять кредсы через неё. AD подойдёт для этого. Все остальные могут ходить в AD за проверкой кредсов через LDAPS. Часть систем уже имеют средства интеграции с AD -- IIS-приложения, почтовые сервера некоторые, SSH, MySQL (через PAM). Для остального, возможно, придётся покодить, чтобы это прикрутить.

2) Механизм сброса пароля, который вы описали, позволяет любому, кто знает номер телефона (ПРОСТО знает, т. е. необязательно даже иметь этот телефон под рукой) сменить любой пароль и зайти под любой чужой учёткой. Вы точно этого хотите?

Ну и в целом -- почитайте про концепцию SSO -- single-sign on. Есть уже и готовые системы, которые это реализуют.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы