我有一个用户可以登录的网络服务,等等。我想设置AWS API Gateway以允许用户通过API与服务进行交互。由于用户管理/密码管理已经在系统中,我不希望用户必须转到另一个系统。
我首先查看了Cognito用户池,但我无法完全自动完成用户创建/验证过程,支持票证中的AWS表示用户必须单独验证电子邮件。然后他们建议使用Lambda函数来设置授权。
我已经创建了一个Lambda函数,并且API网关正在授权,但看起来只有一个变量被发送用于授权Identity token
。如果我这样做,我的Lambda函数可以从我的服务中找到该密钥有效但它并没有真正与用户相关联。
我之后提供的是一种从我的系统向用户提供客户端ID和密码的方法(我可以生成所有这些),然后用户向客户端发送API网关端点请求id和passkey,网关将客户端ID和密钥发送到调用我的系统进行验证的lambda函数,Lambda返回有效的策略,然后API Gateway将请求发送到我的服务,其中包含客户端ID或其他一些标识符。策略,以便我的系统知道请求客户端。
如果不将用户带到单独的系统(Cognito),最好的方法是什么?
答案 0 :(得分:2)
原来你的时间可能只是一天左右。您之前使用自定义授权程序会遇到TOKEN
授权程序。今天,他们注意到使用新的REQUEST
授权程序类型扩展了对自定义授权程序的支持。新的REQUEST
类型支持用于授权请求的大量扩展数据集,例如请求参数,标头,查询字符串等。查看Custom authorizer types了解更多信息。