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