amazon-web-services - AWS CLI:从 Cognito Identities 获取用户详细信息
问题描述
使用 AWS CLI,如何从 Cognito Identities 获取用户详细信息(用户名、电子邮件)?
这个问题与https://stackoverflow.com/a/55436168/1692112有关,它似乎在 2021 年不再起作用。问题是,sub
用户池中的属性不再与IdentityId
身份池中的属性匹配。
用户池中的用户列表:
$ aws cognito-idp list-users --user-pool-id XX-XXXXX-X_XXXXXXXXX
{
"Users": [
{
"Username": "my.username.yay",
"Attributes": [
{
"Name": "sub",
"Value": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
{
"Name": "email_verified",
"Value": "true"
},
{
"Name": "email",
"Value": "my.username.yay@my.company.yay"
}
],
"UserCreateDate": 1612361296.687,
"UserLastModifiedDate": 1612361331.99,
"Enabled": true,
"UserStatus": "CONFIRMED"
}
]
}
身份池中的身份列表:
$ aws cognito-identity list-identities --identity-pool-id XX-XXXXXXXX-X:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --max-results 50
{
"IdentityPoolId": "XX-XXXXX-X:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Identities": [
{
"IdentityId": "XX-XXXXXXX-X:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"Logins": [
"cognito-idp.XX-XXXXXXX-X.amazonaws.com/XX-XXXXXXX-X_XXXXXXXXX"
],
"CreationDate": 1612795279.758,
"LastModifiedDate": 1612795279.771
}
]
}
我一直希望列表Logins
能以某种方式提及用户名或sub
,但它只是引用了整个用户池。
从理论上讲,可以使用 AWS Lambda 和 AWS Cognito 触发器来连接两个池并将 ID 存储在某处。但是,我假设 AWS Cognito 已经知道两个池之间的连接,并且有一个简单的命令来完成这项工作。
编辑:似乎即使在Pre Token Generation
调用最后一个 Cognito 触发器时,身份也不存在。此外,该event
结构在任何地方都没有引用身份。因此,AWS Lambda 和 Cognito 触发器也不会为 AWS CLI 提供解决方法。
有什么建议么?