用户主体名称问题和 LDAP

user principal name issues and LDAP

所以...这个问题可能不仅仅是一个编程问题,但我希望你们中的一个人能对我的问题有所了解:

我们在软件中的基本需求是查询用户关联的组 LDAP。对于这个任务,我们实际上使用 LDAP Admin 的部分来查询用户。实际上我们想查询 UserPrincipalName 至少据我所知这是最常见的方式吧?

所以..我们的问题是 AD 的设置使得用户拥有像 foo@HUS 这样的 UPN 但用户实际上绑定到域 HUS.adomain.com(又名 LDAP 基础:dc=HUS,dc=adomain,dc=com)并且使用像 foo@HUS.adomain.com 这样的 UPN 搜索不起作用 - 只有 foo @HUS 有效。所以……问题是: 这很常见吗? 那有 name/resource 吗?

(抱歉我对这一切还很陌生...)

目标是在管理工具中使用尽可能少的参数 也就是基础(并从基础形成 UPN 用户名)。

更新:我发现至少一个资源(德语)表明这是 possible but not recommended by Microsoft for Azure AD。 (也就是与 UPN 有不同的邮件地址)

当您使用 foo@HUS.adomain.com 之类的 UPN 启动 LDAP 搜索时,它不会起作用,因为该值不存在于 userPrincipalName 值中。当您通过使用林中所有可用的域后缀构建其 UPN 来搜索用户时,您不会考虑搜索 userPrincipalName 属性。

很难从基础构建每个构造的属性以供查询,因为每个 Active Directory 环境都会不同。正如您所提到的,您希望从基础构建属性,如果这是您定位的唯一 AD 基础设施,它可能会起作用。每个 AD 基础设施都有自己的设置方式。

但是,如果您希望您的工具在任何 AD 环境中工作,则必须考虑一些其他参数。

UPN 是一个可编辑的属性。组织可以设置它或创建没有 UPN 值的用户。下面是使用旧 ADSI 库以编程方式创建的用户示例。您可以通过删除任何用户的 userprincipalName 属性值和用户登录帐户名称来重现,如下图所示。

UPN 是一个可选属性,即使没有它,用户帐户也可以存在于 AD 中。回到您在此环境中的特定环境,只有 foo@HUS 可以工作,因为“HUS”可能被设置为活动目录中的有效域后缀。您可以通过在任何域控制器或安装了 Remote Server Administration Tools 的机器上打开 domain.msc 控制台来检查这一点。您会发现 UPN 后缀如下所示。我在我的环境中更改了它,如下所示。

您要添加的值现在将显示在 .例如,如果您从此处删除 HUS,则填充了 user@HUS userPrincipalName 的任何现有用户都将被删除,因为这是 AD 中的可选构造属性。您必须为环境中的所有用户设置它。例如,在我将用户名更改为 dh @ HUS 后检查下面的内容。

userprincipalName 值也填充了相同的值。

希望这有助于澄清您的查询并了解更多有关如何使用本机 Active Directory 工具的信息,以便在您开发自定义 LDAP 搜索时了解更多信息 functionality/tool。