Как правильно реализовать авторизацию в Spring Rest для мобильных и веб приложений

Ребята помогите пожалуйста

Пытаюсь построить Rest api на Java, где клиентами будут Мобильные приложения (Android, IOS) И веб приложение.

И так, надо сделать авторизацию : нативную и с помощью соцсетей (Google,Facebook,Vk и возможно Apple ID).

Проблема следующая, я не совсем знаю ,как правильно реализовать авторизацию на Rest с мобильными и веб приложениями. Уже практически все перечитал ,но ничего не прояснилось (А возможно ,только больше запутался. Изначально думал просто jwt вместо сессий и всё.)

Что я узнал

  1. Использовать технологию единого входа (SSO)

  2. Чтобы реализовать авторизацию для мобильных и веб приложений, нужно использовать Oauth2. Следовательно , Сервер Авторизации , Сервер Ресурсов и Клиент.

  3. Вместо сессий токены jwt

Инструменты выбрал следующие: Spring Security + Spring Authorization Server + hibernate + MySQL

Но когда начал собирать столкнулся с проблемой ,так как мобильные приложения - это паблик клиент , т.е использовать Authorization Code + PKCE ,но примеров реализаций нет .

Прочитал ,что есть такой Keycloak. Но я не уверен ,что он мне подходит. Где-то в коментах прочитал ,что он не совсем подходит для того ,чтобы сохранять юзеров в свою бд.

Подскажите пожалуйста , как правильно реализовать авторизацию в рест для мобильных и веб приложений . И вообще , на верном ли я пути?

И ,что для моего проекта будет больше подходить : Keycloak? Ory Hydra?

Я новичок с рест до этого не работал , а про Oauth относительно недавно узнал .

Буду благодарен за любую помощь)


Ответы (0 шт):