2016-07-22 58 views
0

我需要一些帮助来清除一些疑惑。我一直在玩Kong和Amazon API Gateway,但无法理解如何让自定义ACL与这些API网关协同工作。定制API访问策略和API网关

让我尝试用一​​个例子来解释:

目前:

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

随着API网关:

随着API网关,我可以很容易地验证用户,并通过对身份验证令牌,但我无法找到一个方法来传递更多的数据网关,使网关可以检查认证+ ACL策略,而不会回到auth服务器。

Kong有ACL插件,但无法找到正确的信息。

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

有没有人在这里面对这种问题?

回答

0

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

0

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

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

请参阅:

Customer Authorizer developer guide

Customer Authorizer examples

感谢, 瑞安