一些客户要求从我的应用程序上使用的域名获取搜索库。
例如,如果我的域的域控制器是,ad.mydomain.com以以下方式构建搜索库是正确的: dc=ad,dc=mydomain,dc=com?
我不确定,如果一旦域名改变,搜索库也必须改变,否则我的应用程序。不会工作的很好。
谢谢。
发布于 2011-09-21 03:14:29
是的,通常是这样的(至少在Active Directory中是这样)。我们有用于开发AD实例的dev.company.com和用于生产AD实例的company.com,搜索库分别是dc=dev、dc=company、dc=com和dc=company、dc=com。
我在Spring Security的AD身份验证提供程序中看到了同样的做法。它从域名派生根DN,如下所示:
private String rootDnFromDomain(String domain) {
String[] tokens = StringUtils.tokenizeToStringArray(domain, ".");
StringBuilder root = new StringBuilder();
for (String token : tokens) {
if (root.length() > 0) {
root.append(',');
}
root.append("dc=").append(token);
}
return root.toString();
}来源: Spring Security ActiveDirectoryLdapAuthenticationProvider.java的来源
发布于 2011-09-22 00:18:29
虽然在AD世界中可能存在使用dc=domain,dc=com的约定,但确定目录服务器支持的命名上下文的正确方法是在根DSE中查询namingContexts属性。列出的命名上下文是由服务器托管或隐藏的命名上下文。有关根DSE的更多信息,请参阅"LDAP: The root DSE"。请注意,服务器可能承载或隐藏多个命名上下文。另请参见"LDAP: Programming Practices"。
https://stackoverflow.com/questions/7488516
复制相似问题