【发布时间】:2018-02-23 21:48:51
【问题描述】:
我有一个用户可以登录的网络服务等等。我想设置 AWS API Gateway 以允许用户通过 API 与服务交互。由于用户管理/密码管理已经在系统中,我不希望用户必须转到另一个系统。
我首先查看了 Cognito 用户池,但我无法完全自动化用户创建/验证过程,AWS 在支持票证中说用户必须单独验证电子邮件。然后他们建议使用 Lambda 函数来设置授权。
我创建了一个 Lambda 函数并且 API Gateway 正在授权,但是看起来只发送了一个变量来进行授权,Identity token。如果我这样做了,我的 Lambda 函数可以从我的服务中发现密钥是有效的,但它并没有真正与用户关联。
我所追求的是一种从我的系统向用户提供客户端 ID 和密码的方法(我可以生成所有这些),然后用户使用客户端 ID 向 API Gateway 端点发出请求,然后密钥,网关将客户端 ID 和密钥发送到调用我的系统进行验证的 lambda 函数,Lambda 返回有效策略,API 网关然后将请求发送到我的服务,其中包含客户端 ID 或从策略返回的其他标识符所以我的系统知道请求的客户端。
在不将用户带到单独的系统 (Cognito) 的情况下实现这一目标的最佳方法是什么?
【问题讨论】:
标签: authorization aws-lambda aws-api-gateway amazon-cognito