2017-08-13 75 views

回答

1

您可以使用組Cognito用戶池,並且用戶在ADMINGROUP定製授權人確認:

if (payload['cognito:groups'] && 
    payload['cognito:groups'][0] === 'adminGroup') { 
    admin = true; 
    } 

這裏的負荷是你的身份令牌得到什麼。如果沒有認知:組,則用戶不在任何組中。

另一種選擇是利用用戶池中的自定義屬性(授權人中的驗證邏輯應與上述邏輯類似)。

其他解決方案也是可能的,但這些解決方案在用戶池外部(例如跟蹤外部數據庫中的用戶角色)。

無論是組還是自定義屬性(或其他解決方案),您都必須驗證自定義授權人中的用戶角色。這樣,請求將在API網關端點之前到達自定義授權人。如果用戶應該是管理員,但他不是(不在adminGroup中或沒有自定義屬性'admin'),則在授權人中發出拒絕策略。

希望這回答你的問題。