Доступ к REST API через аутентификацию X.509+LDAP
Имеется REST API сервис для взаимодействия с клиентами(моб.приложение), в данный момент используется HttpBasic auth через LDAP собственного домена (MS AD). Но в виду слабых паролей пользователей, чтобы исключить брутфорс, а также ограничить различного рода атаки, скажем для усиления безопасности, захотелось добавить mutual auth. Идея такая - выпустить общий клиентский сертификат для доступа к сервису, после "рукопожатия", аутентификация по доменному логину и паролю. Возможно? Конфигурация адаптера через ldap сейчас:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
ActiveDirectoryLdapAuthenticationProvider activeDirectoryLdapAuthenticationProvider = new
ActiveDirectoryLdapAuthenticationProvider("mydomain.com", "ldap://192.168.0.100:389/");
activeDirectoryLdapAuthenticationProvider.setConvertSubErrorCodesToExceptions(true);
activeDirectoryLdapAuthenticationProvider.setUseAuthenticationRequestCredentials(true);
activeDirectoryLdapAuthenticationProvider.setSearchFilter("(&(objectClass=user)(userPrincipalName={0})(memberOf=CN=accessGroup,OU=Группы пользователей,OU=DomainAccountsUsers,DC=NYDOMAIN,DC=COM))");
auth.authenticationProvider(activeDirectoryLdapAuthenticationProvider);
auth.eraseCredentials(false);
}