Какой идентификатор будет использоваться для проверки запроса пользователя? Идентификационный токен или токен доступа - AWS Cognito - PullRequest
1 голос
/ 20 января 2020

Я пытаюсь реализовать одностраничное приложение, используя AWS Cognito в качестве IdP. Я планирую подключить Node-сервер к MongoDB. Стек MEAN в основном.

Структура моего приложения :

Я выбрал Implicit Grant Потоки OAuth в настройках Клиент приложения для Пул пользователей .

Email и OpenID для разрешенных областей OAuth.

Домашняя страница (вход / регистрация) -> AWS Cognito SignIn / SignUp - > URL обратного вызова [содержит id_token, access_token, expires_in и token_type] -> Сервер API

Понимание :

Использование методов декодирования упомянуто в документации, я думаю, что я должен быть в состоянии проверить, что access_token является Действительным и принадлежит моему пулу пользователей.

Используя id_token, я полагаю, должна иметь возможность извлекать пользовательскую запись.

Вопрос

Каким образом можно ограничить запрос API с действительным токеном на просмотр каких-либо других данных пользователя?

Испытания :

  • Разработайте API таким образом, чтобы он не ожидал Параметры запроса и использует ТОЛЬКО токен, отправляемый для каждого запроса API на получение соответствующей записи пользователя.

Требуется уточнение :

  • Нужно ли отправлять id_token и access_token от моего пользовательского интерфейса до сервера API для каждого запроса API, или достаточно одного маркера? Какой это должен быть?

  • Должен ли мой API-сервер подключаться к AWS Cognito для каждого вызова API, чтобы проверить, действителен ли токен на их конце, или чтобы получить attributes из пользовательского пула с использованием этого токена?

1 Ответ

1 голос
/ 21 января 2020

Краткий ответ: идентификатор токена . Проверьте Использование идентификатора токена docs.

Идентификационный токен представляет собой JSON веб-токен (JWT), который содержит утверждения о личности аутентифицированного пользователя [.. .] Вы можете использовать эту личную информацию в вашем приложении. Идентификационный токен также можно использовать для аутентификации пользователей на ваших ресурсных серверах или серверных приложениях.

Более длинный ответ: тогда как идентификационный токен - это путь к go, если вы хотите обрабатывать все авторизации самостоятельно ( т. е. ваш бэкэнд использует маркер идентификатора, чтобы решить, к каким ресурсам разрешен доступ данному пользователю), вы также можете использовать Congito ID Pool для выполнения авторизации. То есть преобразовать учетные данные пула пользователей, которые у вас есть прямо сейчас, в AWS учетные данные IAM. Роль IAM, поддерживающая это, может быть указана пользователем c, с использованием идентификатора Cognito текущего пользователя в политике ролей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...