2016-10-26 6 views
1

Для моего приложения я хочу реализовать базовую аутентификацию HTTP в сочетании с симметричным шифрованием. Зашифрованное имя пользователя и пароль base64 шифруются с помощью ключа шифрования при отправке и дешифруются с помощью того же ключа, когда он получен REST api.Spring security REST api custom HTTP basic authentication

До сих пор мне удалось реализовать базовую аутентификацию HTTP. Я не уверен, как добавить дополнительный уровень шифрования.

У меня есть какая-то идея, как я могу сделать эту работу. Что я до сих пор знаю:

  1. Прежде чем аутентификация будет вызвана весной, вы получите зашифрованную строку из заголовков.
  2. Расшифровать строку, используя ключ шифрования
  3. Сохранить зашифрованную информацию в заголовках
  4. Invoke аутентификация с новыми заголовками (ныне содержащих base64 кодированным именем пользователя + пароль)

я на правильном пути , и если да, то как я могу реализовать это весной?

ответ

1

Не пытайтесь изобретать велосипед. Просто используйте стандартное безопасное соединение SSL (HTTPS) вместо собственного симметричного шифрования: A) достичь гораздо более простого результата B), это гораздо безопаснее, чем то, что вы пытаетесь сделать. Обратите внимание, что есть более эффективные способы аутентификации в REST API.

Некоторые ресурсы по обеспечению обычной проверки подлинности с SSL: https://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https https://security.stackexchange.com/questions/44811/is-https-and-basic-authentication-secure-enough-for-banking-webservices-restful HTTPS and BASIC authentication HTTP Basic Authentication Over SSL for REST API

Как я писал есть лучшие способы обеспечить REST API в безгосударственного образом. Например, токены с цифровой подписью. Его можно комбинировать с SSL. Фактически, это стало стандартом для предоставления вашего API через HTTPS независимо от того, какой метод аутентификации вы выберете.

Это широкая тема, но если вы хотите узнать о некоторых основных методах проверки подлинности REST, посмотрите на JHipster. Это классный генератор веб-приложений (с SpringBoot + Angular 1.5 stack). Он хорошо документирован и дружелюбен даже для неопытных разработчиков. Он поставляется с мастером, где вы можете выбрать метод проверки подлинности. Посмотрите на JSON Web Token (JWT), который является реализацией аутентификации на токенах. Я бы рекомендовал взглянуть на другие методы auth (OAuth - еще один, о котором стоит упомянуть).

+0

Спасибо за ваше предложение и ресурсы. Я буду смотреть дальше. –