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

Dernière mise à jour : 15/09/2022

Je veux que les utilisateurs de mon application 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 obtient des identités à partir de LinkedIn, tandis qu'Amazon Cognito obtient celles-ci à partir 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 présentant des problèmes d'intégration similaires. Pour plus d'informations, veuillez consulter la section Fournisseurs d'identité (français non garanti) sur le site web d'Auth0.

Solution

Création d'un groupe d'utilisateurs Amazon Cognito avec un client d'appli et un nom de domaine

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

Inscription à un compte Auth0

Saisissez votre adresse e-mail ainsi qu'un mot de passe sur la page d'inscription du site web d'Auth0 pour démarrer. Si vous disposez déjà d'un compte Auth0, connectez-vous à celui-ci. Une fois connecté, prenez note de votre nom de locataire Auth0.

Création d'une application Auth0

  1. Sur le tableau de bord du site web d'Auth0, sélectionnez + Create Application (+ Créer une application).
    Remarque : si vous avez déjà créé l'application Auth0 que vous voulez utiliser, passez à la section suivante.
  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 Save changes (Enregistrer les modifications).

Création d'un compte LinkedIn

Saisissez votre adresse e-mail ainsi qu'un mot de passe sur la page d'inscription du site web de LinkedIn pour démarrer. Si vous disposez déjà d'un compte LinkedIn, connectez-vous à celui-ci.

Création d'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 l'ensemble des champs requis ainsi que ceux que vous voulez afin de personnaliser votre application LinkedIn. Cliquez ensuite sur Create app (Créer une application).
  3. Cliquez sur l'onglet Auth. Vérifiez que r_emailaddress et r_liteprofile sont répertoriés. Ces autorisations sont requises pour qu'Auth0 puisse accéder aux informations d'utilisateur LinkedIn.
    Remarque : si r_emailaddress et r_liteprofile ne sont pas répertoriées, ajoutez le produit « Sign In with LinkedIn » (Se connecter avec LinkedIn) à votre application. Celui-ci se trouve dans l'onglet Products (Produits) de votre page de développement de LinkedIn.
  4. Sous Application credentials (Informations d'identification de l'application), copiez l'ID client ainsi que la clé secrète du client. 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), à côté de Redirect URLs: (URL de renvoi :), cliquez sur l'icône en forme de crayon, puis sur + Add redirect URL (+ Ajouter une URL de renvoi).
  6. Sous Redirect URLs: (URL de renvoi :), saisissez https://tenantName.us.auth0.com/login/callback en remplaçant tenantName par votre nom de locataire Auth0 (ou par un domaine personnalisé Auth0).

Connexion à LinkedIn à partir d'Auth0

  1. Sur le tableau de bord du site web d'Auth0, dans le panneau de navigation de gauche, sélectionnez Authentication (Authentification), puis Social.
  2. Sélectionnez 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 Enregistrer.
  5. Sur le volet Applications de la boîte de dialogue de LinkedIn, choisissez les applications pour lesquelles vous souhaitez activer LinkedIn en tant que fournisseur d'identité sociale.
  6. Choisissez Enregistrer.

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).

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.
    Pour ID client, saisissez lID client que vous avez copié précédemment depuis votre application Auth0.
    Pour Clé secrète du client (facultatif), saisissez la Clé secrète que vous avez copiée précédemment depuis votre application Auth0.
    Pour l'option 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, consultez la section Ajoutez un fournisseur d'identité (IdP) OIDC à votre groupe d'utilisateurs.

Modification des 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 App integration (Intégration d'application), sélectionnez App client settings (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://example.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://example.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.
    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 Save changes (Enregistrer les modifications).

Pour en savoir plus, consultez la section Terminologie 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, sélectionnez l'onglet OIDC.
  3. Si vous disposez de 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 Nom d'utilisateur 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 en savoir plus, 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 rappel de votre client d'application. Recherchez-les dans la console Amazon Cognito sous l'onglet App client settings (Paramètres du client d'application) de la page de gestion de votre groupe d'utilisateurs.

Pour plus d'informations, consultez Comment configurer l'interface utilisateur Web hébergée pour Amazon Cognito ? et Autoriser le point de terminaison.

Test de 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 du 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 l'URL suivante comme URL de 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 rappel de votre client d'application. Recherchez-les dans la console Amazon Cognito sous l'onglet App client settings (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 voulez que votre client d'application Amazon Cognito demande.