如何从 Cognito 身份池提供的身份凭证访问用户数据?
Posted
技术标签:
【中文标题】如何从 Cognito 身份池提供的身份凭证访问用户数据?【英文标题】:How can I access user's data from an identity credential provided by a Cognito identity pool? 【发布时间】:2020-09-10 16:21:25 【问题描述】:我有以下场景:
1 - Web 客户端应用程序通过 Cognito 用户池对用户进行身份验证
2 - Web 客户端应用程序检索 Cognito 身份池提供的凭据(STS 临时凭据,而不是 id 令牌或访问令牌)
3 - Web 客户端应用程序将上述凭证发送到设置为使用 AWS_IAM 作为授权方法的 API 网关
4 - API 网关调用 lambda 函数,该函数需要知道与凭据关联的用户是谁:用户 ID 或用户名
问题
如何从 API 网关或 lambda 函数中的 Cognito 身份池提供的凭据中检索用户数据?
我的第一个想法是将附加 HTTP 标头中的 id 令牌发送到 API Gateway,但我没有找到在 API Gateway 中解码令牌的方法。
第二种选择是将 id 令牌传递给 would decode the token 的函数 lambda,但我认为这将是 lambda 函数的重量级操作。
【问题讨论】:
【参考方案1】:如果您使用用户池作为 cognito 身份池的身份验证提供程序,您可以先map identity id to user pool id。然后要检索用户的数据,您可以在 lambda 函数中使用AdminGetUser。
【讨论】:
以上是关于如何从 Cognito 身份池提供的身份凭证访问用户数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何修改 AWS Cognito 用户池的访问令牌和身份令牌的到期时间