oauth2 - Как сервер ресурсов узнает, авторизован ли пользователь? - PullRequest
0 голосов
/ 24 октября 2018

Я читал статьи в Google, но ни одна из них не объяснила мне проблему.В статье digitalocean есть это изображение, которое я хотел бы использовать для объяснения:

enter image description here

Так что я не понимаю шаги 5 и 6. Когда аутентификациясервер возвращает токен доступа, он используется для получения данных с сервера ресурсов.Но как сервер ресурсов узнает, действительно ли токен доступа действителен?Он спрашивает сервер авторизации, является ли токен действительным?

Например, что произойдет, если я придумаю какой-нибудь токен произвольного доступа и отправлю запрос на сервер ресурсов с этим токеном?Откуда он знает, что токен недействителен?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Проверка токена доступа на сервере ресурсов обычно выходит за рамки спецификации OAuth.Есть два способа сделать это:

  • Вызвать конечную точку самоанализа сервера авторизации с токеном доступа.Вы можете определить действительность по ответу от этого (например, если активный параметр равен true).
  • Расшифруйте токен вручную на сервере ресурсов.Вы можете проверить параметры в токене доступа и проверить токен.Однако параметры в токене могут различаться в зависимости от используемого вами сервера авторизации.Если токен имеет формат JWT, вы можете легко использовать библиотеку, такую ​​как nimbusds или auth0, для проверки подписи и других утверждений.

Надеюсь, это поможет.

0 голосов
/ 24 октября 2018

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

Все стандартные серверы oauth имеют документацию для обнаружения.Этот документ рассказывает, как он создает свои токены.

https://accounts.google.com/.well-known/openid-configuration

Используемые ключи можно найти jwks_uri

  • Пользователь (владелец ресурса) - тот, кто владеет данными
  • Сервер ресурсов (API) - система, в которой хранятся данные пользователя (владельца ресурса).
  • Приложение (клиент) - приложение, желающее получить доступ к данным, принадлежащим пользователю.
  • Сервер авторизации - это Oauth2 или сервер идентификации.

История

Я, как разработчик, создаю потрясающее приложение Google Analytics (Application (Client)).Я настроил свое приложение в (Authorization server) и получил идентификатор клиента и секрет клиента.

Когда вы (User (Resource owner)) запускаете мое приложение, вы получаете экран входа в систему, за которым следует экран согласия

enter image description here

Мое приложение Google Analytics windows хотело бы получить доступ к вашему google analytics data через API-интерфейс Google Analytics (Resource server (API))

Если вы скажете «да», сервер авторизации вернетсятокен доступа к Application (Client), который он может использовать для доступа к Google anlaytics api (Resource server (API))

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