2011-09-20 13 views
0

一部のお客様が、アプリで使用しているドメインから検索ベースを取得するよう求めています。ldap - ドメインから検索ベースを取得するのは正しいですか?

たとえば、私のドメインのドメインコントローラがad.mydomain.comの場合、次のようにしてserchベースを構築するのは正しいですか?dc = ad、dc = mydomain、dc = com?

ドメインが変更されると、検索ベースが変更される必要があるかどうかわからないことがあります。うまく動作しません。

Thx。

答えて

1

通常そうです(少なくとも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のソース

1

ADの世界でdc=domain,dc=comを使用しての慣習があるかもしれないが、正しい方法は決定するために、次のようにそれは、ドメイン名からのルートDNを導出しますディレクトリサーバーでサポートされるネーミングコンテキストは、namingContexts属性のルートDSEを照会することです。リストされている命名コンテキストは、サーバーによってホストまたはシャドウされたものです。ルートDSEの詳細については、"LDAP: The root DSE"を参照してください。サーバーが複数のネーミングコンテキストをホストまたはシャドーする可能性があることに注意してください。また、"LDAP: Programming Practices"を参照してください。

関連する問題