#session #cookies #single-sign-on #subdomain #amazon-cognito
#сессия #файлы cookie #единый вход в систему #поддомен #amazon-cognito
Вопрос:
в настоящее время я работаю над приложением, в котором мы хотим предложить единый вход, но позвольте мне ввести вас в контекст:
У нас есть два разных клиента Cognito, созданных для одного и того же пула Cognito, оба настроены так, чтобы пользователи могли входить в два разных приложения:
- Приложение А: mydomain.com
- Приложение B: appb.mydomain.com
ну, дело в том, что когда пользователь использует размещенный пользовательский интерфейс для входа в первое приложение, я заметил, что сервер Cognito создает файл cookie с именем «Cognito», как видно на изображении: Cookie, установленный сервером аутентификации
Затем, когда пользователь пытается получить доступ к другому приложению appb.mydomain.com , и приложение, вместо того, чтобы показывать размещенный пользовательский интерфейс, пользователь автоматически входит в приложение, не повторяя весь процесс входа в систему, и это возможно из-за упомянутого мной файла cookie (когда я удаляю этот файл cookie, пользователь запрос на повторный вход в систему с использованием своих учетных данных).
Итак, это хорошо, потому что пользователю не нужно снова проходить весь процесс входа в систему. Но моя ситуация следующая: я хочу создать страницу входа в mydomain.com с моей собственной настроенной формой и использованием Cognito SDK. У меня уже работает серверная часть, а также интерфейс. Серверная часть может аутентифицировать пользователей для получения токенов JWT (idToken, токен обновления и т. Д.), Как вы можете видеть на следующем изображении: Токены, которые я получаю при аутентификации пользователя
Но на данный момент я не могу перенаправить пользователя на appb.mydomain.com я имею в виду, что при действительном сеансе у меня есть токены JWT, и я попытался сделать то же самое, что делают размещенные клиенты пользовательского интерфейса, то есть установить файл cookie, каким-то образом содержащий сеанс JWT. Но я не знаю, как создать приложение appb.mydomain.com чтобы иметь возможность обнаружить этот файл cookie. Но самая важная проблема заключается в том, что я действительно не знаю, как создать действительный файл cookie (например, Cognito), который будет обнаружен mydomain.auth.eu-west-1.amazoncognito.com (этот домен является общим для обоих размещенных клиентов пользовательского интерфейса).
Я не знаю, выполним ли этот подход, или если есть другой подход для отправки токена JWT на сервер аутентификации с обратным вызовом для перенаправления пользователя на appb.mydomain.com без повторного прохождения всего процесса входа в систему или чего-то в этом роде.
Есть ли у вас какие-либо рекомендации по внедрению такого рода единого входа? Я использую .Net Core в бэкэнде.
Комментарии:
1. Просто к вашему сведению — вы не задаете здесь один вопрос, а скорее хотите начать обсуждение. Хранение файлов cookie является тривиальным практически на любом языке программирования. Вы можете хранить свой JWT там (с некоторыми соображениями безопасности, конечно). Вам нужно будет сузить вопрос, чтобы он действительно отвечал.