我已在我的API中使用AWS IAM身份验证来授权每个请求。现在,我需要用户的身份验证请求的用户名。例如,一个用户向我的API发出请求,而他已经被授权(IAM条目),那么我想要该用户的用户名或API密钥。有什么想法吗
答案 0 :(得分:3)
我刚刚为您做过测试。 Lambda收到了以下事件。
{
...
"body": null,
"resource": "/",
"requestContext": {
"identity": {
"userArn": "arn:aws:iam::561819318197:user/testadmin",
"cognitoAuthenticationType": null,
"principalOrgId": null,
"accessKey": "AKIAABTYKO625OKJWL65",
"caller": "AIDAYFTYKO62TO35WYOWZ",
"userAgent": "PostmanRuntime/7.6.0",
"user": "AIDAYFTCDO62TO35WYOWZ",
"cognitoIdentityPoolId": null,
"cognitoIdentityId": null,
"cognitoAuthenticationProvider": null,
"sourceIp": "[user ip]",
"accountId": "123456789012"
},
"accountId": "123456789012"
}
...
}
我认为您可以使用event.requestContext.user
。
希望这对您有所帮助。