Поскольку в наши дни аутентификация становится все более и более сложной, я решил, что было бы лучше оставить аутентификацию для компаний с хорошей репутацией в сфере безопасности, таких как Twitter и LinkedIn.
Я прочитал как Spring Security, так и Spring Social свои документы, но не смог найти ничего, что полностью оставило бы аутентификацию третьей стороне. Они говорят только о наличии смешанной системы с собственной пользовательской базой данных.
Можно ли сделать что-то подобное с помощью Spring с его текущей версией?
Я использую Spring Boot Security 1.2 и Spring Boot Social 1.2.1, но для меня это не проблема, если это необходимо.
Stormpath существует по конкретным причинам, которые вы указали: трудно получить право, и вы также можете передать это в команду специалистам по безопасности (даже если вы эксперт по безопасности, зачем тратить время на это больше?). Ты это пробовал?
Существует большой Java SDK с интеграцией социального входа в Facebook, Google, GitHub и т.д., Поддержка Java Webapp и интеграция Spring Security.
Раскрытие информации: Я технический директор Stormpath.
Правильно. Вам все равно нужно "связать" удаленную аутентификацию (то есть от поставщика OAuth) с локальной моделью пользователя.
Ваша система делегирует аутентификацию удаленному органу, который определяет, кто является пользователем.
Разумным способом справиться с этим является то, что, например, когда пользователь входит в провайдер OAuth, и вы получаете обратный вызов от пользователя/поставщика, который автоматически создает модель пользователя для них в локальном постоянном хранилище на основе их принципала в полномочия OAuth (обычно их адрес электронной почты)
Таким образом, пользователю не нужно регистрироваться вручную на вашем сервисе, но вы по-прежнему получаете прочную ссылку на фактическую локальную модель и можете применять свои собственные проверки полномочий на основе локальных ролей/групп и т.д.