2017-08-13 2 views

Répondre

1

Vous pouvez utiliser des groupes dans Cognito pools d'utilisateurs et de valider dans autorisateur de mesure que l'utilisateur est en ADMINGROUP:

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

La charge utile est ici ce que vous obtenez de jeton d'identité. S'il n'y a pas de groupe cognito:, l'utilisateur n'appartient à aucun groupe.

Une autre option consiste à tirer parti des attributs personnalisés dans les pools d'utilisateurs (la logique de validation dans Authorizer doit être similaire à la logique ci-dessus).

D'autres solutions sont également possibles, mais elles sont externes aux pools d'utilisateurs (par exemple, le suivi des rôles d'utilisateur dans une base de données externe).

Qu'il s'agisse de groupes ou d'attributs personnalisés (ou d'autres solutions), vous devez valider le rôle utilisateur dans l'autorisateur personnalisé. De cette façon, la demande parviendra au Authorizer personnalisé avant le point de terminaison API Gateway. Si l'utilisateur doit être administrateur, mais qu'il ne l'est pas (pas dans adminGroup ou n'a pas d'attribut personnalisé 'admin'), vous devez refuser la stratégie dans l'autorisateur.

Espérons que cela répond à votre question.