У меня есть приложение .NET, распространяемое через ClickOnce
. Безопасность в приложении реализована методом WindowsPrincipal.IsInRole(GroupName)
, использующим набор групп в качестве ресурсов. Эта структура хорошо работает для нас в том же домене, что и группы. К сожалению, теперь у нас есть пользователи, которым необходимо использовать приложение, работающее на компьютерах и использующее учетные записи пользователей в другом домене, которому доверяет наш домен, но который не находится в том же лесу.
Похоже, что IsInRole()
запрашивает билет AD на локальном компьютере для членства в группе. К сожалению, этот тикет содержит только локально-доменные группы для домена компьютера и глобальные и универсальные группы других доверенных доменов, наши группы являются локально-доменными группами в первом домене. Ситуация с подвохом 22 объясняется тем фактом, что AD не допускает использование сторонних участников безопасности в глобальных или универсальных группах, и поэтому пользователи второго домена могут запрашивать их, но они не могут быть его членами (что делает его немного бессмысленным! )
Объяснить:
Существует два домена: DOM1 и DOM2 с настройкой доверия между ними, но они не находятся в одном лесу.
DOM1\User1
DOM2\User2
- это два пользователя.
Я хотел бы объединить User1
и User2
в одну группу, которая видна обоим пользователям и может содержать их обоих.
В настоящее время я могу видеть только один способ (где {} обозначает членов групп, DL = Domain Local и GLO = GlobalGroup.)
Создайте две глобальные группы по одной в каждом домене:
DOM1\GLOGroup1 : {DOM1\User1}
DOM2\GLOGroup1 : {DOM2\User2}
и две доменные локальные группы, содержащие две глобальные группы:
DOM1\DLGroup1 : {DOM1\GLOGroup1, DOM2\GLOGroup1}
DOM2\DLGroup1 : {DOM1\GLOGroup1, DOM2\GLOGroup1}
Но это не совсем приемлемо, поскольку у нас фактически есть более двух доменов и около 70 групп для администрирования, включая иерархию групп, и мы не имеем большого прямого контроля над администрированием групп в других доменах.
Мы еще не проработали размышлений о подходе, использующем LDAP, но из немногого, что я прочитал, я считаю, что он обычно не рекомендуется для этой цели?