2017-02-07 10 views
9

Я использовал идентификатор ASP.NET некоторое время сейчас и смотрел JWT (JSON Web Token), поскольку они кажутся действительно интересными и простыми в использовании.Идентификатор новичка удостоверения личности ASP.NET против JWT Плюсы и минусы

JWT.IO имеет отличный пример/инструмент для отладки токена.

Однако я не совсем уверен, как работа JWT на заднем конце, вы все равно будете использовать Identity?

Также как сравнивать токены (Bearer vs JWT)? Что более безопасно?

ответ

22

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

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

Поскольку все в JWT, и клиент может представить его кому угодно, вы можете использовать его для Single Sign On, пока разные серверы имеют один и тот же секрет, чтобы они могли проверить подпись.

Как билет, JWT имеет срок годности. До тех пор, пока он не истек, он действителен. Это означает, что вы не можете отменить их до этого. По этой причине JWT часто имеют короткие сроки истечения (30 минут или около того), а клиенту также выдается токен обновления, чтобы быстро возобновить JWT по истечении срока его действия.

JWTs

  • не хранится на сервере
  • Большой для SSO
  • не может быть аннулировано досрочно

Предъявительские лексемы как список гостей. Сервер помещает клиента в список гостей, затем предоставляет код доступа, чтобы идентифицировать его, когда он чего-то хочет. Когда клиент предоставляет код, сервер просматривает его в списке и проверяет, разрешено ли ему делать все, что он просит.

Сервер должен иметь доступный ему список, поэтому, если вы хотите предоставить доступ к серверам, они либо все должны иметь доступ к списку (базе данных), либо поговорить с некоторыми полномочиями, имеющими его (auth server).

С другой стороны, поскольку у них есть список гостей, они могут отнять вас, когда захотят.

Предъявительские токены

  • Хранится на сервере
  • Может быть отозвана в любое время
  • Требуется центральный орган или общую базу данных, чтобы разделить маркер на серверах

Bit Tech имеет несколько отличных руководств по внедрению JWT с Web Api, если вы хотите спуститься по этому маршруту.

http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-and-identity-2/

+2

Спасибо за простое объяснение различий здесь. Мне нравится реальный пример билета и списка гостей. – Robert