Що таке маркер доступу проти секрету маркера доступу та ключ споживача проти секрету споживача


78

Я деякий час використовую Oauth, але ніколи не був повністю впевнений у різниці між цими чотирма термінами (та функціональністю кожного з них). Я часто бачу (наприклад, у Twitter Public API)

Consumer key:

Consumer secret:

Access token:

і

Access token secret:

поле, але я ніколи не знав, чим саме вони займаються. Я знаю, що Oauth має можливість авторизувати програми (нехай вони діють від імені користувача), але я не розумію взаємозв'язку між цими чотирма умовами авторизації і хотів би пояснити.

В основному, я не впевнений, як генеруються маркер доступу або секрет маркера, де вони зберігаються і яке відношення вони мають один до одного або до ключа та секрету споживача.

Дякую


Відповіді:


78

Споживчий ключ - це ключ API, який постачальник послуг (Twitter, Facebook тощо) видає споживачеві (послуга, яка хоче отримати доступ до ресурсів користувача у постачальника послуг). Цей ключ є тим, що ідентифікує споживача.

Споживчий секрет - це споживчий "пароль", який використовується разом із ключем споживача для запиту доступу (тобто авторизації) до ресурсів користувача у постачальника послуг.

Токен доступу - це те, що видається споживачу постачальником послуг після того, як споживач завершує авторизацію. Цей маркер визначає права доступу споживача над ресурсами конкретного користувача. Кожного разу, коли споживач хоче отримати доступ до даних користувача від цього постачальника послуг, споживач включає маркер доступу в запит API до постачальника послуг.

Сподіваюся, що це прояснить. Я б порекомендував провести перегляд на початку специфікації oAuth 2.0 . Це справді інформативно.


1
Що я не отримую, так це те, що в моєму додатку Twitter все це вже надано (це означає, що мені не потрібно було проходити аутентифікацію на сервері, щоб отримати маркер доступу, оскільки це було у мене, як тільки я зареєстрував додаток у Twitter. I думав, ти сказав, що мені потрібно пройти автентифікацію, перш ніж я отримаю маркер доступу?
Startec

6
Twitter дозволяє вам генерувати маркер доступу для себе (зокрема вашого облікового запису), щоб ви могли тестувати за допомогою нього. Однак для кожного іншого користувача, який використовує вашу програму, маркер доступу (для цього користувача) може бути отриманий лише після того, як користувач пройде автентифікацію.
Хен Сапір

Якщо ви хочете спробувати отримати інформацію з облікового запису користувачів у Twitter, чи потрібно, щоб вони щоразу входили / автентифікувались? Яку інформацію (маркер / ключі) ви можете зберегти для подальшого запиту? - Чи можете ви використовувати той самий маркер доступу / секрет доступу?
MattOlivos

@HenSapir, я не згоден з Вашим описом "секрету маркера доступу". Я не знаю, що це означає, це не стандартний термін, але я знаю, що НЕ буває, що "секрет маркера доступу надсилається разом із маркером доступу". Це не. Надсилається лише маркер доступу. Я підозрюю, що хтось написав "секрет маркера доступу", маючи на увазі "маркер доступу, який є секретом"
Елрой Флінн,

Зверніть увагу, що термін "споживач" є старим. Специфікації OAuth використовують термін "клієнт". Це зазначається у розділі 1.1 tools.ietf.org/html/rfc5849
Елрой Флінн,

9

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

Для отримання детальної інформації погляньте на ці корисні слайди від Google:

https://docs.google.com/presentation/d/1KqevSqe6ygWVj4U-wlarKU7-SVR79x-vjpR4gEc4A9Q/edit?pli=1#slide=id.g1697c74a_1_14

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