Я использую UserPrincipal.FindByIdentity(ctx, "SomeAdminAccountName").GetGroups()
для авторизации пользователя по группе в активном каталоге. Он отлично работает для простых групп, но не для вложенных групп. Допустим, я получил следующую структуру:
Administrators members:
SomeAdminAccountName
Users members
Administrators
SomeUserAccountName
Группа пользователей содержит группу администраторов (поскольку все администраторы должны иметь возможность делать то, что могут пользователи). Проблема в том, что UserPrincipal.FindByIdentity(ctx, "SomeAdminAccountName").GetGroups()
не включает группу Users
.
Если я использую GroupPrincipal.FindByIdentity(ctx, groupName).Members
, я вижу, что группа Administrator
является ее частью, но учетная запись администратора не включена.
Мой вопрос:
Нужно ли выполнять рекурсивную групповую проверку, чтобы найти пользователя, или есть другой способ, который я не нашел?