Comment obtenir des jetons émis par l'OIDC ou le fournisseur d'identité sociale après intégration du fournisseur d'identité à Amazon Cognito ?

Lecture de 6 minute(s)
0

Je souhaite obtenir les jetons d'accès et d'identification émis par mon fournisseur d'identité (IdP) intégré aux groupes d'utilisateurs Amazon Cognito.

Brève description

Dans le flux d'authentification IdP d'OpenID Connect (OIDC), Amazon Cognito échange le code d'autorisation émis par l'IdP avec des jetons IdP. Amazon Cognito prépare ensuite son propre ensemble de jetons et les renvoie à l'utilisateur final une fois la fédération réussie. Toutefois, ce processus ne permet pas à l'utilisateur ou à l'application de voir les véritables jetons côté IdP. Certains cas d'utilisation peuvent nécessiter les jetons réellement émis par l'IdP dans l'application à des fins d'autorisation ou de résolution des problèmes. Pour capturer et stocker les jetons d'accès et d'identification émis par un IdP lorsque vous vous fédérez dans des groupes d'utilisateurs Amazon Cognito, suivez les étapes décrites dans la section Résolution.

Important : Les étapes décrites dans cet article supposent que vous avez déjà intégré l'IdP OIDC ou l'IdP social aux groupes d'utilisateurs Amazon Cognito. Si vous n'avez pas intégré d'IdP à votre groupe d'utilisateurs, suivez les étapes pour ajouter une connexion au groupe d'utilisateurs via un tiers.

Résolution

Création d'un attribut personnalisé dans un groupe d'utilisateurs

Pour créer un attribut personnalisé dans votre groupe d'utilisateurs, procédez comme suit :

1.    Ouvrez la nouvelle console Amazon Cognito, puis choisissez l'onglet Expérience d'inscription dans votre groupe d'utilisateurs.

2.    Dans la section Attributs personnalisés, sélectionnez le bouton Ajouter des attributs personnalisés.

3.    Pour créer un attribut personnalisé pour un jeton d'accès, entrez les valeurs suivantes, puis enregistrez les modifications.

  • Nom : access_token
  • Type : String
  • Max : 2,048
  • Mutable : cochez cette case

4.    Pour créer un attribut personnalisé pour un jeton d'identification, entrez les valeurs suivantes, puis enregistrez les modifications.

  • Nom : id_token
  • Type : String
  • Max : 2,048
  • Mutable : cochez cette case

Configurer le mappage d'attributs entre Amazon Cognito et votre IdP

Pour configurer le mappage des attributs avec les attributs IdP, procédez comme suit :

1.    Ouvrez la nouvelle console Amazon Cognito, puis choisissez l'onglet Expérience de connexion dans votre groupe d'utilisateurs.

2.    Dans la section de Connexion au Federated Identity Provider, sélectionnez votre IdP dans la liste.

3.    Choisissez l'option Modifier dans la section Informations sur le fournisseur d'identité. Assurez-vous que les étendues suivantes sont présentes dans la section Étendue autorisée :

  • Exemples de domaines Facebook : public_profile, email
  • Exemples de domaines d'application Google : profil, e-mail, openid
  • Connectez-vous avec des exemples d'étendue Amazon : profile postal_code
  • Connectez-vous à l'aide d'exemples de domaines Apple : nom e-mail
  • Exemples de domaines d'application de tous les autres fournisseurs OIDC : profile, email, openid

4.    Revenez à la page du fournisseur d'identité. Choisissez Modifier dans la section Cartographie des attributs.

5.    Dans la colonne Attribut du groupe d'utilisateurs, sélectionnez l'attribut personnalisé que vous avez créé au début.

6.    Dans la colonne d'attributs OpenID Connect, sélectionnez access_token ou id_token, selon le type de jeton à mapper. Enfin, enregistrez les modifications.

Exemples de résultats de configuration du mappage d'attributs :

Attribut du groupe d'utilisateurs : custom:id_token
Attribut OpenID Connect : id_token

Attribut du groupe d'utilisateurs : custom:access_token
Attribut OpenID Connect : access_token

Activez les autorisations de lecture et d'écriture des attributs dans le client de votre application Amazon Cognito

Lorsqu'un utilisateur se connecte à l'application, Amazon Cognito met à jour les attributs mappés. Pour qu'Amazon Cognito puisse mettre à jour les attributs du groupe d'utilisateurs mappés, les attributs mappés doivent pouvoir être écrits dans les paramètres du client d'appli de votre application. Pour qu'Amazon Cognito puisse mettre à jour le jeton d'identification de l'utilisateur, les attributs doivent être lisibles dans les paramètres du client de l'appli.

1.    Ouvrez la nouvelle console Amazon Cognito, puis choisissez l'onglet Intégration des applications dans votre groupe d'utilisateurs.

2.    Sélectionnez votre client d'appli dans la liste des clients d'applications.

3.    Dans la section Autorisations de lecture et d'écriture des attributs, choisissez Modifier.

4.    Sur la page Modifier les autorisations de lecture et d'écriture des attributs, cochez les cases de lecture et d'écriture pour vos attributs personnalisés.

5.    Enregistrez les modifications.

Répétez ces étapes pour chaque client d'application qui utilise l'attribut personnalisé.

Pour plus d'informations, consultez la section Attributs du groupe d'utilisateurs et accédez à l'onglet Autorisations et étendues des attributs.

Connectez-vous à l'aide du fournisseur OIDC tiers ou de l'IdP social

Lorsque vous effectuez une nouvelle authentification IdP via l'interface utilisateur hébergée d'Amazon Cognito, vous pouvez voir les jetons IdP dans les attributs personnalisés. Choisissez un utilisateur approprié pour voir les jetons IdP dans leurs attributs. Le décodage du jeton d'identification vous fournit également les attributs personnalisés qui contiennent les jetons IdP.

Exemple de section de charge utile du jeton d'identification délivré à l'utilisateur final :

{
    "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea",
    "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id",
    "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv"
}

Lorsque vous créez des attributs personnalisés, gardez à l'esprit les points suivants :

  • La longueur maximale d'un attribut personnalisé est de 2 048 caractères. Lorsqu'un jeton IdP dépasse 2 048 caractères, le message d'erreur suivant s'affiche : « Les attributs de chaîne ne peuvent pas avoir une longueur supérieure à 2048 ».
  • Vous ne pouvez pas supprimer ou modifier un attribut personnalisé après sa création.
  • Si l'attribut personnalisé n'est pas mis à jour lors des connexions suivantes, vérifiez la mutabilité de l'attribut personnalisé. Ce problème est prévisible lorsque vous désactivez la case à cocher Mutable lors de la création de l'attribut. Pour en savoir plus, consultez la section Attributs du groupe d'utilisateurs et accédez à l'onglet Attributs personnalisés.

Remarque : Si vous ne parvenez toujours pas à obtenir de jeton IdP après avoir suivi les étapes précédentes, contactez votre IdP. Demandez si l'IdP prend en charge la transmission des jetons contenus dans les attributs à Amazon Cognito. Après avoir confirmé, vous pouvez contacter AWS Support pour un dépannage supplémentaire.


Informations connexes

Comment puis-je configurer Auth0 comme fournisseur OIDC dans un groupe d'utilisateurs Amazon Cognito ?

Comment configurer LinkedIn comme fournisseur d'identité sociale dans un groupe d'utilisateurs Amazon Cognito ?

Comment configurer Okta comme fournisseur d'identités OpenID Connect dans un groupe d'utilisateurs Amazon Cognito ?

Comment configurer Google comme fournisseur d'identités fédérées dans un groupe d'utilisateurs Amazon Cognito ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an