В настоящее время я работаю над мобильным приложением, которое позволит пользователю войти в систему через имя пользователя/пароль (OAuth 2.0 Password Grant), Facebook, Twitter или Google. Бэкэнд для этого мобильного приложения закодирован в Spring Boot/Cloud (Java) и использует принципы Microservices. У меня есть несколько небольших сервисов, которые можно обнаружить через Eureka и использовать Spring Cloud Config для централизованной настройки. Все они подвержены мобильному устройству с использованием Spring Cloud Zuul, который действует как обратный прокси. Настройка Spring Security OAuth 2.0, которую я использую в имени пользователя и пароле, затем возвращает токен JWT, этот токен проверяется каждый раз, когда запрос делается на бэкэнд. Я также локально храню пользователей в MongoDB и использую защиту уровня метода. Я хочу добавить Social Вход в моем приложении и он сделать следующее:Каков наилучший способ защитить мобильное приложение и базовую архитектуру Microservices?
на мобильном устройстве сделать OAuth танец и получить маркер доступа
Отправить маркер доступа к серверу, и используя Spring Social, создайте нового пользователя локально и свяжите его с Facebook/Twitter/Google, а затем верните токен JWT, который можно использовать для проверки запросов.
Этот токен JWT должен быть создан Spring Security, и я должен все еще иметь возможность использовать метод Level Security и иметь локальных пользователей
В основном я хочу, чтобы все функции, которые я имею с моим обычаем Spring Security OAuth 2.0 Пароль Грант с Социальными Логин
Это моя первая попытка в проектировании системы, и поэтому с нетерпением жду ответов от тех, с гораздо большим опытом, чем у меня. Я видел много примеров, которые используют Spring Social, но все они предназначены для веб-приложений, а не для мобильных устройств, вот где я сейчас застрял.
Вопросы, которые я бы следующие:
- ли мой предложенный подход адекватным? Существуют ли другие подходы, которые являются без гражданства и лучше подходят для мобильных приложений?
- Является ли Spring Security OAuth 2.0 и Spring Social Security достаточным для достижения этого? Если да, есть ли ресурсы, которые я могу использовать? Я не нашел много онлайн.
- Возможно ли использование Spring Cloud Security в качестве решения?
- Должен ли я использовать сторонний провайдер для аутентификации, такой как Auth0 или OKTA?
Благодарим за рекомендации, я обязательно посмотрю, как я могу реализовать решение с существующими технологиями Spring и не платить за что-то вроде auth0. –