ADAM (AD LDS) и AzMan для членства и ролей
Ну, я в настоящее время разрабатываю приложение, которое должно использовать локальный Active Directory для членства. С членством все в порядке, поскольку у меня нет контроллеров домена, а экземпляр виртуальной машины - это слишком много для моего ПК, я использую Active Directory Lightweigth Directory Services (AD LDS), чтобы создать экземпляр каталога, и добавил некоторых пользователей.
Приложение отлично проверяет пользователей.
Проблема возникает, когда я хочу реализовать роли. Как вы реализуете роли в этом случае? Я слышал о диспетчере авторизации (AzMan), но когда я начал настраивать его, я могу добавлять только пользователей локального компьютера, а не пользователей экземпляра AD.
Я хочу знать, как ссылаться на пользователей AD в AzMan, чтобы я мог использовать поставщика ролей AzMan, или есть ли другой способ реализовать авторизацию без необходимости внедрения нового поставщика ролей.
Благодарю.
2 ответа
Я закончил тем, что использовал ADRoleProvider от Codeplex. Я внес в него некоторые изменения, потому что у пользовательских объектов AD LDS нет свойства sAMAccountName, и исходный источник использовал его. Я просто указал на это, так что вместо него используется свойство PrincipalUsername.
В первую очередь ссылка на эту статью: http://blogs.msdn.com/b/azman/archive/2006/05/06/591230.aspx
Основным ограничением является то, что оснастка MMC AzMan использует средство выбора объектов Windows (средство, позволяющее выбирать пользователей или группы из AD), а также не поддерживает ADAM (он же AD-LDS).
Основное решение состоит в том, что вам придется написать код, который может выбирать объекты (пользователей и роли) из AD-LDS и определять SID для них. AzMan использует SID для управления доступом, независимо от того, где хранится хранилище (файлы XML, сервер SQL или AD/AD-LDS/ADAM). Поэтому, когда вы создаете группы и добавляете участников или назначаете роли AD-LDS непосредственно для назначений ролей, вы должны использовать SID ролей (или "Класс группы безопасности пользователя") в AD-LDS, а не их имена.