Сделать существующее приложение для входа в форму также сервером авторизации oauth2? - PullRequest
0 голосов
/ 24 апреля 2019

У нас было веб-приложение, которое уже использует форму входа в систему, предоставленную Spring-Security, скажем, ERP.Сейчас мы рассматриваем превращение ERP в сервер авторизации oauth2 для авторизации других внутренних сервисов.

ERP все еще обслуживает свой бизнес, и весь доступ требуется авторизовать, но он не основан на маркере доступа, поэтому я думаю, чтоне является клиентом oauth2.Он также не служит сервером ресурсов.

Я прочитал много статей о том, как настроить сервер авторизации oauth2 и разработать приложение с его использованием.Согласно этому комментарию я считаю возможным сделать ERP-авторизацию других сервисов без явной настройки автономным сервером авторизации (это наша конечная цель, но не сейчас):

В контекстеOAuth2, мы можем разбить вещи в соответствии с компонентом, который вы реализуете:

  • Клиентское приложение: вполне вероятно, что клиентское приложение OAuth2 на основе сервера уже использует HttpSession, и поэтому имеет смысл использовать Spring Session иВоспользуйтесь всеми преимуществами, которые оно приносит
  • Приложение Resource Server: поскольку этот компонент предоставляет API без состояния, который аутентифицирован на предмет использования токена доступа в качестве канала-носителя, HttpSession не используется, и поэтому Spring Session также не подходит
  • Приложение сервера авторизации: весьма вероятно, что оно уже использует HttpSession, так же как и в клиентском приложении OAuth2, имеет смысл использовать Spring Session и пользоваться всеми преимуществами, которые оно приносит

Что я собираюсь сделать, это добавить@EnableAuthorizationServer в конфиг, но я понятия не имею, что будет дальше.У меня вопрос: могу ли я преобразовать существующее приложение в сервер авторизации, сохранив при этом исходный сервис без изменений?С чего и как начать?

1 Ответ

0 голосов
/ 20 мая 2019

Я только что обнаружил, что интегрировать OAuth2 в существующую систему не так сложно, ниже приведено то, что я сделал, чтобы она заработала.

Вкратце: EnableAuthorizationServer ничего не сломает, но они этого не делают.либо из ничего.

Когда я надеваю EnableAuthorizationServer, spring-security-oauth2 дает мне следующую конечную точку:

  • /oauth/authorize
  • /oauth/check_token
  • /oauth/token
  • /oauth/confirm_access
  • /oauth/error

Эти конечные точки предоставляют необходимые функции для работы OAuth2, иМне просто нужно применить контроль доступа к этим конечным точкам с помощью существующего механизма входа в форму (вероятно, не check_token один).

Поскольку эта система не выступала в роли роли сервера ресурсов, часть авторизации выполнена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...