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

Date de la dernière mise à jour : 27/06/2019

Je souhaite que les utilisateurs de mes applications soient en mesure de se connecter à l'aide de LinkedIn. Comment configurer LinkedIn comme fournisseur d'identité sociale (IdP) dans un groupe d'utilisateurs Amazon Cognito ?

Brève description

LinkedIn ne fournit pas tous les champs dont Amazon Cognito a besoin au moment d'ajouter un fournisseur OpenID Connect (OIDC) à un groupe d'utilisateurs.

Vous devez utiliser un service tiers comme agent intermédiaire entre LinkedIn et Amazon Cognito, comme Auth0. Auth0 obtiendra des identités auprès de LinkedIn, tandis qu'Amazon Cognito obtiendra ces identités auprès d'Auth0.

Remarque : Auth0 est un service tiers qui n'est pas affilié à AWS. L'utilisation d'Auth0 peut donner lieu à des frais supplémentaires.

Vous pouvez également utiliser cette configuration pour d'autres fournisseurs d'identité sociale qui peuvent rencontrer des problèmes d'intégration similaires. Pour plus d'informations, reportez-vous à Connections (Connexions) sur le site web d'Auth0.

Résolution

Créer un groupe d'utilisateurs Amazon Cognito avec une application client et un nom de domaine

Pour plus d'informations sur la création de ces conditions préalables, consultez les articles suivants :

Se connecter pour obtenir un compte Auth0

Remarque : si vous disposez déjà d'un compte Auth0, connectez-vous à celui-ci.

Saisissez votre adresse e-mail et votre mot de passe sur la page Sign Up (S’inscrire) du site web Auth0 pour démarrer.

Une fois connecté, prenez note de votre nom de locataire Auth0.

Créer une application Auth0

Remarque : si vous avez déjà créé l'application Auth0 application que vous souhaitez utiliser, passez à la section suivante.

  1. Sur le tableau de bord du site web Auth0, sélectionnez +Create Application (+Créer une application).
  2. Dans la boîte de dialogue Create Application (Créer une application), saisissez un nom pour votre application. Par exemple, Mon application.
  3. Sous Choose an application type (Sélectionner un type d'application), sélectionnez Single Page Web Applications (Applications web à page unique).
  4. Sélectionnez Create (Créer).
  5. Sur le volet Settings (Paramètres) de votre nouvelle application, procédez comme suit :
    Recherchez l'ID client et la clé du client, et prenez-en note. Vous en aurez besoin ultérieurement au moment de la connexion d'Auth0 à votre groupe d'utilisateurs Amazon Cognito.
    Pour Allowed Callback URLs (URL de retour autorisées), entrez https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse.
    Remarque : remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Recherchez-les dans la console Amazon Cognito sous l'onglet Nom de domaine de la page de gestion de votre groupe d'utilisateurs.
  6. Choisissez Enregistrer les modifications.

Création d'un compte LinkedIn

Remarque : si vous possédez déjà un compte LinkedIn, connectez-vous à celui-ci.

Saisissez votre adresse e-mail et votre mot de passe sur la page Sign Up (S’inscrire) du site web LinkedIn pour démarrer.

Créer une application LinkedIn

  1. Sur le site web LinkedIn Developers, choisissez Create app (Créer une application).
  2. Sur la page Create an app Créer une application, renseignez tous les champs obligatoires et préférés afin de personnaliser votre application LinkedIn, puis choisissez Create app (Créer une application).
  3. Choisissez le volet Auth.
    Remarque : sous Permissions (Autorisations), vérifiez que r_emailaddress et r_liteprofile sont répertoriés. Ces autorisations sont obligatoires pour qu'Auth0 puisse accéder aux informations utilisateur LinkedIn.
  4. Sous Application credentials (Informations d'identification de l'application), recherchez l'ID client et la clé secrète du client, et prenez-en note. Vous en aurez besoin ultérieurement au moment de connecter LinkedIn à votre application Auth0.
  5. Sous OAuth 2.0 settings (Paramètres OAuth 2.0), en regard de Redirect URLs: (URL de renvoi :), choisissez l'icône en forme de crayon, puis + Add redirect URL (+ Ajouter une URL de renvoi).
  6. Sous Redirect URLs: (URL de renvoi :), saisissez https://tenantName.auth0.com/login/callback, afin de remplacer tenantName par votre nom de locataire Auth0 ou par un domaine personnalisé Auth0.

Pour plus d'informations, consultez la page Add LinkedIn Login to Your App (Ajouter une connexion à Linkedin à votre application) sur le site web Auth0.

Se connecter à LinkedIn à partir d'Auth0

  1. Sur le tableau de bord du site web Auth0, dans le volet de navigation de gauche, choisissez Connections (Connexions), puis Social.
  2. Choisissez LinkedIn.
  3. Sur le volet Settings (Paramètres) de la boîte de dialogue de LinkedIn, procédez comme suit :
    Pour API Key (Clé d'API), entrez le Client ID (ID client) que vous avez copié précédemment depuis votre application LinkedIn.
    Pour clé secrète, saisissez la clé secrète du client que vous avez copiée précédemment depuis votre application LinkedIn.
    Pour Attributes (Attributs), cochez la case Email address (Adresse e-mail).
  4. Choisissez Save (Enregistrer).
  5. Sur le volet Applications de la boîte de dialogue de LinkedIn, choisissez la ou les applications pour lesquelles vous souhaitez activer LinkedIn en tant que fournisseur d'identité sociale.
  6. Choisissez Save (Enregistrer).

Pour plus d'informations, consultez la page Add LinkedIn Login to Your App (Ajouter une connexion à Linkedin à votre application) sur le site web Auth0.

Tester votre connexion sociale LinkedIn à Auth0

  1. Dans la boîte de dialogue de LinkedIn, choisissez Try (Essayer). De même, sur le tableau de bord du site web Auth0, dans le volet de navigation de gauche, choisissez Connections (Connexions), puis Social. Ensuite, en regard de LinkedIn, choisissez Try (Essayer). Un nouvel onglet de navigateur ou une nouvelle fenêtre s'ouvre sur la page de connexion à LinkedIn.
  2. Connectez-vous à LinkedIn à l'aide de votre adresse e-mail et de votre mot de passe.
  3. Lorsque vous êtes invité à autoriser votre application à accéder à vos informations utilisateur LinkedIn, choisissez Allow (Autoriser).

Pour plus d'informations, consultez Test Social Connections (Tester les connexions sociales) sur le site web d'Auth0.

Ajouter un fournisseur OIDC à votre groupe d'utilisateurs

  1. Dans la page de gestion de la console Amazon Cognito pour votre groupe d'utilisateurs, sous Fédération, sélectionnez Fournisseurs d'identité.
  2. Choisissez OpenID Connect.
  3. Entrez les détails relatifs à votre application Auth0 correspondant aux détails du fournisseur OIDC, comme suit :
    Pour Nom du fournisseur, saisissez un nom (par exemple, Auth0-LinkedIn). Ce nom s'affiche dans l'interface utilisateur web hébergée Amazon Cognito.
    Remarque : vous ne pouvez pas modifier ce champ après la création du fournisseur. Si vous prévoyez d'inclure ce champ dans votre application ou d'utiliser l'interface utilisateur web hébergée Amazon Cognito, utilisez un nom que vous êtes disposé à afficher aux utilisateurs de votre application.
    Pour ID client, saisissez celui que vous avez copié précédemment depuis votre application Auth0.
    Pour Clé secrète du client (facultatif), saisissez celle que vous avez copiée précédemment depuis votre application Auth0.
    Pour Attributes request method (Méthode de demande d'attributs), conservez le paramètre GET.
    Pour Portée d'autorisation, entrez openid profile e-mail (E-mail de profil openid).
    Pour Émetteur, saisissez l'URL de votre profil Auth0. Par exemple, https://tenantName.auth0.com, qui remplace tenantName par votre nom de locataire Auth0.
    Pour Identifiants (facultatif), vous pouvez éventuellement saisir une chaîne personnalisée à utiliser ultérieurement dans l'URL de point de terminaison au lieu du nom de votre fournisseur OIDC.
  4. Choisissez Run discovery (Exécuter la découverte) afin d'extraire les points de terminaison de la configuration OIDC pour Auth0.
  5. Choisissez Create provider (Créer un fournisseur).

Pour plus d'informations, reportez-vous à Ajout de fournisseurs d'identité OIDC à un groupe d'utilisateurs.

Modifier les paramètres du client d'application pour votre groupe d'utilisateurs

  1. Dans la page de gestion de la console Amazon Cognito pour votre groupe d'utilisateurs, sous Intégration d'application, sélectionnez Paramètres du client d'application.
  2. Sur la page du client d'application, procédez comme suit :
    Sous Fournisseurs d'identité activés, cochez les cases du fournisseur OIDC (par exemple,Auth0-LinkedIn) et Cognito User Pool (Groupe d'utilisateurs Cognito).
    Pour URL de rappel, saisissez une URL vers laquelle vous souhaitez que vos utilisateurs soient redirigés après s'être connectés. Pour le test, vous pouvez saisir n'importe quelle URL valide, par exemple https://exemple.com/.
    Pour URL de déconnexion, saisissez une URL vers laquelle vous souhaitez que vos utilisateurs soient redirigés après s'être déconnectés. Pour le test, vous pouvez saisir n'importe quelle URL valide, par exemple https://exemple.com/.
    Sous Flux OAuth autorisés, cochez la case Authorization code grant (Octroi du code d'autorisation) ou Implicit Grant (Autorisation implicite), ou les deux si vous préférez.
    Remarque : les flux OAuth autorisés vous permettent de déterminer les valeurs (« code » ou « jeton ») que vous pouvez utiliser pour le paramètre response_type dans votre URL de point de terminaison.
    Sous Règles OAuth autorisées, assurez-vous d'avoir au moins coché les cases email et openid.
  3. Choisissez Enregistrer les modifications.

Pour plus d'informations, consultez la section Présentation des paramètres du client d'application.

Mapper les attributs depuis Auth0 vers votre groupe d'utilisateurs

  1. Dans la page de gestion de la console Amazon Cognito pour votre groupe d'utilisateurs, sous Fédération, sélectionnez Mappage d'attribut.
  2. Sur la page de mappage d'attribut, choisissez l'onglet OIDC.
  3. Si vous avez plusieurs fournisseurs OIDC dans votre groupe d'utilisateurs, choisissez votre nouveau fournisseur dans la liste déroulante.
  4. Vérifiez que l'attribut OIDC sub est mappé avec l'attribut Username du groupe d'utilisateurs.
  5. Choisissez Add OIDC attribute (Ajouter un attribut OIDC). Pour le nouvel attribut OIDC, saisissez e-mail. Pour Attribut du groupe d’utilisateurs, sélectionnez E-mail.
  6. (Facultatif) Ajoutez tous les attributs OIDC supplémentaires que vous souhaitez transmettre à partir d'Auth0. Par exemple, vous pouvez mapper given_name et family_name aux attributs du groupe d'utilisateurs Amazon Cognito correspondants.
    Remarque : pour afficher tous les attributs OIDC stockés pour un utilisateur Auth0, depuis le tableau de bord du site web d'Auth0, dans le volet de navigation de gauche, choisissez Users & Roles (Utilisateurs et rôles), puis Users (Utilisateurs), choisissez un utilisateur, puis choisissez Raw JSON.

Pour plus d'informations, consultez la section Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs.

Créer l'URL de point de terminaison

À l'aide des valeurs de votre propre configuration, créez cette URL de point de terminaison :

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&client_id=yourClientId&redirect_uri=redirectUrl

Procédez comme suit afin de personnaliser l'URL pour votre configuration :

  • Remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Recherchez-les dans la console Amazon Cognito sous l'onglet Nom de domaine de la page de gestion de votre groupe d'utilisateurs.
  • Si vous avez précédemment sélectionné uniquement le flux Implicit grant (Autorisation implicite) pour Flux OAuth autorisés, modifiez response_type=code en response_type=token.
  • Remplacez yourClientId par l'identifiant de votre client d'application et remplacez redirectUrl par l'URL de retour de votre client d'application. Recherchez-les dans la console Amazon Cognito sous l'onglet Paramètres du client d'application de la page de gestion de votre groupe d'utilisateurs.

Pour plus d'informations, consultez les sections Comment configurer l'interface utilisateur web hébergée pour Amazon Cognito ? et Point de terminaison AUTHORIZATION.

Tester l'URL de point de terminaison

  1. Saisissez l'URL du point de terminaison créée dans votre navigateur web.
  2. Sous Se connecter avec votre ID d'entreprise, choisissez le nom de votre fournisseur OIDC (par exemple, Auth0-LinkedIn). Vous êtes alors redirigé vers la page de connexion de votre application Auth0.
  3. Choisissez Log in with LinkedIn (Se connecter avec LinkedIn). Vous êtes alors redirigé vers la page de connexion de LinkedIn.
    Remarque : si vous êtes plutôt redirigé vers votre URL de rappel du client d'application Amazon Cognito, cela signifie que vous êtes déjà connecté à LinkedIn.
  4. Sur la page de connexion de LinkedIn, saisissez l'adresse e-mail (ou le numéro de téléphone) et le mot de passe liés à votre compte LinkedIn.
  5. Sélectionnez Sign in (Connexion).

Une fois connecté, vous êtes redirigé vers l'URL de retour de votre client d'application. Le code d'autorisation ou les jetons de groupe d'utilisateurs s'affichent dans l'URL située dans la barre d'adresse de votre navigateur Web.

(Facultatif) Ignorer l'interface utilisateur hébergée d'Amazon Cognito

Si vous souhaitez que vos utilisateurs ignorent l'interface utilisateur web hébergée d'Amazon Cognito au moment de se connecter à votre application, utilisez alors cette URL du point de terminaison :

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&identity_provider=oidcProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

Procédez comme suit afin de personnaliser l'URL pour votre configuration :

  • Remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Recherchez-les dans la console Amazon Cognito sous l'onglet Nom de domaine de la page de gestion de votre groupe d'utilisateurs.
  • Si vous avez précédemment sélectionné uniquement le flux Implicit grant (Autorisation implicite) pour Flux OAuth autorisés, modifiez response_type=code en response_type=token.
  • Remplacez oidcProviderName par le nom du fournisseur OIDC dans votre groupe d'utilisateurs. Par exemple, Auth0-LinkedIn.
  • (Facultatif) Si vous avez précédemment ajouté un identifiant pour votre fournisseur OIDC dans le champ Identifiants (facultatif), vous pouvez remplacer identity_provider=oidcProviderName par idp_identifier=idpIdentifier, afin de remplacer idpIdentifier par votre chaîne d'identifiant personnalisée.
  • Remplacez yourClientId par l'identifiant de votre client d'application et remplacez redirectUrl par l'URL de retour de votre client d'application. Recherchez-les dans la console Amazon Cognito sous l'onglet Paramètres du client d'application de la page de gestion de votre groupe d'utilisateurs.
  • Remplacez allowedOauthScopes par les portées spécifiques que vous souhaitez que votre client d'application Amazon Cognito demande.

Pour plus d'informations, consultez les sections Comment configurer l'interface utilisateur web hébergée pour Amazon Cognito ? et Point de terminaison AUTHORIZATION.