繁体   English   中英

从请求中识别未经身份验证的 Cognito Identity ID

[英]Identify unauthenticated Cognito Identity ID from request

我有一个 AWS API,其访问权限由与 Cognito Identity 池的未经身份验证角色关联的IAM 授权方控制。 成功调用 API 会调用 Lambda function。

目前的流程是:

  1. 用户获得临时安全证书 这包括:
    • 用户IdentityId例如eu-west-2:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 这是我在 Lambda function 中需要的信息 - 见下文。
    • 访问凭证: AccessKeyIdSecretKeySessionToken
  2. 用户使用签名请求调用 API。 请求的 header 包括X-Amz-Security-Token ,从步骤1获得
  3. 如果授权成功,请求将发送到 Lambda function。 event.headers包括X-Amz-Security-Token

Lambda eu-west-2:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX是否有可能从请求的 header 中可用的数据或任何其他方法。

我尝试过的事情:

  • sts.getCallerIdentity with Invoke with caller credentials在 API 网关中勾选
  • 查看SessionToken ,虽然这似乎只是一个临时访问令牌,而不是包含任何有用的数据,如 JWT。

如果绝对必要,我可以在每个请求中包含用户的身份 ID,但我希望尽可能避免这种情况。

用户的 Cognito ID 包含在传递给您的 Lambda function 的event object 的requestContext属性中。

例如,访问 API 的 Cognito 用户的身份是:

event['requestContext']['identity']['cognitoIdentityId'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM