Site icon RDR-IT

Nextcloud : authentification avec Keycloak

Dans ce tutoriel, je vais vous expliquer comment configurer Nextcloud pour vous authentifier en utilisant Keycloak.

L’utilisation de Keycloak pour gérer l’authentification dans Nextcloud permet de mettre en place un portail SSO qui va permettre à vos utilisateurs de s’authentifier une seule fois pour accéder à plusieurs applications.

Keycloak permet aussi de pouvoir créer des comptes pour des utilisateurs extérieures à votre organisation sans avoir besoin de les ajouter dans votre annuaire Active Directory si vous utilisez celui-ci comme fournisseur d’authentification ou encore ADFS.

Dans ce tutoriel, je vais configurer Keycloak et Nextcloud en utilisant OpenID.

Prérequis

Avant de vous lancez dans ce tutoriel, vous devez avoir Nextcloud de déployer ainsi que Keycloak.

Dans ce tutoriel je suis partie d’un nouvel environnement.

Configuration du client dans Keycloak

Je vais commencer par créer un royaume dédié à Nextcloud, si vous avez déjà un royaume que vous souhaitez utiliser, vous n’êtes pas obligé de le faire.

Depuis Keycloak, cliquer sur la liste des royaumes 1 puis cliquer sur Create realm 2.

Entrer le nom 1 du royaume et cliquer sur Create 2.

Une fois le royaume créé et celui-ci sélectionner, cliquer sur Client 1.

Depuis la liste des clients, cliquer sur le bouton Create client 1.

Type de client, sélectionner OpenID Connect 1, puis saisir le Client ID 2, nommer le client 3 et cliquer sur Next 4.

Passer le sélecteur à On 1 pour Client authentification puis cliquer sur Next 2.

Dans le Root URL 1 et Home URL 2 indiquer l’url racine de Nextcloud et pour le champ Valid redirect URLs 3, entrer l’url de Nextcloud avec un astérisque (*) à la fin er cliquer sur Save 4.

Le client OpenID est créé dans Keycloak.

Aller sur l’onglet Credentials 1 afin de pouvoir copier le champ Client Secret 2 lors de la configuration de Nextcloud.

Dans la configuration du royaume, j’ai configuré l’identifiant des utilisateurs avec l’adresse e-mail

Nextcloud configuration de l’authentification avec Keycloak

Maintenant, nous allons passer à la configuration de Nextcloud, nous allons avoir besoin d’ajouter une application pour la prise en charge de l’authentification OpenID, il existe plusieurs plugins qui permet de le faire, ici j’ai choisi Social Login, qui est la plus utilisée.

Dans un nouvel onglet, ouvrir Nextcloud, puis cliquer sur l’icone Utilisateur 1 puis sur Applications 2.

Sur le menu de gauche, cliquer sur la catégorie Social & communication 1.

Dans la liste des applications, rechercher Social Login, cliquer sur le bouton Télécharger et activer 1.

L’application installée, cliquer sur l’icone Utilisateur 1 puis sur Paramètres d’administration 2.

Depuis le menu de gauche, cliquer sur Connexion via Social 1.

Cliquer sur le bouton + 1 pour ajouter un fournisseur d’authentification OpenID.

Configuration :

Pour finir cliquer sur Enregistrer 9.

* Vous devez adapter en fonction de l’URL et nom de votre royaume.

Une fois la connexion OpenID enregistrée, il n’est plus possible de modifier le Nom Interne.

Afin de tester la configuration, on va se connecter avec un utilisateur présent dans Keycloak.

Dans Keycloak, j’ai créé un utilisateur de test et je lui ai assigné un mot de passe.

Depuis un autre navigateur ou en navigation privée, aller sur l’url de votre Nextcloud, sur le formulaire d’authentification, vous devez avoir un nouveau bouton 1, cliquer dessus.

On est redirigé avec le formulaire d’authentification Keycloak, entrer identifiant 1 et mot de passe 2 puis cliquer sur Sign in 3.

Si tout est bon, on est connecté et ensuite redirigé sur Nextcloud.

En parallèle, si on regarde dans les utilisateurs Nextcloud, on peut voir que le compte a été créé.

On peut voir le nom du compte qui est constitué du Nom Interne (Authentification) et d’un GUID qui est celui de l’utilisateur dans Keycloak.

Si on regarde dans les dossiers sur le serveur, on retrouve le dossier de l’utilisateur qui est créé avec le nom du compte.

Vous savez comment configurer Keycloak avec Nextcloud. Si vous ajoutez l’authentification OpenID sur une installation existante de Nextcloud et que vous avez des utilisateurs déjà présents, il est possible pour les utilisateurs de lier leur compte à Keycloak depuis leur paramètre.

Lier les groupes Nextcloud et Keycloak

Pour finir cette configuration, je vais vous expliquer comment lier des groupes qui sont dans Keycloak à Nextcloud ou inversement.

Si vous utilisez des groupes pour la gestion des dossiers d’équipe ou pour des autorisations, cela va permettre de faire cette liaison automatiquement par rapport à Keycloak lors de la création du compte ou de la connexion de l’utilisateur.

Dans l’administration de Nextcloud, on peut voir que j’ai un groupe DPO et j’ai créé le même groupe dans Keycloak avec comme membre mon utilisateur romain.

Dans Keycloak, aller sur Client scopes 1 puis cliquer sur Create client scope 2.

Nommer le Client Scope 1, activer Display on consent screen 2 et Include in token scope 3 et cliquer sur Save 4.

Aller ensuite sur l’onglet Mappers puis cliquer sur le bouton Configure a New mapper.

Dans la liste cliquer sur Group Membership 1.

Nommer 1 le mappage, donner un nom au token 2 et configurer les options 3 comme sur la capture et cliquer sur Save 4.

Ensuite aller sur Clients 1 et cliquer sur le client de nextcloud 2 qui a été créé au début.

Aller sur l’onglet Client scopes 1 et cliquer sur Add client scope 2.

Sélectionner le Client scope 1 que l’on vient de créer et cliquer sur Add 2 en sélectionner Default.

Retourner sur le configuration de Keycloak dans Nextcloud et modifier les éléments suivant :

Dans la configuration générale de Social Login, cocher la case Mettre à jour le profil utilisateur à chaque connexion.

C’est fini, cette configuration doit vous permettre de faire la liaison des groupes avec Keycloak automatiquement.

Quitter la version mobile