OIDCflux d'authentification IdP du pool d'utilisateurs - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

OIDCflux d'authentification IdP du pool d'utilisateurs

Avec la connexion OpenID Connect (OIDC), votre groupe d'utilisateurs automatise un flux de connexion par code d'autorisation avec votre fournisseur d'identité (IdP). Une fois que votre utilisateur s'est connecté avec son IdP, Amazon Cognito collecte son code sur le point de terminaison oauth2/idpresponse du fournisseur externe. Avec le jeton d'accès obtenu, votre groupe d'utilisateurs interroge le point de userInfo terminaison IdP pour récupérer les attributs utilisateur. Votre groupe d'utilisateurs compare ensuite les attributs reçus aux règles de mappage d'attributs que vous avez définies et remplit le profil de l'utilisateur et le jeton d'identification en conséquence.

Les étendues OAuth 2.0 que vous demandez dans la configuration de votre OIDC fournisseur définissent les attributs utilisateur que l'IdP fournit à Amazon Cognito. Pour des raisons de sécurité, demandez uniquement les étendues correspondant aux attributs que vous souhaitez associer à votre groupe d'utilisateurs. Par exemple, si votre groupe d'utilisateurs le demandeopenid profile, vous obtiendrez tous les attributs possibles, mais si vous le demandez, openid email phone_number vous n'obtiendrez que l'adresse e-mail et le numéro de téléphone de l'utilisateur. Vous pouvez configurer les étendues que vous demandez de manière OIDC IdPs à ce qu'elles soient différentes de celles que vous autorisez et demandez dans la demande d'authentification du client de l'application et du groupe d'utilisateurs.

Lorsque votre utilisateur se connecte à votre application à l'aide d'un OIDC IdP, votre groupe d'utilisateurs exécute le flux d'authentification suivant.

  1. Votre utilisateur accède à la page de connexion intégrée d'Amazon Cognito et a la possibilité de se connecter via un OIDC IdP, par exemple Salesforce.

  2. Votre utilisateur est redirigé vers le authorization point de terminaison de l'OIDCIdP.

  3. Une fois que votre utilisateur s'est authentifié, l'OIDCIdP est redirigé vers Amazon Cognito avec un code d'autorisation.

  4. Amazon Cognito échange le code d'autorisation avec l'OIDCIdP contre un jeton d'accès.

  5. Amazon Cognito crée ou met à jour le compte utilisateur dans votre groupe d'utilisateurs.

  6. Amazon Cognito émet les jetons de porteur à votre application, lesquels peuvent inclure des jetons d'identité, d'accès et d'actualisation.

Flux d'authentification OIDC IdP du groupe d'utilisateurs
Note

Amazon Cognito annule les demandes d'authentification qui ne se terminent pas dans les 5 minutes et redirige l'utilisateur vers l'interface utilisateur hébergée. La page affiche un message d'erreur Something went wrong.

OIDCest une couche d'identité supérieure à la OAuth version 2.0, qui spécifie les jetons d'identité JSON -formatted (JWT) émis par IdPs deux applications OIDC clientes (parties utilisatrices). Consultez la documentation de votre OIDC IdP pour savoir comment ajouter Amazon Cognito en tant que OIDC partie utilisatrice.

Lorsqu'un utilisateur s'authentifie avec un octroi de code d'autorisation, le groupe d'utilisateurs retourne les jetons d'identification, d'accès et d'actualisation. Le jeton d'identification est un OIDCjeton standard pour la gestion des identités, et le jeton d'accès est un jeton OAuth2.0 standard. Pour plus d'informations sur les types d'octroi que le client de votre application de groupe d'utilisateurs peut prendre en charge, consultez Point de terminaison d’autorisation.

Comment un groupe d'utilisateurs traite les réclamations d'un OIDC fournisseur

Lorsque votre utilisateur termine sa connexion auprès d'un OIDC fournisseur tiers, l'interface utilisateur hébergée par Amazon Cognito récupère un code d'autorisation auprès de l'IdP. Votre groupe d'utilisateurs échange le code d'autorisation contre des jetons d'accès et d'identification avec le point de terminaison token de votre IdP. Votre groupe d'utilisateurs ne transmet pas ces jetons à votre utilisateur ou application, mais s'en sert pour créer un profil utilisateur avec les données qu'il présente dans les demandes de ses propres jetons.

Amazon Cognito ne valide pas le jeton d'accès de manière indépendante. En effet, il demande des informations d'attribut utilisateur au point de terminaison userInfo du fournisseur et s'attend à ce que la demande soit refusée si le jeton n'est pas valide.

Amazon Cognito valide le jeton d'identification du fournisseur en effectuant les vérifications suivantes :

  1. Vérifiez que le fournisseur a signé le jeton avec un algorithme de l'ensemble suivant :RSA,HMAC, Courbe elliptique.

  2. Si le fournisseur a signé le jeton avec un algorithme de signature asymétrique, vérifie que l'ID de la clé de signature figurant dans la demande kid du jeton est répertorié sur le point de terminaison jwks_uri du fournisseur.

  3. Compare la signature du jeton d'identification à la signature qu'il attend en fonction des métadonnées du fournisseur.

  4. Comparez la iss réclamation à l'OIDCémetteur configuré pour l'IdP.

  5. Vérifie que la demande aud correspond à l'ID client configuré sur l'IdP ou qu'elle contient l'ID client configuré si la demande aud contient plusieurs valeurs.

  6. Vérifie que l'horodatage figurant dans la demande exp n'est pas antérieur à l'heure actuelle.

Votre groupe d'utilisateurs valide le jeton d'identification, puis tente d'envoyer une demande au point de terminaison userInfo du fournisseur avec le jeton d'accès du fournisseur. Il récupère les informations de profil utilisateur que les portées du jeton d'accès l'autorisent à lire. Votre groupe d'utilisateurs recherche ensuite les attributs utilisateur obligatoires que vous avez définis dans votre groupe d'utilisateurs. Vous devez créer des mappages d'attributs dans la configuration de votre fournisseur pour les attributs obligatoires. Votre groupe d'utilisateurs vérifie le jeton d'identification du fournisseur et la réponse userInfo. Votre groupe d'utilisateurs écrit toutes les demandes qui correspondent aux règles de mappage dans les attributs utilisateur du profil utilisateur du groupe d'utilisateurs. Votre groupe d'utilisateurs ignore les attributs qui correspondent à une règle de mappage, mais qui ne sont pas obligatoires et qui ne se trouvent pas dans les demandes du fournisseur.