Что делать с токеном доступа Cognito? - PullRequest
0 голосов
/ 22 января 2019

Поэтому я разрабатываю приложение .NET Core MVC для внутреннего использования в компании. Я только что создал учетные записи пользователей с помощью AWS Cognito и Cognito .NET провайдера идентификации

У меня также есть API, с которым взаимодействует приложение MVC. Я хочу использовать один и тот же пул пользователей для защиты этого API, чтобы пользователь просто входил в приложение MVC, а затем он мог использовать оба приложения и не беспокоиться о доступе к API, который происходит в фоновом режиме.

У меня есть смесь вызовов как со стороны сервера приложения, так и из JavaScript.

enter image description here

Я знаю, как получить токен доступа со стороны сервера моего приложения, но я не уверен, что мне следует делать с ним, как только я его получу. Я хотел бы, чтобы любой токен доступа, который я получаю на стороне сервера, был также доступен на стороне клиента. Это связано с тем, что для получения нового токена доступа из JavaScript необходимо повторно ввести имя пользователя и пароль (см. Шаг 5 здесь: https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-javascript.html).

Первоначально я думал о том, чтобы запросить токен доступа при входе пользователя (на стороне сервера) и сохранить его в файле cookie. Я прочитал, что вы всегда должны включать HttpOnly и Secure при хранении конфиденциальной информации в файлах cookie. Это означает, что JavaScript не может получить доступ к файлам cookie, что, в свою очередь, предотвращает атаки XSS. К сожалению, это означает, что я не смог бы получить токен доступа, когда мне нужно будет вызывать мой API с клиентской стороны моего приложения. Я полагаю, что токен может быть слишком большим, чтобы его можно было сохранить в куки?

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

Я впервые имею дело с миром токенов доступа, поэтому прошу прощения, если это дубликат.

...