【问题标题】:Custom API Access Policies and API Gateways自定义 API 访问策略和 API 网关
【发布时间】:2016-07-22 18:29:55
【问题描述】:

我需要一些帮助来消除一些疑虑。我一直在使用 Kong 和 Amazon API Gateway,但不明白如何让我的自定义 ACL 与这些 API 网关一起使用。

让我试着用一个例子来解释一下:

目前:

我已将所有 ACL 映射到 API 端点和动词,我从 MySQL DB 中挑选(针对不同的用户组)并将其存储在 redis 服务器中,每个 API 调用都会检查用户从 redis 的访问权限并允许/禁止端点。

使用 API 网关:

使用 API Gateway,我可以轻松验证用户并传递身份验证令牌,但我找不到将更多数据传递给网关的方法,因此网关可以检查身份验证 + ACL 策略而无需返回身份验证服务器。

Kong 有 ACL 插件,但找不到合适的信息。

Amazon API Gateway 具有自定义授权选项和通过 Lambda 函数传递策略的选项,但我再次不确定 Lambda 函数是否可以接受我的自定义 ACL。

这里有人遇到过这种问题吗?

【问题讨论】:

    标签: aws-lambda aws-api-gateway kong


    【解决方案1】:

    我不明白您为什么不能通过自定义授权人来执行此操作。自定义授权者只是您编写的 Lambda 函数,用于通过您想要的任何方法对请求进行授权。因此,您将创建一个自定义授权 Lambda 函数,通过将请求与您的 Redis 服务器中的数据进行比较来验证请求。

    【讨论】:

      【解决方案2】:

      您可以使用为这种确切类型的用例开发的 API Gateway 自定义授权器。您只需实现自定义授权函数来查询您的 MySQL 数据存储并根据用户令牌为您的 API 返回适当的 IAM 策略。

      此外,API Gateway 为授权决策提供了缓存层,因此您可能根本不需要 redis。只需让您的授权方直接查询您的数据库,并在您的授权方上设置适当的缓存 TTL。

      请看:

      Customer Authorizer developer guide

      Customer Authorizer examples

      谢谢, 瑞恩

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 2021-04-11
        • 2021-04-23
        • 2019-11-07
        • 2018-09-14
        相关资源
        最近更新 更多