2016-01-07 4 views
3

Я только что прочитал The Ins and Outs of Token-based Authentication. Он утверждает, что масштабируемость является основной проблемой с server based Authentication, так как сервер должен хранить сеансы локально. И это вызывает token based authentication как лекарство.Аутентификация на основе токена и масштабируемость? Иллюзия?

На самом деле?

Аутентификация - это лишь одно из возможных мест, которые могут вызвать проблему масштабируемости. Пока существует ЛЮБАЯ пользовательская информация о состоянии, хранящаяся на стороне сервера, независимо от того, хранится ли она в области сеанса или области веб-приложения, это также вызовет проблему масштабируемости. Чрезмерно преувеличено говорить, что только token based authentication может решить проблему масштабируемости. Слишком много других факторов, которые намного сильнее. Просто потому, что аутентификация на основе токена является апатридом, не означает, что весь сервер МОЖЕТ быть апатридом.

Давайте JWT в качестве примера, по definition of JWT:

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

Я не думаю, что JWT подходит для хранения состояния информации за аутентификационных данных. Поскольку общие разумные места для хранилища JWT имеют ограниченный размер, например HTTP-заголовок, Cookie.

Вы согласны? Кто-нибудь может пролить свет на это?

+0

Вы можете сохранить сеансы в базе данных noSql, например dynamoDB. –

ответ

2

Независимо от того, требует ли ваше приложение состояние сеанса для других целей, не влияет на характеристики масштабируемости с использованием токенов JWT.

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

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

+0

Спасибо. Что касается приложения без учета состояния, подходит ли оно только для определенных типов приложений? – smwikipedia

+0

Приложения @smwikipedia были созданы без гражданства, чтобы они могли масштабироваться легче. В настоящее время вы вновь проявляете интерес к услугам с поддержкой состояния (actor), особенно в играх и IoT. Но они работают на платформах, которые обеспечивают масштабирование и надежность (например, Azure Service Fabric). – MvdD

Смежные вопросы