使用 LDAP 将用户添加到 AD

Posted

技术标签:

【中文标题】使用 LDAP 将用户添加到 AD【英文标题】:Adding users to AD using LDAP 【发布时间】:2012-03-21 20:17:39 【问题描述】:

我正在编写一个将用户添加到 Active Directory 的应用程序。我正在尝试使用此代码连接到 AD 中的“用户”共享文件夹

LDAP://celtestdomdc1.celtestdom.local/CN=Users,DC=celtestdom,DC=local

但是,它将用户添加到共享文件夹中,而不是“用户”共享文件夹中。不应该 CN=Users 意味着它会将其添加到“用户”文件夹吗?

谢谢

【问题讨论】:

我认为 marc_s 在你的情况下是正确的。如果您发布一些代码,我们或许可以向您展示所需的更改。 【参考方案1】:

如果你要创建一个用户,你需要

绑定到要在其中创建用户的容器 将新用户帐户创建为该容器的子帐户

仅通过设置 LDAP 路径,您定义用户将去哪里!

尝试这样的事情(C# 示例 - 转换为 VB.NET 应该很简单):

DirectoryEntry cnUsers = new DirectoryEntry("LDAP://CN=Users,DC=celtestdom,DC=local");

// create a user directory entry in the container
DirectoryEntry newUser = container.Children.Add("cn=NewUserAccount", "user");

// add the samAccountName mandatory attribute
newUser.Properties["sAMAccountName"].Value = "NewUser";

// add any optional attributes
newUser.Properties["givenName"].Value = "User";
newUser.Properties["sn"].Value = "One";

// save to the directory
newUser.CommitChanges();

// set a password for the user account
// using Invoke method and IadsUser.SetPassword
newUser.Invoke("SetPassword", new object[]  "pAssw0rdO1" );

// require that the password must be changed on next logon
newUser.Properties["pwdLastSet"].Value = 0;

// save to the directory
newUser.CommitChanges();

或者,如果您使用的是 .NET 3.5 或更高版本,您也可以使用新的 System.DirectoryServices.AccountManagement 命名空间,这会使很多事情变得更容易。

那么代码看起来简单一点:

// create a context for a domain and define "base" container to use
PrincipalContext ctx = new PrincipalContext(ContextType.Domain,
         "celtestdom", "CN=Users,DC=celtestdom,DC=local");

// create a user principal object
UserPrincipal user = new UserPrincipal(ctx, "NewUser", "pass@1w0rd01", true);

// assign some properties to the user principal
user.GivenName = "User";
user.Surname = "One";

// force the user to change password at next logon
user.ExpirePasswordNow();

// save the user to the directory
user.Save();

在此处查看有关 System.DirectoryServices.AccountManagement (S.DS.AM) 命名空间的更多信息:

Managing Directory Security Principals in the .NET Framework 3.5 MSDN docs on System.DirectoryServices.AccountManagement

【讨论】:

以上是关于使用 LDAP 将用户添加到 AD的主要内容,如果未能解决你的问题,请参考以下文章

使用 LDAP 的 Alfresco,在 Alfresco 接口中更改用户的密码

如何将 AD 组映射到用户角色 Spring Security LDAP

gitlab使用AD域用户登录

LDAP如何增加用户

如何将 LDAP AD 组映射到 python flask AppBuilder 中的用户角色

域帐户与用户帐户