Si j'utilise des pools d'utilisateurs AWS Cognito, il est possible de spécifier les rôles d'un utilisateur, puis de vérifier si cet utilisateur a un rôle spécifique, par exemple. Admin, avant qu'il/elle est en mesure d'accéder à une ressource, par exemple. Passerelle APILogique d'autorisation supplémentaire pour les pools d'utilisateurs Cognito Utilisateur
Répondre
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.