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.
-
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.
-
Votre utilisateur est redirigé vers le
authorization
point de terminaison de l'OIDCIdP. -
Une fois que votre utilisateur s'est authentifié, l'OIDCIdP est redirigé vers Amazon Cognito avec un code d'autorisation.
-
Amazon Cognito échange le code d'autorisation avec l'OIDCIdP contre un jeton d'accès.
-
Amazon Cognito crée ou met à jour le compte utilisateur dans votre groupe d'utilisateurs.
-
Amazon Cognito émet les jetons de porteur à votre application, lesquels peuvent inclure des jetons d'identité, d'accès et d'actualisation.
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 OIDC
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 :
-
Vérifiez que le fournisseur a signé le jeton avec un algorithme de l'ensemble suivant :RSA,HMAC, Courbe elliptique.
-
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 terminaisonjwks_uri
du fournisseur. -
Compare la signature du jeton d'identification à la signature qu'il attend en fonction des métadonnées du fournisseur.
-
Comparez la
iss
réclamation à l'OIDCémetteur configuré pour l'IdP. -
Vérifie que la demande
aud
correspond à l'ID client configuré sur l'IdP ou qu'elle contient l'ID client configuré si la demandeaud
contient plusieurs valeurs. -
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.