AWS 身份验证和日志记录
Posted
技术标签:
【中文标题】AWS 身份验证和日志记录【英文标题】:AWS Authentication and Logging 【发布时间】:2021-07-31 08:16:09 【问题描述】:我想:
-
使用 AWS Cognito 用户池对用户进行身份验证并向 API 网关发出请求。
有一些方法可以向不同的用户组授予不同的权限级别。
记录发出请求的用户并将用户详细信息传递到后端。
目前,我在 API Gateway 上使用 IAM 授权器,并使用 AWS 签名 4 对传入的请求进行签名。我还使用用户池组为不同的用户授予不同的权限。
不过,我不确定如何最好地识别发出请求的用户。是否可以访问这些详细信息?记录用户名(或某些用户 ID)并将用户 ID 传递给 Lambda 函数后端以进一步检查?
或者使用 JWT 访问令牌和 OAuth 范围或类似的东西会更好吗?
【问题讨论】:
【参考方案1】:如果您使用 api gateway 和 lambda 作为代理,那么您可以访问 lambda 中的事件对象以获取相关信息。尝试获取 event.requestContext.identity 其中包含
"cognitoIdentityPoolId": null,
"accountId": null,
"cognitoIdentityId": null,
"caller": null,
"sourceIp": "52.255.255.12",
"principalOrgId": null,
"accessKey": null,
"cognitoAuthenticationType": null,
"cognitoAuthenticationProvider": null,
"userArn": null,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
"user": null
,
在您的 lambda 函数中。
参考:https://github.com/awsdocs/aws-lambda-developer-guide/blob/main/sample-apps/nodejs-apig/event.json
【讨论】:
以上是关于AWS 身份验证和日志记录的主要内容,如果未能解决你的问题,请参考以下文章
具有 Cognito 身份验证的 AWS API Gateway Lambda 函数返回 415 Unsupported Media Type
Firebase 身份验证与 AWS Cognito [关闭]