Comment puis-je configurer l'authentification à l'aide d'Application Load Balancer lorsque j'emploie Facebook et Amazon Cognito en tant que fournisseurs d'identité ?

Dernière mise à jour : 07/08/2020

Comment puis-je configurer l'authentification à l'aide d'Application Load Balancer lorsque j'emploie Facebook et Amazon Cognito en tant que fournisseurs d'identité ?

Brève description

En cas d'authentification à l'aide d'Application Load Balancer, ce dernier confirme que le client est authentifié ou bien l'invite à s'authentifier. La cible backend a uniquement pour rôle d'exécuter d'autres logiques ou services métier, comme les profils utilisateur et les paiements. Un équilibreur de charge d'application rejette et autorise les accès client. Cependant, dans la mesure où les équilibreurs de charge d'application ne stockent pas les identifiants qui permettent les connexions, vous pouvez configurer Amazon Cognito et Facebook afin que ceux-ci gèrent et authentifient les utilisateurs.

Résolution

Configurer l'application Facebook

  1. Accédez au site Facebook for Developers.
  2. Dans la partie supérieure droite, sélectionnez Mes applications, puis Ajouter une nouvelle application.
  3. Indiquez un nom, puis sélectionnez Créer un ID d'application.
  4. Sélectionnez Connexion Facebook.
  5. Sélectionnez Web (www).
  6. Indiquez le nom de domaine du site. Ce nom est identique au nom que vous utilisez pour créer un alias en direction du DNS d'Application Load Balancer.
  7. Sélectionnez Suivant.
  8. Ne tenez pas compte des indications relatives au kit SDK JavaScript, puis sélectionnez Suivant.
  9. Sélectionnez Suivant.

Lorsque vous atteignez l'étape 5 de l'assistant, poursuivez afin de configurer Amazon Cognito. Une dernière étape doit être effectuée lors de la configuration de l'application Facebook, mais avant cela, vous devez configurer Amazon Cognito.

Configurer Application Load Balancer pour les authentifications et d'Amazon Cognito en tant qu'agrégateur IdP/IdP

  1. Ouvrez la console Amazon Elastic Compute Cloud (Amazon EC2).
  2. Créez un équilibreur de charge d'application.
  3. Dans le volet de navigation, sous ÉQUILIBRAGE DE CHARGE, sélectionnez Équilibreurs de charge.
  4. Sélectionnez l'équilibreur de charge d'application que vous avez créé à l'étape 2.
  5. Sélectionnez Écouteurs, puis Ajouter un écouteur.
  6. Sélectionnez HTTPS:443 (ou n'importe quel port utilisant le protocole HTTPS).
  7. Dans le champ Action, sélectionnez Authentifier.
  8. Gardez l'option Amazon Cognito sélectionnée.
  9. Dans le champ Pool d'utilisateurs Cognito, sélectionnez Créer nouveau.
  10. Dans le champ Fournisseur d'identité sociale, sélectionnez Facebook.
  11. Accédez au site Facebook for Developers.
  12. Sélectionnez l'application que vous avez créée au cours de l'étape Configurer l'application Facebook.
  13. Sélectionnez Paramètres, puis De base.
  14. Copiez l’ID d'application.
  15. Sélectionnez Afficher, puis saisissez votre mot de passe Facebook afin de pouvoir choisir l'option Clé secrète de l'application.
  16. Revenez à la page de configuration d'Amazon Cognito de la console Amazon EC2. Collez ensuite l’ID d'application, puis saisissez la clé secrète de l'application.
  17. Dans le champ Portée d'autorisation, saisissez public_profile.
  18. Dans le champ Préfixe de domaine, sélectionnez un nom unique à ajouter au service DNS régional Amazon Cognito. Par exemple, si vous spécifiez « abc » en tant que préfixe de domaine, le nom de domaine complet correspond à https://abc.auth.us-east-2.amazoncognito.com/.
  19. Sélectionnez Créer un pool d'utilisateurs Cognito.
  20. Copiez le nom de domaine que vous avez spécifié à l'étape 18.
  21. Ajoutez une autre règle à votre écouteur HTTPS. Sélectionnez Transférer vers :, puis spécifiez le nom du groupe cible de votre équilibreur de charge d'application.
  22. Sélectionnez Enregistrer.

Finalisation de la configuration de l'application Facebook

  1. Ouvrez l'application Facebook.
  2. Sélectionnez Connexion Facebook, puis Paramètres.
  3. Dans le champ URI de redirection OAuth valides, collez le nom de domaine complet Amazon Cognito et ajoutez le suffixe /oauth2/idpresponse (le résultat doit être similaire à https://abc.auth.eu-west-1.amazoncognito.com/oauth2/idpresponse).
  4. Sélectionnez Enregistrer les modifications.
  5. Sélectionnez Paramètres, puis De base et Domaines d'application.
  6. Ajoutez le nom de domaine qui redirige vers votre équilibreur de charge d'application.
  7. Sélectionnez Enregistrer les modifications.

Finalisation de la configuration d'Amazon Cognito

  1. Ouvrez la console Amazon Cognito.
  2. Sélectionnez votre pool d'utilisateurs configuré.
  3. Sélectionnez Paramètres du client d'application.
  4. Dans le champ URL de rappel, spécifiez le nom de domaine pour lequel vous avez créé un alias dans Route 53 qui pointe vers Application Load Balancer, puis ajoutez le suffixe /oauth2/idpresponse. Par exemple, https://www.exemple.com/oauth2/idpresponse.

Important : Facebook étant une application tierce, la procédure de configuration ci-dessus peut varier au fil du temps. Pour obtenir les dernières mises à jour, reportez-vous à la documentation disponible sur le site de Facebook.