Поэтому я разрабатываю приложение .NET Core MVC для внутреннего использования в компании. Я только что создал учетные записи пользователей с помощью AWS Cognito и Cognito .NET провайдера идентификации
У меня также есть API, с которым взаимодействует приложение MVC. Я хочу использовать один и тот же пул пользователей для защиты этого API, чтобы пользователь просто входил в приложение MVC, а затем он мог использовать оба приложения и не беспокоиться о доступе к API, который происходит в фоновом режиме.
У меня есть смесь вызовов как со стороны сервера приложения, так и из JavaScript.
Я знаю, как получить токен доступа со стороны сервера моего приложения, но я не уверен, что мне следует делать с ним, как только я его получу. Я хотел бы, чтобы любой токен доступа, который я получаю на стороне сервера, был также доступен на стороне клиента. Это связано с тем, что для получения нового токена доступа из JavaScript необходимо повторно ввести имя пользователя и пароль (см. Шаг 5 здесь: https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-javascript.html).
Первоначально я думал о том, чтобы запросить токен доступа при входе пользователя (на стороне сервера) и сохранить его в файле cookie. Я прочитал, что вы всегда должны включать HttpOnly
и Secure
при хранении конфиденциальной информации в файлах cookie. Это означает, что JavaScript не может получить доступ к файлам cookie, что, в свою очередь, предотвращает атаки XSS. К сожалению, это означает, что я не смог бы получить токен доступа, когда мне нужно будет вызывать мой API с клиентской стороны моего приложения. Я полагаю, что токен может быть слишком большим, чтобы его можно было сохранить в куки?
Я также знаю, что конфиденциальная информация, безусловно, не должна храниться в локальном хранилище , поэтому это не вариант.
Я впервые имею дело с миром токенов доступа, поэтому прошу прощения, если это дубликат.