Authentification WordPress
SSO WordPress avec Amazon Cognito et Gatey | Guide de connexion sociale et d’entreprise
Amazon Cognito peut servir de hub d’identité unique pour les fournisseurs sociaux et le fournisseur SAML ou OIDC existant d’une organisation. Gatey intègre cette couche d’identité à WordPress au moyen de parcours configurables de connexion, d’inscription, de MFA et de gestion de compte, qui peuvent aussi continuer à fonctionner après une exportation statique.
Avant la configuration
Trois décisions structurent toute la conception du SSO
Choisir le hub d’identité
Regroupez les fournisseurs sociaux et d’entreprise derrière un seul Cognito User Pool afin que les applications utilisent un ensemble cohérent d’utilisateurs, d’attributs, de groupes et de jetons.
Utiliser un client d’application public
Un frontend WordPress ou statique exécuté dans un navigateur ne peut pas conserver un secret client en toute sécurité. Créez le client d’application Cognito sans secret.
Définir la frontière d’autorisation
La connexion Cognito peut se limiter aux sessions du navigateur et aux JWT, ou s’étendre à un Identity Pool lorsque le frontend doit obtenir des identifiants AWS temporaires.
Architecture
Pourquoi utiliser Cognito comme hub d’identité ?
Un site WordPress peut avoir besoin d’une connexion sociale fluide pour ses clients et d’un SSO d’entreprise pour ses employés, partenaires ou donneurs d’ordre. Configurer chaque fournisseur directement dans WordPress crée plusieurs parcours de rappel distincts et complique la coordination des modifications ultérieures.
Cognito regroupe ces fournisseurs derrière un seul User Pool et émet les jetons utilisés par l’application. Gatey présente l’interface dans WordPress. Pour une connexion externe, l’authentification et toute MFA requise relèvent du fournisseur d’identité en amont ; configurez ces exigences auprès de celui-ci.
- Utilisez un seul User Pool comme annuaire d’identités de l’application.
- Ajoutez chaque fournisseur externe à Cognito au lieu de reconstruire le parcours de connexion WordPress.
- Laissez Gatey présenter les options de connexion obtenues dans WordPress.
Cette séparation est particulièrement utile lorsque le même parcours d’identité doit fonctionner à la fois sur une installation WordPress dynamique et sur un frontend publié de manière statique. Pour la frontière au niveau de l’application, consultez comment utiliser Amazon Cognito comme couche d’identité de l’application.
Fondations Cognito
Comment configurer le User Pool et l’App Client ?
Commencez par un Cognito User Pool et un client d’application destiné au navigateur. Le client d’application ne doit pas générer de secret. Activez le flux authorization code grant et enregistrez exactement les URL de rappel et de déconnexion utilisées par le site.
Ne demandez que les portées d’autorisation nécessaires à l’interface publique. Une base courante comprend openid, email et profile. Ajoutez aws.cognito.signin.user.admin uniquement si les fonctions du compte nécessitent les opérations sur le profil utilisateur Cognito couvertes par cette portée.
- Faites correspondre exactement les URL de rappel, y compris le protocole, le nom d’hôte, le chemin et la barre oblique finale.
- Activez chaque fournisseur d’identité que le client d’application doit proposer.
- Créez un domaine Cognito pour les points de terminaison d’autorisation gérés.
Testez le parcours d’autorisation Cognito avant de mettre en forme l’expérience WordPress. Un fournisseur qui échoue dans Cognito échouera également lorsqu’il sera lancé via Gatey.

Fournisseurs d’identité
Comment intégrer les fournisseurs sociaux et d’entreprise ?
Cognito peut fédérer des fournisseurs sociaux courants tels que Google, Facebook, Apple et Amazon. Les connexions d’entreprise passent généralement par OIDC ou SAML, ce qui permet au fournisseur d’identité d’entreprise existant de rester la source des identités des employés ou partenaires.
Associez les attributs exigés par le User Pool, tels que l’adresse e-mail et les noms du profil. Cognito déduit le nom d’utilisateur fédéré de l’identifiant du fournisseur ; il ne s’agit pas d’une association manuelle du nom d’utilisateur. Vérifiez les attributs obligatoires et ceux accessibles en écriture dans la documentation AWS sur le mappage des attributs.
- Testez chaque fournisseur séparément via le parcours d’autorisation hébergé par Cognito.
- Examinez les déclarations renvoyées dans les jetons et les attributs associés au lieu de supposer que les valeurs par défaut du fournisseur correspondent.
- Limitez les portées d’autorisation demandées au fournisseur et les attributs Cognito au strict nécessaire pour l’application.
Les noms affichés des fournisseurs sont des choix de présentation dans Gatey ; leurs identifiants réels et la configuration des relations de confiance restent dans Cognito. Pour le parcours de fédération, découvrez comment connecter WordPress à des fournisseurs d’identité SAML et OIDC existants. Le tableau ci-dessous décrit les réglages côté fournisseur ; ces portées diffèrent de celles demandées par votre client d’application Cognito. Suivez les instructions AWS de configuration des fournisseurs pour connaître les champs exacts.
Réglages des fournisseurs d’identité sociale
| Fournisseur | Identifiants | Portées d’autorisation | Mappage courant |
|---|---|---|---|
| ID client OAuth + secret | openid email profile |
email → email, family_name → family_name, given_name → given_name ; Cognito déduit le nom d’utilisateur de sub. |
|
| ID d’application + secret | public_profile, email |
email → email, last_name → family_name, first_name → given_name ; Cognito déduit le nom d’utilisateur de id. |
|
| Apple | Services ID, Team ID, Key ID, clé privée | name email |
Mappez email ; tenez compte des adresses e-mail de relais privé Apple dans votre expérience utilisateur. |
| Amazon | Profil de sécurité Login with Amazon | profile |
email → email, name → name lorsque ces attributs sont disponibles |

Configuration WordPress
Comment connecter Cognito à Gatey ?
Dans l’administration WordPress, ouvrez les réglages SmartCloud et configurez Gatey avec la région AWS, l’ID du User Pool, l’ID de l’App Client, le domaine Cognito, les scopes OAuth, les mécanismes de connexion et les attributs d’inscription utilisés par le site.
Ajoutez ensuite le bloc Gatey Authenticator à la page de connexion ou de compte. Les fournisseurs sociaux intégrés peuvent être activés dans les réglages du bloc, tandis que les fournisseurs SAML et OIDC personnalisés peuvent être présentés avec les libellés requis par le projet.
- Créez et testez d’abord une page de connexion ou de compte dédiée.
- Vérifiez séparément les parcours d’inscription, de confirmation, de récupération du mot de passe, de MFA et de profil.
- N’ajoutez les boutons de fournisseurs personnalisés qu’après confirmation de leurs identifiants Cognito.
Gatey contrôle la couche de présentation WordPress, mais ne déplace ni les secrets des fournisseurs, ni les mots de passe, ni l’annuaire d’utilisateurs Cognito dans WordPress.

Accès administrateur
Mappez un groupe d’administrateurs avant de remplacer wp-login.php
Ne redirigez ni ne remplacez la connexion WordPress native tant qu’au moins une identité Cognito testée n’est pas mappée au rôle d’administrateur WordPress requis. Vérifiez le parcours complet dans une session de navigateur distincte et conservez une voie de récupération afin qu’une erreur de fournisseur ou de mappage ne bloque pas tous les administrateurs.
Accès aux API AWS
Quand faut-il un Identity Pool et un rôle IAM ?
Un User Pool suffit lorsque le site n’a besoin que de la connexion, des écrans de compte et d’API autorisées par JWT. Un Identity Pool devient pertinent lorsque les utilisateurs authentifiés dans le navigateur doivent recevoir des identifiants AWS temporaires et signer les requêtes avec AWS IAM.
Les rôles IAM associés ne doivent autoriser que les actions et ressources nécessaires à cette interface publique. L’autorisation fondée sur les groupes ou les déclarations des jetons peut encore restreindre le comportement de l’application, mais elle ne doit pas compenser une stratégie IAM trop permissive.
- Utilisez l’autorisation JWT lorsque l’API peut valider directement les jetons Cognito.
- Ajoutez un Identity Pool uniquement pour les cas nécessitant des identifiants AWS et une signature IAM.
- Limitez execute-api et les autres autorisations aux API et actions prévues.
Traitez l’authentification de l’identité et l’autorisation des ressources comme deux décisions d’architecture distinctes. Une connexion réussie ne doit pas impliquer automatiquement un accès étendu aux services AWS.
Contrôle avant lancement
Que faut-il tester avant de publier le parcours SSO ?
Faites suivre à chaque fournisseur la même séquence qu’un utilisateur réel : commencer depuis WordPress, s’authentifier auprès du fournisseur, revenir à l’URL de rappel enregistrée, examiner les données du compte obtenu, se déconnecter, puis recommencer avec un compte existant.
Testez également les parcours d’échec. Des URL de redirection qui ne correspondent pas, l’absence de la portée openid, une association d’adresse e-mail incomplète, un secret de client d’application et le remplacement prématuré de wp-login sont des causes fréquentes d’échecs SSO difficiles à interpréter.
- Confirmez les URL exactes de rappel et de déconnexion dans Cognito et WordPress.
- Confirmez les déclarations requises dans les jetons, les attributs associés, les groupes et les rôles WordPress.
- Testez une voie de récupération administrateur avant de modifier la connexion par défaut.
Une fois le parcours d’identité fiable, le style et les libellés des fournisseurs peuvent être ajustés sans modifier les relations de confiance sous-jacentes. Pour une diffusion statique, consultez comment maintenir la connexion sans rétablir les sessions PHP.
Configurer d’abord le parcours d’identité
Testez Cognito avant de styliser la connexion WordPress
Créez et vérifiez d’abord le User Pool, le client d’application public, les mappages des fournisseurs, les rappels et les frontières de rôles. Utilisez ensuite Gatey pour placer le parcours de connexion et de compte obtenu là où les utilisateurs WordPress s’attendent à le trouver.
