Dans ce tutoriel, je vais vous expliquer comment configurer l’authentifications SAML avec ADFS et Nextcloud.
Dans un tutoriel précédent, j’avais traiter l’authentification de Nextcloud avec l’Active Directory directement, ici nous allons obtenir le « même » résultat mais cette fois ci avec ADFS.
L’avantage d’utiliser ADFS est multiple :
- Pas de liaison directe avec l’annuaire Active Directory
- Possibilité d’avoir Nextcloud à l’extérieure du réseau si un proxy ADFS est configuré
- Provisionning des comptes à la connexion contrairement à la liaison AD où les comptes sont synchronisés
Installation de l’application SSO & SAML authentification
Pour configurer l’authentification SAML, nous avons besoin d’installation le plugin : SSO & SAML authentification.
Depuis Nextcloud avec un compte administrateur, cliquer sur votre avatar 1 puis sur Applications 2.
Sur la page d’administration des applications cliquer sur la loupe 1 pour effectuer une recherche.
Dans la zone de recherche entrer SAML 1 afin d’avoir l’application SSO & SAML authentification qui s’affiche.
Cliquer ensuite le bouton Télécharger et activer 1.
L’application est SSO & SAML authentification est installé.
On va maintenant passer à la configuration de Nextcloud pour avoir l’authentification SAML.
Configuration de l’application SSO & SAML authentification dans Nextcloud
Nous allons maintenant configurer l’authentification SAML dans Nextcloud.
Cliquer sur l’avatar du compte 1 puis sur Paramètres d’administration 2.
Dans le menu de gauche, cliquer sur Authentification SSO & SAML 1.
Cliquer sur le bouton Utiliser l’authentification SAML intégrée 1.
Dans les paramètres généraux, cocher la case Autoriser l’utilisation de plusieurs systèmes d’authentification 1.
Si vous ne cochez pas cette case et que vous avez besoin de vous connecter avec un compte local, il faut entrer l’adresse suivante pour accéder au formulaire : https://url-nextcloud/login?direct=1
Si la case n’est pas cocher et que l’utilisateur n’a pas encore été authentifié sur ADFS, il sera automatiquement envoyer sur la page d'(authentification ADFS.
Le première paramètres à configurer va être un identifiant unique pour l’utilisateur, on va utiliser l’UPN, pour cela dans le champ Attribut pour relier l’UID 1 on va mettre : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
.
On va configurer maintenant les informations de l’IDP, cliquer sur Hide optional Identity Provider settings 1.
Voici les informations à saisir :
- 1 Identifiant de l’entité IdP : https://adfs-url/adfs/services/trust
- 2 Url cible du fournisseur d’identités à qui le fournisseur de service enverra la requête : https://adfs-url/adfs/ls
- 3 Le certificat d’authentification des jetons (ADFS : récupérer le certificat de signature des jetons en base 64)
La configuration est terminée sur Nextcloud, cliquer le bouton en bas Télécharger les méta-données XML 1. Ce fichier va nous servir pour la configuration relation dans ADFS.
On va maintenant passer à la configuration dans ADFS
Configuration de ADFS
Avant de commencer, copier le fichier XML télécharger précédemment sur le serveur.
Comment toute configuration au niveau de ADFS pour l’authentification SAML, cela va se passer en 2 étapes :
- Ajout de la partie de confiance
- Configuration des revendications
Ajout de l’approbation de partie de confiance
Depuis la console ADFS, aller dans le dossier Approbation de partie de confiance 1 et cliquer sur Ajouter une approbation de partie de confiance 2.
Au lancement de l’assistant, sélectionner Prise en charge des revendications 1 et cliquer sur Démarrer 2.
Choisir Importer les données concernant la partie de confiance à partir d’un fichier 1, sélectionner le fichier XML 2 et cliquer sur Suivant 3.
Nommer 1 la partie de confiance et cliquer sur le bouton Suivant 2.
Ici, on va configurer qui peut se connecter à Nextcloud, dans mon cas, je souhaite que le monde puisse, sélectionner Autoriser tout le monde 1 et cliquer sur Suivant 2.
Un résumé de paramètre est affiché, cliquer sur Suivant 1.
La partie de confiance est ajoutée, laisser cocher : Configurer une stratégie d’émission de revendication pour cette application 1 et cliquer sur Fermer 2.
Configuration des revendications
Les revendications sont les informations de l’utilisateur que nous allons envoyés à Nextcloud.
Normalement une nouvelle fenêtre s’est ouverte, cliquer sur Ajouter une règle 1.
Choisir Envoyer les attributs LDAP en tant que revendication 1 et cliquer sur Suivant 2.
Nommer la règle 1 et choisir Active Directory 2 comme magasin d’attribut.
Configurer le mappage d’attribut suivant :
- 1 User-Principal-Name -> UPN
- 2 E-mail Addresses -> ID de nom
Cliquer sur le bouton Terminer 1 pour fermer l’assistant.
Cliquer sur Appliquer 1 et OK 2.
La configuration au niveau de ADFS est terminée.
Tester l’authentification SAML de Nextcloud
Depuis un navigateur en mode privé, aller à l’url de votre Nextcloud, si vous avez configurer l’option pour autoriser l’utilisateur de plusieurs systèmes d’authentification, vous arrivez sur la page ci-dessous, cliquer sur Connexion SSO & SAML, sinon vous êtes directement redirigé vers la page d’authentification du service ADFS.
Identifiez vous sur le portail :
Si tout se passe bien vous êtes connecté à Nextcloud.
Si on regarde dans l’administration, on retrouve l’utilisateur avec comme origine de compte user_saml.
Vous savez comment configurer l’authentification SSO / SAML entre Nextcloud et ADFS.
D’autre élément de configuration n’ont pas été abordé dans ce tutoriel, mais il est possible de passer le nom et prénom en revendication pour compléter la fiche utilisateur.
Je vais également traiter le cas particulier si vous avez déjà lié Nextcloud à votre annuaire Active Directory en laissant ObjectGUID comme identifiant des utilisateurs (Nom interne).
Lors de la configuration du champ Attribut pour relier l’UID, il faut mettre la valeur suivante : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier
Pour les revendications, il faut passer ObjectGUID -> PPID.