Доступ к токену и хранилищу идентификатора токена для безсерверного приложения - PullRequest
1 голос
/ 08 мая 2019

Я пишу приложение без сервера с AWS (Lambda, API Gateway, Cognito и т. Д.), И я задаюсь вопросом, как лучше защитить свой стек.

Я читал, что для приложений, использующих сервер, EC2 или другие, лучше всего хранить токены идентификатора пользователя в бэкэнде.Это имеет смысл, поскольку процесс узла предоставит мне долгосрочное решение для привязки и повторного использования ID-токенов.Безсерверное приложение, с другой стороны, не предоставляет такой роскоши.Я подумал о том, чтобы оставить его на переднем крае - ведь токены JWT, предоставляемые cognito, подписаны, и поэтому должны быть защищены от подделки, но это кажется немного тревожным с моей стороны.Я бы предпочел систему, в которой пользователи не имеют прямого доступа к своим токенам.Я также думал о том, чтобы просто запрашивать новый токен для каждого запроса, отправляемого в Lambda, но это тоже кажется далеко не идеальным решением.

Существует ли какая-либо общепринятая практика в отношении безсерверной аутентификации и авторизации?Я на правильном пути, просто храню свои токены на стороне клиента, пока у пользователя открыто приложение?

1 Ответ

2 голосов
/ 08 мая 2019

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

Например, ниже приведены заголовки запроса.В разделе Авторизация хранится токен jwt, который может быть декодирован в https://jwt.io/, но не может быть изменен,

Host: aa.aa.aa
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer: token234567890-eddedede
X-Requested-With: XMLHttpRequest
Connection: keep-alive

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

...