2016-07-22 59 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

感謝, 瑞安