Web API Authentication Basic vs Bearer


89

Я створив автентифікацію на основі JWT у своєму додатку Web API. Я не можу зрозуміти різницю між

  1. Базовий маркер
  2. Жетон на пред'явника

Хтось може допомогти мені?

Відповіді:


117

Схеми автентифікації Basic і Digest призначені для автентифікації за допомогою імені користувача та секрету (див. RFC7616 та RFC7617 ).

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

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


35

Базова автентифікація передає облікові дані як пари ідентифікатора користувача / пароля, кодовані за допомогою base64. Клієнт надсилає запити HTTP ізAuthorizationзаголовком, що містить словоBasicword, після якого пробіл таbase64-encodedрядок username: password.

Авторизація: Basic ZGVtbzpwQDU1dzByZA ==

введіть тут опис зображення Примітка: Для базової автентифікації, оскільки ідентифікатор користувача та пароль передаються по мережі у вигляді чистого тексту (він закодований base64, але base64 є оборотним кодуванням), основна схема автентифікації не захищена. HTTPS / TLS слід використовувати разом із базовою автентифікацією.


Аутентифікація на пред'явника (також звана аутентифікацією токена ) має маркери захисту, які називаються маркерами на пред'явника. Під назвою "Аутентифікація на пред'явника" можна розуміти " надати доступ носієві цього маркера ". Маркер на пред'явника - це загадковий рядок, який зазвичай генерується сервером у відповідь на запит на вхід. Клієнт повинен надіслати цей маркер у заголовку авторизації під час надсилання запитів до захищених ресурсів:

Авторизація: Носій <маркер>

введіть тут опис зображення

Примітка: Подібно до базової автентифікації, автентифікацію на пред'явника слід використовувати лише через HTTPS (SSL) .

Для отримання додаткової інформації link1 , link2


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

яка перевага передачі маркера над ім’ям користувача / паролем?
Мухаммед Умер

@MuhammadUmer ви можете відкликати маркери, а також надати їм детальний доступ (тобто лише доступ для читання).
Міхай

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