Как бы вы внедрили систему со следующими целями:
- Управление аутентификацией, авторизация для сотен тысяч существующих пользователей, которые в настоящее время тесно интегрированы с приложением стороннего поставщика (мы хотим выделить этих пользователей в то, что мы управляем и делаем наши приложения работают против этого, плюс наши сторонние поставщики работают против этого).
- Управлять информацией профиля, связанной с этими пользователями
- Должен быть доступен доступ из любого количества веб-приложений практически на любой платформе (Windows, * nix, PHP, ASP / C #, Python / Django и т. Д.).
Вот несколько примеров реализации:
- Сервер LDAP / AD для управления всем. Используйте настраиваемую схему для всех данных профиля. Все может пройти аутентификацию по LDAP / AD, и мы можем хранить все виды ACL и данные профиля в специальной схеме.
- Используйте LDAP / AD только для аутентификации, привяжите пользователей LDAP к наиболее надежному серверу профиля / авторизации, используя какую-то традиционную базу данных (MSSQL / PostgreSQL / MySQL) или базу данных на основе документов (CouchDB, SimpleDB и т. Д.). Используйте LDAP для авторизации, а затем нажмите в БД для более сложных вещей.
- Для всего используйте традиционную базу данных (реляционную или документную).
Кто-нибудь из этих трех лучший? Существуют ли другие решения, которые соответствуют вышеуказанным целям и которые легче реализовать?
** Я должен добавить, что почти все приложения, которые будут аутентифицироваться по базе данных пользователей, будут под нашим контролем. Единственными посторонними будут приложения, из которых мы удаляем текущую базу данных пользователей, и, возможно, 1 или 2 других. Нет ничего более широкого, чем нужен сервер openID.
Также важно знать, что многие из этих пользователей имеют эти учетные записи в течение 5-8 лет и знают свои логины, пароли и т. Д.