Настройка
Мой веб-сервис WCF работает на IIS 8.0 в Windows Server 2012 в среде с несколькими доменами:
- SERVER
- КЛИЕНТ-OLD
- КЛИЕНТ-NEW
пул приложений запускается с использованием учетной записи службы в домене SERVER
(скажем, SEVER\WsSvc01
).
Мой веб-сервис WCF использует PrincipalPermissionAttribute
, например:
[PrincipalPermission(SecurityAction.Demand, Role = "grp_WsUsers")]
public string Echo(string message)
{
return string.Format("{0:o}: {1}", DateTime.Now, message);
}
существует группа активных каталогов grp_WsUsers
в обоих клиентских доменах:
- КЛИЕНТ-OLD \ grp_WsUsers
- КЛИЕНТ-NEW \ grp_WsUsers
Задача
Пользователи из домена CLIENT-OLD
, являющиеся членами CLIENT-OLD\grp_WsUsers
, могут получить доступ к сервисным пользователям из CLIENT-NEW
домена , не могут
Обход
Если я включаю обе группы явно, все пользователи могут получить доступ к услуге
[PrincipalPermission(SecurityAction.Demand, Role = "CLIENT-OLD\\grp_WsUsers")]
[PrincipalPermission(SecurityAction.Demand, Role = "CLIENT-NEW\\grp_WsUsers")]
public string Echo(string message)
{
return string.Format("{0:o}: {1}", DateTime.Now, message);
}
Вопрос
Что здесь происходит? Если мне нужно явно указать группы, почему это вообще работает? Как я могу устранить различия между двумя группами?