Сервер авторизации Spring Boot 2 для клиентов publi c (PKCE) - PullRequest
2 голосов
/ 26 мая 2020

возможно ли создать сервер авторизации для аутентификации PKCE в текущей версии Spring Security?

Я провел исследование и обнаружил этот проект сервера авторизации https://github.com/spring-projects-experimental/spring-authorization-server, но для этого проекта нет подходящего образца.

Я также узнал, что Spring рекомендует Keycloak в качестве сервера авторизации, но для моего случая он не подходит. Нам нужно иметь возможность получать и проверять пользователя на наличие удаленной службы, а затем использовать сервер авторизации только для генерации и проверки токенов jwt. Насколько я знаю, Keycloak должен держать и пользователей, верно? Поэтому лучшим решением будет собственный автономный сервер авторизации Spring. Возможно ли это каким-то образом? Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 мая 2020

Вы можете ознакомиться с этим проектом: CloudFoun dry Сервер учетной записи и аутентификации (UAA) . UAA является (Spring MVC) компонентом Cloud Foundry, но может использоваться как отдельный OAuth2 server. Он может поддерживать внешнюю службу аутентификации. И есть Pull Request, который реализует PKCE: https://github.com/cloudfoundry/uaa/pull/939 (еще не объединен, но находится на рассмотрении).

Вы можете найти пример того, как использовать UAA на baeldung.com .

2 голосов
/ 28 мая 2020

Насколько мне известно, в Spring framework есть еще одна реализация сервера авторизации. Это часть проекта spring-security-oauth . Но этот проект был переведен в режим обслуживания.

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

С моей точки зрения, сейчас есть несколько возможных вариантов:

  1. Использование старых устаревших spring-security-oauth . Дополнительные примеры с старым сервером аутентификации
  2. Использование внешних служб, таких как Keycloak, Auth0, Okta и др. c
...