OAuth 2.0 соответствует состоянию? - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в OAuth, но я не понимаю, как Resource Server использует access_token, чтобы узнать, достаточно ли у пользователя разрешений для запрошенного ресурса.

У меня три конкретных вопроса:

first : Resource Server вызывает authorization Server для каждого access_token (например, для получения информации о пользователе, такой как имя пользователя, ..)?

секунда : хранит ли authorization Server какие-либо данные о выданных access_token с? и если да, могу ли я сделать это без сохранения состояния?

третий : я хочу разработать приложение с микросервисной архитектурой, сервером аутентификации / авторизации (с OAuth) и другими службами, и я хочувсе мои сервисы должны быть полностью не сохраняющими состояние (я имею в виду, что мои сервисы вообще не должны вызывать сервер OAuth и получать всю необходимую информацию из access_token, такую ​​как имя пользователя и т. д.), возможно ли это?

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

OAuth выполнит авторизацию точки входа, но, как правило, вы также захотите сделать более глубокую авторизацию в каждом API. Моя статья может помочь вам понять, как вырастить ваши микросервисы в этой области. Конструкция включает в себя некоторое простое в управлении состояние, и кеширование утверждений является обычной моделью: https://authguidance.com/2017/10/03/api-tokens-claims/

0 голосов
/ 25 октября 2019

Протокол OAuth 2.0 оставляет состояние вплоть до реализации. Из спецификации doc :

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

Так что вам решать, как вы хотите его реализовать. Для реализации без сохранения состояния посмотрите токены JWT , которые являются зашифрованными токенами, которые могут содержать всю информацию, которую должен знать ваш ресурсный сервер. Я бы посмотрел на OpenID Connect протокол, который должен соответствовать вашим потребностям.

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