我正在尝试与Windows Active Directory服务器一起集成SLES以进行身份validation。
我们需要使用sAMAccountName作为login名,但是如果我们没有在ldapsearch命令上提供DOMAIN / sAMAccountName,那么它将无法绑定。 但是,应用程序的login窗口不支持在用户之前提供域名。 我configuration了ldap.conf和krb5.conf来提供身份validation。 有什么办法给“DOMAIN /”开始的sAMAccountName作为默认的绑定?
这工作正常:ldapsearch -x -LLL -h adserver.customer.entp.tgc -D CUSTOMER \ EXT123456 -w password -b“dc = customer,dc = entp,dc = tgc”
提前感谢您的回答。
nynonur
我不知道你的应用程序的细节,但听起来像它与Active Directory不兼容。
阅读ADS_NAME_TYPE_ENUM的公开文档。
这些是您可以login的login名称格式。 “EXT123456”不是其中之一。
我知道你认为“EXT123456”是用sAMAccountNamelogin的,但实际上并不是。 再看看文档。 实际上没有符合“EXT12345”(或“johndoe”)模式的有效login格式。
只是“用户名”本身不是一个有效的login格式。 那么,实际上这是一个有效的login格式…用户的显示名称 。
Active Directory实际上会尝试将其parsing为显示名称 。 ADS_NAME_TYPE_DISPLAY 。
所以,如果你不能让你的应用程序接受一个域前缀或一个UPN后缀,或要求你的用户使用他们的显示名称login…活动目录不只是假设一个裸string“johndoe”是一个sAMAccountName。
但你并不孤单。 大多数人认为login到AD没有域前缀或UPN神奇地映射到sAMAccountName。 但事实并非如此。 如果您想查看自己的工作原理,请使用ldp.exe,并使用显示名称与sAMAccountName不同的用户帐户进行简单的绑定,并且不提供域名。 哪一个让你进来? 这是显示名称。