【问题标题】:Authorization for API Gateway to service already storing user credentials授权 API Gateway 为已存储用户凭证的服务提供服务
【发布时间】: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


    【解决方案1】:

    事实证明,您的时间可能只是提前了一天左右。您之前使用自定义授权者会遇到的是TOKEN 授权者。今天,他们注意到使用新的REQUEST 授权者类型扩展了对自定义授权者的支持。新的REQUEST 类型支持用于授权请求的扩展数据集,例如请求参数、标头、查询字符串等。查看Custom authorizer types 了解更多信息。

    【讨论】:

    猜你喜欢
    • 2020-04-30
    • 2016-12-15
    • 1970-01-01
    • 2018-06-18
    • 2013-08-21
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    相关资源
    最近更新 更多