2017-08-13 114 views

回答

1

您可以使用组Cognito用户池,并且用户在ADMINGROUP定制授权人确认:

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

这里的负荷是你的身份令牌得到什么。如果没有认知:组,则用户不在任何组中。

另一种选择是利用用户池中的自定义属性(授权人中的验证逻辑应与上述逻辑类似)。

其他解决方案也是可能的,但这些解决方案在用户池外部(例如跟踪外部数据库中的用户角色)。

无论是组还是自定义属性(或其他解决方案),您都必须验证自定义授权人中的用户角色。这样,请求将在API网关端点之前到达自定义授权人。如果用户应该是管理员,但他不是(不在adminGroup中或没有自定义属性'admin'),则在授权人中发出拒绝策略。

希望这回答你的问题。