Как я могу использовать логин Angular вместо логина Spring Security для моего сервера OAuth2?

У меня есть архитектура микросервисов с Spring Boot 3 и Spring Security 6, Java 17. Я реализовал сервер OAuth2 для аутентификации и авторизации приложения, который я подключил к шлюзу API. Интеграция готова, но сейчас столкнулся с проблемой, что не знаю как отвязать логин от сервера. Я имею в виду, что у меня есть клиент Angular со своим собственным логином, и я хочу использовать его вместо того, который предоставляется Spring Security. Однако я не вижу возможного способа сгенерировать код и т. д. Я также не знаю, где сделать запрос POST для имени пользователя, пароля и т. д. Как я могу сделать его независимым от входа в Spring Security и отделить вход от входа в систему? использовать тот, который сделан с помощью Angular? Заранее большое спасибо. С уважением.

1 ответ

То, что вы запрашиваете, будет использовать потоки OAuth2, которые устарели по уважительным причинам.

Вам не следует пытаться это сделать: приложение Angular не должно иметь доступа к учетным данным пользователя из-за развития стандарта OAuth2, а не из-за ограничений Spring Security.

Одним из моментов разделения, о котором вы говорите, является удаление всего, что связано с механизмами аутентификации, с клиентов OAuth2 и серверов ресурсов (речь идет только о сервере авторизации).

Если пойти еще дальше, если у вас есть шлюз, настроенный как клиент OAuth2, приложение Angular вообще не участвует в OAuth2! (он защищен сеансом на шлюзе, не связывается с сервером авторизации и не имеет доступа к коду авторизации или токенам).

Если вас беспокоит внешний вид, вместо этого создайте стиль для экранов входа в сервер авторизации (почти каждый сервер авторизации на рынке имеет функции для настройки его внешнего вида).

Другие вопросы по тегам