Что такое токены на предъявителя и token_type в OAuth 2? - PullRequest
133 голосов
/ 08 мая 2011

Я пытаюсь реализовать поток Владелец ресурса и пароль из спецификации OAuth 2. У меня проблемы с пониманием значения token_type, которое отправляется обратно с правильным ответом. В спецификации все примеры показывают "token_type":"example", но говорят, что это должно быть

token_type ТРЕБУЕТСЯ. Тип токена, выпущенного, как описано в Раздел 7.1 . Значение регистрозависимо.

Может кто-нибудь, пожалуйста, объясните мне это?

Ответы [ 3 ]

154 голосов
/ 27 марта 2012

token_type - это параметр в Access Token Generate Call для сервера авторизации, который, по сути, представляет, как access_token будет сгенерирован и представлен для вызовов доступа к ресурсам. Вы предоставляете token_type в вызове генерации токена доступа к серверу авторизации.

Если вы дадите Bearer (по умолчанию в большинстве реализаций), access_token будет сгенерировано и отправлено вам обратно. Носителя можно просто понимать как «дать доступ к носителю этого токена». Один действительный токен и без вопросов. С другой стороны, если вы выберете Mac и sign_type (по умолчанию hmac-sha-1 в большинстве реализаций), токен доступа будет сгенерирован и сохранен в качестве секретного в Key Manager как атрибут и зашифрованный секрет отправляется обратно как access_token

Да, вы можете использовать собственную реализацию token_type, но это может не иметь особого смысла, поскольку разработчикам нужно будет следовать вашему процессу, а не стандартным реализациям OAuth.

32 голосов
/ 17 мая 2011

Любой может определить «token_type» как расширение OAuth 2.0, но в настоящее время тип токена «bearer» является наиболее распространенным.

https://tools.ietf.org/html/rfc6750

В основном это то, что использует Facebook.Однако их реализация немного отстает от последней спецификации.

Если вы хотите быть более безопасным, чем Facebook (или такой же безопасный, как OAuth 1.0, у которого есть «signature»), вы можете использовать токен типа «mac».

Однако это будет трудный путь, так как спецификации Mac все еще быстро меняются.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

13 голосов
/ 18 июля 2017

Информация о заголовке Mozilla MDN

Жетон на предъявителя
Маркер безопасности с тем свойством, что любая сторона, владеющая токеном («носитель»), может использовать токен любым способом, которым может воспользоваться любая другая сторона, обладающая этим токеном. Использование токена на предъявителя не требует, чтобы носитель доказал наличие материала криптографического ключа (подтверждение владения).

Токен Bearer или Refresh создается для вас сервером аутентификации. Когда пользователь аутентифицирует ваше приложение (клиент), сервер аутентификации затем отправляется и генерирует для вашего токена носителя (токен обновления), который вы затем можете использовать для получения токена доступа.

Токен на предъявителя, как правило, представляет собой какое-то загадочное значение, создаваемое сервером аутентификации, оно не случайно, оно создается на основании того, что пользователь предоставляет вам доступ, а клиент получает доступ к вашему приложению.

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