Как вы заметили, Cognito в качестве поставщика удостоверений отличается от Cognito в качестве пула пользователей.
Федеративные удостоверения предоставляют способ предоставления кому-либо идентифицированного доступа к вашему AWS.Ресурсы.identity_id
, который дает вам провайдер идентификации, можно считать кодом отслеживания.CIP (Congito [Federated] Identity Provider) позволяет вам получить идентификационный идентификатор, выполнив вход через любое количество провайдеров (не только пул пользователей), и даже вообще не выполнив вход.
Пользовательские пулы предоставляют вам способ управления пользователями для вашего приложения (т. Е. Набор имен пользователей, электронных писем, паролей и т. Д.).
Это причина получения от identity_id
Обратно к пулу пользователей сложно (потому что, нет никакой гарантии, что является пользователем пула пользователей, вполне может быть кто-то из Facebook).
Из того, что вы сказали, однакоПредположение о том, что identity_id
получено от аутентификации UserPool, является безопасным.Это означает, что у вас есть два варианта:
Официальный способ будет использовать удостоверение: GetOpenIdToken для преобразования identity_id
(вы можете игнорировать часть logins
запрос) в токен OpenId.Затем вы можете использовать этот токен против конечной точки userpools: GetUser .Здесь есть несколько ловушек, таких как обеспечение аутентификации с помощью области, которая позволяет вам видеть все атрибуты, которые вас интересуют.
Любопытно, однако, что значение cognitoAuthenticationProvider
не является непрозрачным и может (не официально)быть декодирован:
// Cognito authentication provider looks like:
// cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxxxxx,cognito-idp.us-east-1.amazonaws.com/us-east-1_aaaaaaaaa:CognitoSignIn:qqqqqqqq-1111-2222-3333-rrrrrrrrrrrr
// Where us-east-1_aaaaaaaaa is the User Pool id
// And qqqqqqqq-1111-2222-3333-rrrrrrrrrrrr is the User Pool User Id
Приведенный выше пример с более подробной информацией о том, как вы можете затем использовать это с userpools: AdminGetUser , можно найти здесь: https://serverless -stack.ком / глава / картирование-Cognito-идентичность Ид и пользователи бассейн-id.html