Некоторые клиенты / клиенты будут использовать веб-приложение для крупномасштабных автономных целей с системой управления пользователями. В этом отношении, они обеспечивают реальную боль при развертывании приложения с поддержкой HTTPS. Оставьте предупреждение о недоверии ООН браузерами для самозаверяющих сертификатов, что заставляет клиентов жаловаться.
- В этом случае, ради аргумента. Какие есть варианты использования безопасной аутентификации пользователя по HTTP?
Я пытался использовать Spring Security с Spring Boot для защиты API без сохранения состояния с использованием аутентификации Basi c, но я хотел бы контролировать шифрование / дешифрование заголовка base64, исключающее отправку учетных данных в очень простой для расшифровки строке base64.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf()
.disable()
.cors()
.and()
.authorizeRequests()
.antMatchers("/login")
.permitAll()
.and()
.httpBasic();
}
Этот метод конфигурации расширяет WebSecurityConfigurerAdapter
. Я попытался взглянуть на исходный код BasicAuthenticationFilter
и обнаружил, что он использует BasicAuthenticationConverter
для создания нового объекта, поэтому я не могу предоставить пользовательский преобразователь в виде bean-компонента для управления расшифровкой base64 с более сильной альтернативой (или дополнительной one).
Также это нарушает стандарт Basi c Auth в любом случае. Digest Auth сохраняет пароль в виде текста, и это не вариант для меня.
Итак,
В любом случае можно использовать Basi c Auth с HTTP, контролирующим base64 расшифровывать, пытаясь немного приблизиться к тому, что предлагает HTTPS?
Или использовать Digest Auth с зашифрованными сохраненными паролями?