Доступ к информации о пользователе от lambda - PullRequest
0 голосов
/ 15 ноября 2018

Я работаю над безсерверным приложением с aws.

Я использую AWS Cognito User Pool для управления пользователем: регистрация, вход в систему, выход из системы. После подтверждения этих пользователей я использую AWS Cognito Identity Pool для получения временных учетных данных. Затем я использую эти учетные данные для доступа к API (конечная точка на моем API требует AWS_IAM для аутентификации и вызова lambda).

Все это прекрасно работает. Но мне нужно знать, какой пользователь запросил действие. В лямбде я могу получить IdentityId из своего пула удостоверений. Но мне нужно получить атрибуты от моего пользователя в пуле пользователей.

Итак, мой вопрос: есть ли способ получить пользователя из пула пользователей, используя IdentityId Identity, прикрепленного к нему? Или хотя бы получить токен доступа? Я знаю, что могу отправлять токен доступа в заголовках, но хотел бы зависеть только от аутентификации AWS_IAM.

1 Ответ

0 голосов
/ 16 ноября 2018

Получение от федеративного identity_id обратно к пользователю пула пользователей сложно, потому что нет гарантии, что это пользователь пула пользователей (это может быть кто-то из Facebook или даже неаутентифицированный пользователь - в зависимости от пользователя).в вашей конфигурации).

  1. Учитывая IdentityId, вы можете использовать удостоверение: GetOpenIdToken , чтобы получить действительный токен OpenId (вы можете игнорировать часть loginsзапрос, если вы просто используете UserPools).

  2. Затем вы можете использовать этот токен против userpools: GetUser конечная точка.

Здесь есть несколько ловушек, например, проверка подлинности с помощью области, которая позволяет вам видеть все атрибуты, которые вас интересуют.Если нет, то вам нужно будет использовать username, возвращенный с userpools: AdminGetUser , чтобы получить полный профиль пользователя.

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