2017-01-13 9 views
0

я собирался через следующую статью о разрешении:OAuth параметр 2,0 Область применения против OAuth 2.0 JWT access_token области видимости претензии

https://auth0.com/docs/quickstart/backend/aspnet-core-webapi/02-authorization

Это своего рода смутило меня немного.

Auth0 использует заявку на область действия для указания авторизации действий конечных точек.

Параметр области OAuth 2.0 также используется для этой же цели, например. Натяжной упоминает эти прицелы как в следующей ссылке:

https://api.slack.com/docs/oauth-scopes

Что бы их прецеденты, когда бы я предпочитаю использовать претензии сферу JWT, который является частью OAuth 2.0 access_token (в данном случае access_token не является непрозрачным) вместо параметра области OAuth 2.0

ответ

2

Параметр области OAuth 2.0 определен в спецификации как способ для конкретного доступа к запросу клиентского приложения, а затем должен быть информирован сервером авторизации, доступ к которому действительно был предоставлен.

Оба упомянутых вами сценария кажутся вполне соответствующими этому варианту использования; способ указать права доступа/разрешения, которым вы были предоставлены.

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

Таким образом, параметр scope - это способ передачи необходимого вам доступа и доступа, которому вы действительно были предоставлены. Эта информация также должна быть сохранена в связи с выданным токеном доступа. Если это JWT, он скорее всего будет храниться в самом токене; если это непрозрачный токен, он скорее всего будет храниться на стороне сервера.

+0

Таким образом, вы имеете в виду, что параметр области имеет один к одному соответствие с требованием к сфере видимости, заявка области видимости возникает после создания access_token, и параметр области используется для запроса этих требований, а затем либо хранится в JWT (без гражданства) access_token, либо сохраняется на сервере в случае непрозрачного токена доступа –

+0

Я бы в основном согласился с этой интерпретацией; Я бы не сказал, что это одна к одной корреспонденции, так как вы можете запросить определенное количество областей, но тогда вам предоставляется только подмножество областей, которые вы запросили. Кроме того, да, претензия - это просто способ отслеживать области, которые были предоставлены в самом токене. –