【发布时间】:2021-10-25 07:36:06
【问题描述】:
我们正在将我们的基础设施迁移到 AWS。我们正在开发一个后端层作为 Lambda 函数,并将其托管在 API Gateway 后面。我们正在使用客户端凭据流并使用客户端 ID - 机密对客户端进行身份验证。在我们向 Cognito 中的 Oauth 发送令牌请求后,它会返回一个访问令牌,我们正在使用此令牌访问 API Gateway 托管的 REST 服务。
因此,我们需要区分请求的所有者有两个目的; -首先,我们要审核输入和输出以及组织的名称(一个组织可能有不同的应用程序客户端) -其次,我们可能需要根据组织的名称在 lambda 函数中具有不同的行为。 我们希望使用客户端凭据流来更轻松地访问 API。
我认为我可以添加自定义字段并使用 JWT 访问令牌中的字段,但是,这个答案说这是不可能的。 -> https://stackoverflow.com/a/62382001
有什么建议可以根据我们可以在 cognito 端添加的信息来区分 Lambda 函数中的用户。 (我计划这个字段将属于 app-client) 或者有什么方法可以区分 API Gateway 中的用户并将信息发送到 Lambda 函数?
如果我的问题有任何不明确的部分,请写信给我,我可以澄清。 提前致谢。
一山
【问题讨论】:
-
您是否尝试过使用身份令牌?它们具有您为用户定义的自定义属性(并配置为包含在内)。
-
当我使用 ID 令牌时,我无法使用客户端凭据流。在使用 ID Token 的情况下;在访问 Rest API 之前应该有多个请求。首先获取 Id 令牌 -> 发送第二个请求以获取访问令牌。在客户端凭据流程中,我们只需发送客户端 ID 和密钥并获取访问令牌。
-
这是因为客户端凭据流是为机器对机器身份验证创建的。因此,该流程中根本没有用户身份。
标签: aws-lambda aws-api-gateway amazon-cognito