一部のお客様が、アプリで使用しているドメインから検索ベースを取得するよう求めています。ldap - ドメインから検索ベースを取得するのは正しいですか?
たとえば、私のドメインのドメインコントローラがad.mydomain.comの場合、次のようにしてserchベースを構築するのは正しいですか?dc = ad、dc = mydomain、dc = com?
ドメインが変更されると、検索ベースが変更される必要があるかどうかわからないことがあります。うまく動作しません。
Thx。
一部のお客様が、アプリで使用しているドメインから検索ベースを取得するよう求めています。ldap - ドメインから検索ベースを取得するのは正しいですか?
たとえば、私のドメインのドメインコントローラがad.mydomain.comの場合、次のようにしてserchベースを構築するのは正しいですか?dc = ad、dc = mydomain、dc = com?
ドメインが変更されると、検索ベースが変更される必要があるかどうかわからないことがあります。うまく動作しません。
Thx。
通常そうです(少なくともActive Directoryの場合)。私たちはdev ADインスタンスのためのdev.company.comを持っていて、prodされたADインスタンスのためのcompany.comはそれぞれdc = dev、dc = company、dc = com、dc = company、dc = comです。
私は、Spring SecurityのAD認証プロバイダで同じ習慣を見てきました。
は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();
}
ソース::春のセキュリティActiveDirectoryLdapAuthenticationProvider.javaのソース
ADの世界でdc=domain,dc=com
を使用しての慣習があるかもしれないが、正しい方法は決定するために、次のようにそれは、ドメイン名からのルートDNを導出しますディレクトリサーバーでサポートされるネーミングコンテキストは、namingContexts
属性のルートDSEを照会することです。リストされている命名コンテキストは、サーバーによってホストまたはシャドウされたものです。ルートDSEの詳細については、"LDAP: The root DSE"を参照してください。サーバーが複数のネーミングコンテキストをホストまたはシャドーする可能性があることに注意してください。また、"LDAP: Programming Practices"を参照してください。