Аутентификация MVC Active Directory по организационным подразделениям
Я хочу перезапустить безопасность AD в своем веб-приложении.NET MVC и, по возможности, практически не иметь локальных таблиц безопасности.
Я могу легко добиться этого, используя Authorize
тег:
[Authorize(Roles="GoldDigger")]
public ActionResult Go(int companyKey)
{
var something = GetData(companyKey);
return something;
}
Однако у меня есть пользователи, которые имеют доступ к нескольким компаниям (Acme, StoreCo и т. Д.) И GoldDigger
в некоторых, но не во всех этих компаниях. Допустим, я создаю контейнер OU Active Directory для каждой компании, поэтому у меня есть следующая структура ролей AD:
NTWRK\Acme\GoldDigger
NTWRK\StoreCo\GoldDigger
NTWRK\PetCo\GoldDigger
NTWRK\Megalomart\GoldDigger
Насколько я знаю, я больше не могу использовать Authorize
тег, потому что требуемая роль AD определяется значением параметра CompanyKey.
Каковы мои лучшие варианты на данный момент, чтобы избежать добавления следующего в начало каждого метода контроллера? Можно ли навязать контекст авторизации определенной (не жестко запрограммированной) организационной единице в начале или в начале сеанса?
if (!AuthenticateAdRoleByCompany(companyKey, "Role Name Here"))
{
Explode();
return;
}