0

我需要一些帮助来消除一些疑虑。我一直在玩 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。

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

4

2 回答 2

0

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

于 2016-07-23T13:48:19.067 回答
0

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

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

请参见:

客户授权开发者指南

客户授权人示例

谢谢,瑞安

于 2016-07-24T17:05:22.243 回答