我目前使用Cognito用戶池作爲API網關端點的授權者,直至Lambda函數。使用自定義屬性通過API網關對Lambda進行身份驗證Cognito用戶是否安全?
我可以將集成請求傳遞給Lambda,並基於自定義屬性安全地允許或拒絕Lambda內部?
映射: 「管理員」: 「$ context.authorizer.claims [ '定製:管理員']」,
LAMBDA處理程序:
boolean isAdmin = Boolean.parseBoolean(request.getContext().get("administrator"));
if(isAdmin) etc...
需要明確的是,用戶是不管理員不應該訪問與管理員相同的API端點。
我需要在此之前/之後做任何其他事情嗎?
在用戶登錄到Cognito之後,我通過包含授權:JWToken標頭,向Javascript API網關發送初始請求。
我需要驗證Lambda函數中令牌的簽名嗎?我認爲API網關已經做到了。
有沒有更好的方法來管理這個安全方面?
我非常希望能夠限制訪問基於用戶游泳池內組API端點,不過我不認爲這是可能的。
本文檔介紹如何通過AWS Identity and Access Management限制訪問權限。如果我沿着這條路走下去,我該如何向API網關發出請求?我仍然使用JWToken授權標題,並將Cognito用作API網關中的授權者嗎?
我現在知道使用自定義屬性來確保endpoing絕對不安全:用戶可以更新自己的屬性。 – comfytoday