【问题标题】:AWS Authentication and LoggingAWS 身份验证和日志记录
【发布时间】:2021-07-31 08:16:09
【问题描述】:

我想:

  1. 使用 AWS Cognito 用户池对用户进行身份验证并向 API 网关发出请求。
  2. 有一些方法可以向不同的用户组授予不同的权限级别。
  3. 记录发出请求的用户并将用户详细信息传递到后端。

目前,我在 API Gateway 上使用 IAM 授权器,并使用 AWS 签名 4 对传入的请求进行签名。我还使用用户池组为不同的用户授予不同的权限。

不过,我不确定如何最好地识别发出请求的用户。是否可以访问这些详细信息?记录用户名(或某些用户 ID)并将用户 ID 传递给 Lambda 函数后端以进一步检查?

或者使用 JWT 访问令牌和 OAuth 范围或类似的东西会更好吗?

【问题讨论】:

    标签: api aws-lambda oauth jwt amazon-iam


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2019-05-14
      相关资源
      最近更新 更多