我需要一些帮助来消除一些疑虑。我一直在使用Kong和Amazon API Gateway,但无法理解如何让自定义ACL与这些API网关一起使用。
让我试着用一个例子来解释:
目前:
我将所有ACL映射到API端点和动词,我从MySQL DB(针对不同的用户组)中选择并将其存储在redis服务器中,并且每个API调用都会检查用户对redis的访问权限以及允许/禁止端点。
使用API网关:
使用API网关,我可以轻松验证用户并传递身份验证令牌,但我找不到将更多数据传递到网关的方法,因此网关可以检查身份验证+ ACL策略,而无需返回到auth服务器。 / p>
Kong有ACL插件但找不到合适的信息。
Amazon API Gateway具有自定义授权选项和选项,可以通过Lambda函数传递策略,但是我不确定Lambda函数是否可以接受我的自定义ACL。
这里有人遇到过这种问题吗?
答案 0 :(得分:0)
我不知道为什么你不能通过自定义授权器这样做。自定义授权程序只是您编写的Lambda函数,可通过您想要的任何方法对请求进行授权。因此,您将创建一个Custom Authorizer Lambda函数,通过将其与Redis服务器中的数据进行比较来验证请求。
答案 1 :(得分:0)
您可以使用为这种确切类型的用例开发的API网关自定义授权程序。您只需实现自定义授权程序功能即可查询MySQL数据存储区,并根据用户令牌为您的API返回适当的IAM策略。
此外,API Gateway为授权人决策提供了一个缓存层,因此您可能根本不需要redis。只需让您的授权人直接查询您的数据库,并在您的授权人上设置适当的缓存TTL。
请参阅:
Customer Authorizer developer guide
谢谢, 莱恩