AWS CLI:从 Cognito 身份获取用户详细信息

时间:2021-02-15 08:56:37

标签: amazon-web-services amazon-cognito aws-cli

使用 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 已经知道两个池之间的连接,并且有一个简单的作业命令。

编辑:似乎即使在调用最后一个 Cognito 触发器 Pre Token Generation 时,身份也不存在。此外,event 结构不会在任何地方引用标识。因此,AWS Lambda 和 Cognito Triggers 也不会为 AWS CLI 提供解决方法。

有什么建议吗?

0 个答案:

没有答案