Почему JWT — это аутентификация без сохранения состояния?

Я пытаюсь понять, как аутентификация JWT не имеет гражданства. При аутентификации с отслеживанием состояния будет идентификатор сеанса. Здесь есть токен JWT, который подписан. Таким образом, сервер аутентификации выдает токен JWT, но могу ли я сказать, что проверка токена JWT в последующих запросах выполняется сервером конечной точки (сервером приложений), а не сервером аутентификации. Я считаю, что это возможно, поскольку JWT подписан с датой истечения срока действия (а также с некоторой другой информацией), а общедоступный сертификат сервера аутентификации доступен для всех серверов конечных точек.

Таким образом, сервер аутентификации будет нести ответственность только за выдачу токенов, а не за проверку. Проверка будет выполняться сервером конечной точки.

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

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

выдающий сервер не должен поддерживать состояние выпущенных токенов.

Jonathon Reinhart 27.04.2019 16:35

Спасибо Джонатан. Означает ли это, что любой сервер может проверить JWT (а не только сервер выдачи)? Разве это не идея?

SRaj 28.04.2019 08:29

да. Любой, кто доверяет сертификату, которым был подписан JWT, будет доверять JWT — без необходимости спрашивать выдающий сервер.

Jonathon Reinhart 28.04.2019 08:34

Спасибо! Теперь понятно. Если вы добавили этот раздел ответов, я мог бы принять это как ответ (если вы добавите сейчас, я приму его). Еще раз, спасибо!

SRaj 28.04.2019 08:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
4
8 833
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Веб-токены JSON (JWT) обозначаются как лица без гражданства, поскольку авторизующему серверу не требуется поддерживать состояние; сам токен — это все, что необходимо для проверки авторизации носителя токена.

JWT — это подписал, использующие алгоритм цифровой подписи (например, RSA), который нельзя подделать. Из-за этого любой, кто доверяет сертификату подписавшего, может безопасно доверять подлинности JWT. Серверу не нужно обращаться к серверу, выдающему токен, для подтверждения его подлинности.

Обратите внимание на этой диаграмме, что Сервер ресурсов не нужно проверять обратно с Сервер авторизации:

Client accessing an API serverSource: https://jwt.io/introduction/

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

См. : https://www.jbspeakr.cc/цель-jwt-stateless-аутентификация/

Другие вопросы по теме