Що таке маркер носія та тип token_type в OAuth 2?


140

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

token_type ПОТРІБНО. Тип виданого маркера, як описано в розділі 7.1 . Значення є нечутливим до регістру.

Може хтось, будь ласка, пояснить це мені?

Відповіді:


158

token_type- це параметр в Access Token, що генерує дзвінок на сервер авторизації, який по суті представляє, як буде створено та представлено доступ access_token для викликів доступу до ресурсу Ви надаєте token_type у виклику генерації маркера доступу на сервер авторизації.

Якщо ви дасте Bearer(За замовчуванням для більшості реалізації), access_tokenформується та відправляється назад. Носія може бути просто зрозуміла як "надати доступ носію цього маркера". Один дійсний маркер і жодного питання не задавали. З іншого боку, якщо ви вибрали Macта sign_type(за замовчуванням hmac-sha-1для більшості реалізацій), маркер доступу генерується та зберігається як таємний у Key Manager як атрибут, а зашифрований секрет повертається якaccess_token

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


28
Я вважаю, "надати доступ носію цього маркера" полегшує розуміння. Це еквівалент видачі чека "дай гроші на пред'явника чека".
NVM

@NVM Дякую за пропозицію, це, безумовно, має сенс. Я оновив те саме.
Абхішек Тяги

33

Будь-хто може визначити "token_type" як розширення OAuth 2.0, але на даний момент тип "лексеми" на базі даних є найпоширенішим.

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

В основному саме цим і користується Facebook. Однак їх реалізація трохи відстає від останньої специфікації.

Якщо ви хочете бути більш безпечним, ніж Facebook (або настільки ж захищеним, як OAuth 1.0, який має "підпис"), ви можете використовувати маркер типу "mac".

Однак це буде важким шляхом, оскільки специфікація mac все ще швидко змінюється.

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


14

Інформація про заголовки MDL Mozilla

Токен для носія Позначення
безпеки з майном, яке може мати будь-яка сторона, що має маркер ("пред'явник"), використовувати маркер будь-яким способом, яким може користуватися будь-яка інша сторона. Використання маркера носія не вимагає від власника доказування володіння криптографічним ключовим матеріалом (підтвердження володіння).

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

Маркер Bearer - це звичайно якесь криптовалютне значення, створене сервером аутентифікації, воно не випадкове, воно створюється на основі користувача, який надає вам доступ, і клієнт, що отримує доступ до вашої програми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.