Подтвердить что ты не робот

OAuth или JWT? Какой из них использовать и почему?

Я начинаю узнавать о аутентификации на токенах, и я пытаюсь узнать, как ее реализовать в Laravel 5. Я столкнулся с двумя очень популярными технологиями для этого, но я запутался, так как я новичок в обеих этих технологиях.

Эта статья на Medium говорит, что я должен пойти с lucadegasperi/oauth2-server-laravel, который, я уверен, является очень популярным пакетом в сообществе, судя по количеству звезд в Github и количеству ссылок, которые привели меня к этому. Это должно помочь мне с реализацией OAuth.

В этой статье в Scotch.io рекомендуется использовать tymondesigns/jwt-auth, который также очень популярен снова, судя по количеству звезд в Github.

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

Может ли кто-нибудь указать мне, каковы плюсы и минусы каждого из них и какой из них я должен реализовать? Будет ли мой тип проекта также определять, какой тип я должен использовать? И как?

Кроме того, если вы делаете аргумент, что я должен выбирать один над другим, можете ли вы также указать хорошие ресурсы, которые помогут мне начать с них. Кроме двух ссылок, которые я предоставил себе, конечно.

4b9b3361

Ответ 1

JWT - простой протокол проверки подлинности, Oauth - это среда проверки подлинности.

У опытного разработчика потребуется около месяца, чтобы полностью понять и реализовать Oauth. Опытный разработчик может забрать протокол JWT примерно через день после чтения спецификаций. Поэтому в основном это сводится к вашему конкретному прецеденту.

Если вам нужна простая аутентификация HTTP без аутентификации на api, тогда JWT просто отлично и относительно быстро реализуется даже для начинающего разработчика.

Несколько ресурсов JWT для вас:

И ресурс Oauth:

Ответ 2

JSON Web Token (JWT) - открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасного передачи информации между сторонами как объект JSON. Эта информация может быть проверена и проверена, поскольку она имеет цифровую подпись. JWT могут быть подписаны с использованием секретного (с алгоритмом HMAC) или пары открытого/закрытого ключей с использованием RSA.

OAuth 2.0 - протокол для авторизации. OAuth 2.0 заменяет работу, выполненную на оригинальном протоколе OAuth, созданном в 2006 году. OAuth 2.0 фокусируется на простоте клиентского разработчика, обеспечивая при этом конкретные потоки авторизации для веб-приложений, настольных приложений, мобильных телефонов и устройств для гостиной. Эта спецификация разрабатывается в рамках IETF OAuth WG.

- OAuth У нас разные типы токенов.

1) Знаки WS-Security, особенно маркеры SAML

2) Знаки JWT

3) Устаревшие жетоны

4) Пользовательские маркеры

Самое главное, что нужно понимать при сравнении JWT и OAuth2, заключается в том, что они не похожи друг на друга. Или даже несовместимо.

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

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

Несколько хороших ссылок:

Ответ 3

JWT означает JSON Web Token, поскольку название предполагает, что это всего лишь токен для передачи защищенных данных между двумя сторонами, то есть клиентом и сервером.

Oauth2 на другом - это набор правил или процедура, обычно называемая каркасом, которая помогает аутентифицировать и разрешать двум сторонам передавать защищенные данные.

Следующая диаграмма объяснит, как работает oauth2

поток кода авторизации

Вот более подробное объяснение шагов на диаграмме:

  • Приложение запрашивает авторизацию для доступа к ресурсам службы от пользователя
  • Если пользователь разрешил запрос, приложение получает разрешение на авторизацию
  • Приложение запрашивает токен доступа с сервера авторизации (API), предоставляя аутентификацию своей собственной идентификации и разрешение на авторизацию
  • Если идентификатор приложения аутентифицирован и разрешение авторизации действительно, сервер авторизации (API) выдает токен доступа к приложению. Авторизация завершена.
  • Приложение запрашивает ресурс с сервера ресурсов (API) и представляет токен доступа для аутентификации
  • Если токен доступа действителен, сервер ресурсов (API) обслуживает ресурс для приложения

Оба они могут использоваться вместе при передаче защищенных данных.

Где JWT вступает в игру на 3-м 6-м шагах oauth2