Как назначить пользователям роли безопасности, связанные с Active Directory
У меня есть разные роли доступа для каждой из страниц моего приложения (с использованием проверки подлинности Windows), чтобы ограничить доступ пользователей с помощью SqlRoleProvider. Чтобы добавить пользователей к роли, я бы пошел,
Roles.AddUserToRole(userName, roleName);
Теперь мне нужно интегрировать группы AD компании в мое приложение, чтобы каждой группе AD также были назначены эти роли доступа, и пользователи, входящие в определенную группу AD, автоматически "наследуют" роли.
Мои вопросы:
Могу ли я продолжать использовать свои таблицы SQL, такие как aspnet_Users, aspnet_Roles и т. Д.?
Как мне интегрировать группы AD? И как мне назначить роли группам AD? (Пока что я могу проверить все группы AD, частью которых является пользователь, используя запись в каталоге).
Когда пользователь входит в приложение, используя проверку подлинности Windows, после того, как я проверяю, что они являются частью определенной группы AD, как мне "дать" или "назначить" им роли в соответствии с группой AD?
Буду глубоко признателен за вашу помощь с этими вопросами.
1 ответ
Система членства и роли AD ASP.NET напрямую связана с AD, таблицы вашей базы данных игнорируются. Группа AD становится ролью членства ASP.NET.
Остальная часть моего поста касается приложений, которые изменяют группы AD напрямую:
Вы можете с большим трудом, но в этом случае это не рекомендуется.
Членство в группе Active Directory назначается другим пользователем, который является членом группы администраторов домена, или ему делегировано разрешение назначать пользователей другим группам.
Чтобы сделать это из кода (с использованием ADSI), ваша программа должна будет работать под (или использовать маркер олицетворения) идентификатором пользователя, который является членом группы администраторов домена или делегирован этому праву пользователя.
... это означает, что вашей программе неожиданно доверили возможность, которая в случае взлома или злоупотребления может нанести вред вашему домену безопасности. Я не рекомендую делать это.
Документация доступна на MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa706022%28v=vs.85%29.aspx