web-dev-qa-db-fra.com

Que signifie la portée `aws.cognito.signin.user.admin` dans Amazon Cognito?

Amazon Cognito dispose de plusieurs étendues réservées au système:

  • openid
  • email
  • téléphone
  • profil
  • aws.cognito.signin.user.admin

Mais ne documente pas ce à quoi ils donnent accès.

Les 3 premiers sont assez explicites. Je m'attendrais à ce que profil désigne le profil utilisateur.

J'ai trouvé par essais et erreurs que j'avais besoin de aws.cognito.signin.user.admin pour utiliser Amazon Cognito Appel de l'API utilisateur . Je me serais attendu à ce que ce soit profile à la place, mais OK, très bien.

Ce qui m'inquiète, c'est ce que d'autre aws.cognito.signin.user.admin pourrait faire. Si je laisse des clients tiers demander cette étendue, à quoi leur donne-t-on accès?

12
GlennS

Le aws.cognito.signin.user.admin scope vous donne accès à toutes les API du groupe d'utilisateurs accessibles uniquement à l'aide de jetons d'accès (documentation complète ici) .

Notez que cela ne signifie pas que l'utilisateur aurait un accès arbitraire à toutes les API AWS (comme un rôle IAM pourrait le faire), mais que si la syntaxe de demande pour cet appel d'API inclut "AccessToken": "string", puis un jeton d'accès accordé à l'aide de aws.cognito.signin.user.admin pourra l'appeler.

En règle générale, les API Cognito UserPools (et ce sont uniquement les API Cognito UserPool) qui autorisent comme cela sont celles qui vous permettent de modifier quelque chose sur vos propres UserPools profil (ie ne commencez pas par Admin et n'affectez qu'un seul profil):

En un coup d'œil à travers l'API, ces actions sont ( https://docs.aws.Amazon.com/cognito-user-identity-pools/latest/APIReference/API_Operations.html ):

  • AssociateSoftwareToken
  • Changer le mot de passe
  • ConfirmDevice
  • Supprimer l'utilisateur
  • DeleteUserAttributes
  • ForgetDevice
  • GetDevice
  • GetUser
  • GetUserAttributeVerificationCode
  • GlobalSignOut
  • ListDevices
  • SetUserMFAPreference
  • SetUserSettings
  • UpdateDeviceStatus
  • UpdateUserAttributes
  • VerifySoftwareToken
  • VerifyUserAttribute
17