2016-11-28 4 views
0

Я пытаюсь протестировать аутентификацию Active Directory с помощью Spring Boot. У меня есть работать с Active Directory, и я могу получить доступ к нему через LDAP-браузеры для моего администратора пользователя с этим пользователем дпом:Spring Boot LDAP Authentication

CN=Administrator,CN=Users,DC=contoso,DC=com 

Я хочу использовать LDAP в качестве менеджера аутентификации в моем приложении. Простой пример из документации выглядит следующим образом:

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
    auth 
      .ldapAuthentication() 
      .userDnPatterns("CN={0},CN=Users,DC=contoso,DC=com") 
      .groupSearchBase("ou=groups") 
      .contextSource() 
      .managerDn("CN=Administrator,CN=Users,DC=contoso,DC=com") 
      .managerPassword("myadminpassword") 
      .url("ldap://192.168.1.1:389"); 
} 

Прежде всего, я должен предоставить пароль администратора для подключения службы Active Directory в такой логин?

Во-вторых, следует ли предоставлять groupSearchBase и userDnPatterns и как?

ответ

0
  1. No. Для доступа к LDAP/Active Directory из вашего приложения вы должны создать «просмотр пользователя» в своем каталоге пользователя. DN и пароль пользователя обзора не должны быть жестко закодированы, но, например, в файле конфигурации вашего приложения.

  2. В основном это зависит от настроек LDAP/AD. В Active Directory имена пользователей обычно хранятся в атрибуте «sAMAccountName», который не является частью DN пользователя, поэтому userDnPatterns не будет работать. Вместо этого обеспечьте фильтр поиска пользователя, например. .userSearchFilter("(sAMAccountName={0})") (скорее всего, вам понадобится больше, но администратор каталога должен быть в состоянии сказать вам это). Может оказаться полезным и дополнительный userSearchBase. Но это все не Spring, а LDAP. Опять же, обратитесь к администратору LDAP за рекомендуемыми значениями для возможных элементов конфигурации.

Смежные вопросы