Activer l'authentification SSO Nextcloud SAML via Microsoft Azure Active Directory

Nextcloud MS365 Azure AD Authentification SSO SAML

Un petit tutoriel pour permettre à vos utilisateurs MS365 de se connecter à votre instance Nextcloud.

  • Avoir un abonnement MS365
  • Avoir installé Nextcloud

  1. Se rendre sur le portail Azure Active Directory depuis la console générale https://admin.microsoft.com
  2. Dans le menu de gauche, cliquer sur Applications > Applications d'entreprise
  3. Cliquer sur "Nouvelle Application"
  4. Cliquer sur "Créer votre propre Application"
  5. Renseigner le nom de l'application (ici j'ai choisi de la nommer Nextcloud)
  6. Cocher "Intégrer une autre application que vous ne trouvez pas dans la galerie (non galerie)" (patienter)

  1. Se rendre sur Authentification unique
  2. Cliquer sur SAML puis renseigner les éléments suivant dans la rubrique Configuration SAML de base :
    • Identificateur (ID d'entité) : Saisir l'URL "https://nextcloud.votredomaine.com/apps/user_saml/metadata" (ou bien en incorporant index.php dans l'url comme ci-après https://nextcloud.votredomaine.com/index.php/apps/user_saml/metadata si vous n'avez pas activé le paramètre de configuration RewriteBase sur Nextcloud pour avoir une URL propre sans /index.php)
    • URL de réponse (URL Assertion Consumer Service) : Saisir l'URL "https://nextcloud.votredomaine.com/

Une fois les renseignements ci-dessus fournis, se rendre sur la rubrique Certificats SAML puis télécharger le fichier XML XML de métadonnées de fédération. Nous insérerons plus tard les données de ce fichier dans notre configuration Nextcloud. certif-xml

Se rendre ensuite sur la partie 4 "Configurer Nextcloud" (Pour rappel Nextcloud est le nom de mon application d'entreprise) et copier l'URL de connexion et l'Identificateur Azure AD. Coller ces URL dans un fichier temporaire.

Par défaut aucun utilisateur de votre tenant MS365 n'a accès à l'application. Vous devez donc ajouter des utilisateurs en vous rendant dans la section Utilisateurs et groupes de votre application nouvellement créée puis ajouter les utilisateurs ou groupes souhaités.

  1. Installer l'application SSO & SAML authentication
  2. Se rendre dans Paramètres d'administration puis cliquer sur Authentification SSO & SAML

Renseigner ensuite comme ceci.

Général :

Saisir dans la case Attribut pour relier l'UID : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Service du Fournisseur de Données :

Saisir dans la case Identifiant de l'entite IdP : copier/coller l'URL contenu dans le fichier temporaire de l'Identificateur Azure AD (commence par https://sts.windows.net/....)

Saisir dans la case URL cible du fournisseur d'identités... : copier/coller l'URL contenu dans le fichier temporaire de URL de connexion (https://login.microsoftonline.com/ID_TENANT/saml2)

Juste au dessous de cette case, cliquer sur "Afficher les paramètres optionnels du fournisseur d'identité... ..."

  1. Saisir dans la case URL du fournisseur d'identité où le fournisseur de service enverra la requête de déconnexion SLO : https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0
  2. Saisir dans la case Certificat public X.509 de l'IdP : Ouvrir le fichier XML téléchargé précédemment puis copier le contenu du certificat contenu dans les balises X509Certificate et coller le contenu dans la case.

Mappage des attributs :

Cliquer sur "Afficher les paramètres de mappage des attributs..." :

  1. Saisir dans la case Identificateur Azure AD : http://schemas.microsoft.com/identity/claims/displayname
  2. Saisir dans la case Attribut pour relier l'adresse mail : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Résultat final final

Et voilà, vos utilisateurs MS365 autorisés peuvent se connecter sur Nextcloud. Ainsi si ceux-ci sont déjà authentifiés sur office.com par exemple, ils n'auront pas besoin de s'authentifier de nouveau sur votre instance Nextcloud.

Si vous souhaitez vous connecter avec un utilisateur géré directement dans Nextcloud (l'admin par exemple), vous pouvez soit utiliser l'URL https://nextcloud.votredomaine.com/login?direct=1 soit coché l'option "Autoriser l'utilisation de plusieurs systèmes d'authentification (ex: LDAP)" présente dans les paramètres de l'application Authentification SSO & SAML de Nextcloud.

Ici j'ai activé l'option ce qui me donne le choix soit d'une connexion directe équivalente à https://nextcloud.votredomaine.com/login?direct=1 soit d'une connexion dite normale utilisée par mes utilisateurs MS365.

Screenshot_20230702_103200 Screenshot_20230702_103259

Il vous faudra configurer Nextcloud en amont de la configuration du SSO pour définir un profil par défaut (langue, squelette, quota...).

Cette solution est pratique pour l'administrateur en lui évitant de devoir gérer plusieurs annuaires d'utilisateurs (surtout quand un utilisateur quitte la structure) mais aussi pratique pour les utilisateurs. Cependant cela implique une politique de mot de passe robuste mais aussi dans la mesure du possible du MFA.

Maintenant tout le monde n'a pas les moyens de se payer un abonnement MS365 et ce n'est pas très open source. Ce qui me gène réellement c'est que le backend d'authentification soit dépendant d'un abonnement (quid des utilisateurs le jour où l'on souhaite résilier MS365 pour des raisons financières et/ou stratégiques). Dans un prochain article, je mettrai donc en place un IdP (Identity Provider / Fournisseur d'Identité) open source permettant d'utiliser différents backends d'authentification et d'autres applications en ligne toujours en mode SSO.

Source : https://medium.com/@ntrussell/enable-nextcloud-sso-authentication-through-microsoft-azure-active-directory-saml-abe37d735cd

Article précédent Article suivant