ldap - получить базу поиска с домена, правильно? - PullRequest
0 голосов
/ 20 сентября 2011

некоторые клиенты просят получить базу поиска из домена, используемого в моем приложении.

Например, если контроллер домена моего домена, ad.mydomain.com правильно построить базу поиска следующим образом: dc = ad, dc = mydomain, dc = com?

Я не уверен, что после изменения домена база поиска должна измениться, потому что в противном случае мое приложение. не будет работать нормально.

Thx.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Хотя в мире AD и существует соглашение об использовании dc=domain,dc=com, правильный способ определения контекстов именования, поддерживаемых сервером каталогов, - запросить корневой DSE для атрибута namingContexts.Перечисленные контексты именования - это те, которые размещены или скрыты сервером.Для получения дополнительной информации о корневом DSE см. «LDAP: корневой DSE» .Помните, что сервер может размещать или скрывать несколько контекстов именования.Также см. «LDAP: Практика программирования» .

1 голос
/ 20 сентября 2011

Да, обычно это так (по крайней мере, в случае Active Directory). У нас есть dev.company.com для экземпляра dev AD и company.com для экземпляра prod AD, а поисковыми базами являются dc = dev, dc = company, dc = com и dc = company, dc = com соответственно.

Я видел такую ​​же практику в провайдере аутентификации AD Spring Security. Он получает корневой 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 источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...