如何从Cognito身份池提供的身份凭证访问用户数据?

时间:2020-05-23 21:00:53

标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito

我有以下情况:

1-Web客户端应用通过Cognito用户池对用户进行身份验证

2-Web客户端应用检索由Cognito身份池提供的凭据(STS临时凭据,而不是id令牌或acess令牌)

3-Web Client App将上述凭证发送到API网关,该网关设置为将AWS_IAM用作授权方法

4-API网关调用lambda函数,该函数需要知道谁是与凭据关联的用户:用户ID或用户名

问题

如何从API网关或lambda函数中的Cognito身份池提供的凭据中检索用户数据?

我的第一个想法是将附加HTTP标头中的id令牌发送到API网关,但是我没有找到在API Gateway中解码令牌的方法。

第二种选择是将id令牌传递给would decode the token的lambda函数,但我认为这是对lambda函数的重载操作。

1 个答案:

答案 0 :(得分:1)

如果您正在使用用户池作为cognito身份池的身份验证提供程序,则可以先map identity id to user pool id。然后,可以在lambda函数中使用AdminGetUser来检索用户的数据。