通过用户模拟将用户添加到活动目录
Posted
技术标签:
【中文标题】通过用户模拟将用户添加到活动目录【英文标题】:Add users to active directory through user impersonation 【发布时间】:2019-12-17 16:10:20 【问题描述】:我有一个 Windows 应用程序,它允许应用程序用户将用户添加/删除到 Active Directory 组中。应用程序用户使用他们的 Windows 凭据登录到应用程序。但是,所有个人用户都无权在 AD 组中添加/删除用户。我想在内部模拟一个对 AD 组具有修改权限的用户。我正在使用下面的代码,我从 SO 的不同答案中获取它。不确定,如果我用错了。但我有一个例外。
使用此库进行模拟:https://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
using (new Impersonator("username", "domain", "passowrd"))
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
// find your user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "user");
if (user != null)
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "Group Name");
// if found....
if (group != null)
// add user to group
group.Members.Add(user);
group.Save();
如果我使用具有适当权限的用户登录,我可以在 AD 中添加/删除用户。但不是通过冒充。
【问题讨论】:
【参考方案1】:您无需模拟即可使用不同的凭据连接到 AD。只需使用constructor for PrincipalContext
that accepts a username and password:
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null, "username", "password"))
【讨论】:
以上是关于通过用户模拟将用户添加到活动目录的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用ansible将活动目录中的用户分配给多个组?