Par exemple, si vous avez besoin de gérer des connexions à votre site WordPress, Keycloak peut être la solution idéale pour centraliser l’authentification (SSO) et sécuriser les accès utilisateurs.
Et si l’installation d’un Keycloak from scratch vous semble trop laborieuse, sachez que Clever Cloud possède un add-on dédié et managé pour cela : notre Keycloak as a Service. Il suffit de quelques clics et tout est déployé pour avoir votre propre Keycloak, et ce, sans avoir à gérer l’infrastructure et la maintenance.
WordPress est tout aussi simple à déployer sur Clever Cloud. Nous avons même un guide WordPress pour vous aider à tout mettre en place. Alors si vous souhaitez gérer les connexions à votre site WordPress via Keycloak pour unifier vos gestion d’identités, le faire sur Clever Cloud simplifiera votre vie.
Installer et configurer Keycloak avec WordPress sur Clever Cloud
Commencez par télécharger le plugin miniOrange OAuth Single Sign On sur votre instance WordPress.
Créez ensuite un add-on Keycloak sur Clever Cloud. La documentation est disponible ici : installation de Keycloak sur Clever Cloud.
Puis, ils vous suffit de vous connecter en tant que admin au Keycloak . Pour cela il est possible de retrouver le lien dans la variable d’environnement CC_KEYCLOAK_ADMIN_URL dans la console, au niveau de la configuration du Keycloak.
Aussi, les identifiants du user admin sont dans la variables d’environnement CC_KEYCLOAK_ADMIN et CC_KEYCLOAK_ADMIN_DEFAULT_PASSWORD.
Le mot de passe n’est que pour la première connexion, après Keycloak vous demander de le changer, bien évidemment.
Une fois connecté à Keycloak, cliquez sur le bouton Manage Realms puis Create Realm.
Dans mon exemple, je l’ai nommé wordpressRealm, pour faire sobre et simple.
Sur WordPress, allez dans votre liste des plugins, vous devriez y retrouver le plugin miniOrange.
Cliquez sur le bouton Configure de ce plugin.

Vous arriverez sur la page de configuration de ce plugin. Allez ensuite sur add application et sélectionnez Keycloak.

Une fois sélectionné, vous arriverez sur la page qui permet de setup le lien avec votre Keycloak. Il s’agira de laisser la fenêtre ouverte dans un coin, car nous devons d’abord configurer le Keycloak.

Configuration de Keyclaok
Sur le Keycloak, allez maintenant dans le menu Manage Realm, et sélectionnez celui que vous avez créé. Une fois que c’est bon, cliquea sur le menu Clients puis le bouton Create Client.
Remplissez le champ ClientID avec un nom qui claque pour votre client Keycloak, puis cliquez sur Next.
Vous arriverez sur une page qui vous permet de définir ce que peux réaliser votre client. Dans notre cas, nous devons activer Client authentication et Authorization puis cocher Standard flow et Direct access grants.
Cela permet de donner les droits au client Keycloak de gérer l’authentification et l’autorisation des utilisateurs.

Cliquez encore une fois sur ce fameux bouton Next et vous arriverez à la dernière étape de configuration du client. Vous devez ajouter un Valid redirect URIs. C’est une URL importante, qui est source de moult erreurs, alors soyons concentrés.
Pour l’obtenir, revenez sur la page de setup du plugin MiniOrange et copiez l’URL présente dans le champ callback URL. Enfin, confirmez et le client est désormais créé.
Ajout d’un utilisateur test
Il faut ensuite ajouter un utilisateur de test sur Keycloak. Vous pouvez le faire depuis le menu Users et le bouton Add-User. Ensuite, allez dans le menu Credentials de l’utilisateur pour lui attribuer un mot de passe.

La configuration sur Keycloak est désormais terminée, nous allons pouvoir revenir sur celle de MiniOrange.
Configuration sur MiniOrange
Revenez à nouveau sur le menu Clients et sélectionnez celui que vous avez créé. Allez dans Credentials afin d’obtenir le fameux sésame bien nommé “Client Secret“.

Copiez la valeur du secret et revenez sur la page de setup du plugin miniOrange. Vous pouvez coller le secret dans le champ Client Secret correspondant. Mettez aussi le client ID que vous aviez choisi dans le champ du même nom.
Pour Authorization Endpoint, il faut mettre l’URL :
http://keycloak.example.com/realms/{realm_name}/protocol/openid-connect/auth
Pour Token Endpoint, il faut mettre l’URL :
http://keycloak.example.com/realms/{realm_name}/protocol/openid-connect/token
Avec Keycloak_domain qui est le domaine de votre keycloak. Il est sous la forme xxx-keycloak.services.clever-cloud.com et vous n’avez qu’à le copier dans l’URL de votre keycloak. Pour realm_name, il s’agit du nom que vous avez donné à votre realm.
Quand vous avez rempli tous les champs, cliquer sur Next et Finish pour terminer la configuration. Une page de login va s’ouvrir vous demandant de vous connecter avec l’utilisateur keycloak que vous avez créer.
Si vous vous connectez avec succès, cela signifie que tout est bon et vous pouvez conclure la configuration en cliquant sur Finish.
Keycloak est désormais lié à votre wordpress, il ne reste plus qu’une dernière configuration à effectuer.
Activer la connexion pour les administrateurs
Par défaut, seuls les utilisateurs normaux (donc non-administrateurs) peuvent se connecter via Keycloak.
Si vous souhaitez que les admin puissent aussi se connecter en tant que tels via Keycloak, il faut retourner sur la page de configuration du plugin, cliquez sur select an option puis Edit Application. Cochez ensuite l’option Allow admin user to perform SSO et sauvegardez.
Allez ensuite dans le menu Attribute/Role Mapping et dans le champ Email, sélectionnez l’attribut email.

Et là, l’email de l’utilisateur sur Keycloak sera correctement mappé à l’e-mail de l’utilisateur WordPress. Ainsi, si vous vous connectez avec un utilisateur Keycloak qui à le même e-mail qu’un administrateur sur WordPress, vous serez connecté sur le compte de l’administrateur.
Vous pouvez alors vous déconnecter sur WordPress et vous aurez sur l’écran de connexion un bouton Login with Keycloak
Optionnel : Configuration des sessions
Par défaut, lorsque vous vous connectez avec Keycloak, une session est créée qui gardera votre login actif pendant un certain temps.
Si vous vous déconnectez puis essayez de vous connectez à nouveau via Keycloak, dans le cas où la session n’aurait pas expirée, vous serez automatiquement connecté à votre compte sans avoir à rentrer de login ou mot de passe.
Et si vous souhaitez changer cette option, dans votre Keycloak, cliquez sur Realm settings puis Sessions.

Vous pourrez alors configurer les différents paramètres de la session tels que combien de temps la session peut être inactive avant qu’elle ne soit expiré ou la durée de vie maximum de la session.
Vous avez maintenant relié votre WordPress à Keycloak via Clever Cloud, en profitant d’une solution managée qui simplifie toute la gestion d’infrastructure. Grâce à ce déploiement, vous disposez d’un SSO sécurisé, moderne et évolutif, sans maintenance ni configuration complexe.