<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Adfs on slash-root.fr</title><link>https://beta.slash-root.fr/tags/adfs/</link><description>Recent content in Adfs on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Fri, 01 Jul 2022 12:08:48 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/tags/adfs/index.xml" rel="self" type="application/rss+xml"/><item><title>Nextcloud : Intégration d’une authentification SSO avec AD FS</title><link>https://beta.slash-root.fr/nextcloud-integration-dune-authentification-sso-avec-ad-fs/</link><pubDate>Fri, 08 Jul 2022 12:00:33 +0200</pubDate><guid>https://beta.slash-root.fr/nextcloud-integration-dune-authentification-sso-avec-ad-fs/</guid><description>&lt;img src="https://beta.slash-root.fr/nextcloud-integration-dune-authentification-sso-avec-ad-fs/cover.png" alt="Featured image of post Nextcloud : Intégration d’une authentification SSO avec AD FS" /&gt;&lt;p&gt;Cet article fait office de PoC (Proof of Concept) sur la mise en place d'une authentification SSO (Single-Sign-On) à travers le service ADFS (Active Directory Federation Services) de Microsoft et l'application Open Source Nextcloud.&lt;/p&gt;
&lt;p&gt;Cela va permettre aux utilisateurs de la plateforme Nextcloud de s'authentifier avec leur compte Active Directory en utilisant le protocole SAML dans des contextes réseaux totalement différents.&lt;/p&gt;
&lt;h2 id="environnement"&gt;&lt;a href="#environnement" class="header-anchor"&gt;&lt;/a&gt;Environnement
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Environnements déjà déployés :
&lt;ul&gt;
&lt;li&gt;Nextcloud v24.0.2&lt;/li&gt;
&lt;li&gt;Contrôleur de domaine Windows Serveur 2019&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Informations :
&lt;ul&gt;
&lt;li&gt;Domaine AD : aukfood.lan&lt;/li&gt;
&lt;li&gt;Nom serveur AD : adfs-dev&lt;/li&gt;
&lt;li&gt;Domaine publique utilisé : example.com (remplace les parties floutées dans les captures d'écrans)&lt;/li&gt;
&lt;li&gt;URL Nextcloud : &lt;a href="https://nc-dev.example.com"&gt;https://nc-dev.example.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enregistrement DNS pour l'ADFS : adfs2-dev.example.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="génération-du-certificat-lets-encrypt"&gt;&lt;a href="#g%c3%a9n%c3%a9ration-du-certificat-lets-encrypt" class="header-anchor"&gt;&lt;/a&gt;Génération du certificat Let&amp;rsquo;s Encrypt
&lt;/h2&gt;&lt;p&gt;A effectuer sur le serveur Windows (Tous les services seront déployés sur le contrôleur de domaine) :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Installation de IIS en Powershell :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Install-WindowsFeature -name Web-Server -IncludeManagementTools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Faire un enregistrement de type A dans une zone DNS publique pour le serveur IIS :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;adfs2-dev IN A xxx.xxx.xxx.xxx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Dans ce PoC, le domaine publique utilisé sera &lt;em&gt;example.com&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Créer la racine du site web pour résoudre le challenge :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir c:&lt;span style="color:#ae81ff"&gt;\i&lt;/span&gt;netpub&lt;span style="color:#ae81ff"&gt;\a&lt;/span&gt;dfs2-dev.example.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Créer un fichier &lt;code&gt;index.html&lt;/code&gt; dans la racine du site web :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;notepad c:&lt;span style="color:#ae81ff"&gt;\i&lt;/span&gt;netpub&lt;span style="color:#ae81ff"&gt;\a&lt;/span&gt;dfs2-dev.example.com&lt;span style="color:#ae81ff"&gt;\i&lt;/span&gt;ndex.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Insérer le contenu suivant puis enregistrer :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hello world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ouvrir la console de &lt;code&gt;Gestionnaire des services Internet (IIS)&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supprimer le site web par défaut.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ajouter un nouveau site web :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="website_iis.png" alt="image-20220629173936647" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Télécharger le client ACME pour Let's Encrypt ici : &lt;a href="https://www.win-acme.com/"&gt;https://www.win-acme.com/&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A l'heure actuelle, la dernière version : &lt;a href="https://github.com/win-acme/win-acme/releases/download/v2.1.22.1267/win-acme.v2.1.22.1267.x64.pluggable.zip"&gt;https://github.com/win-acme/win-acme/releases/download/v2.1.22.1267/win-acme.v2.1.22.1267.x64.pluggable.zip&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Décompresser l'archive et déplacer le fichier &lt;code&gt;Web_Config.xml&lt;/code&gt; à la racine du site web.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Redémarrer le site web.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lancer une ligne de commandes et se positionner dans le répertoire préalablement extrait.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exécuter &lt;code&gt;wacs.exe&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs.png" alt="image-20220629172217587" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Créer un nouveau certificat (Choix &lt;strong&gt;N&lt;/strong&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner le site ajouté au préalable dans IIS :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs-N.png" alt="image-20220629174215379" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Peu importe si le certificat est de type wildcard ou non.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le certificat est généré avec une tâche planifiée qui va renouveller le certificat automatiquement :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs-C.png" alt="image-20220629174528336" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Une liaison &lt;strong&gt;https&lt;/strong&gt; (vhost) a été automatiquement générée pour le site web :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs-vhost.png" alt="image-20220629175250793" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ce certificat est celui qui sera exploité par le service &lt;code&gt;AD FS&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exportation-du-certificat-au-format-pfx"&gt;&lt;a href="#exportation-du-certificat-au-format-pfx" class="header-anchor"&gt;&lt;/a&gt;Exportation du certificat au format pfx
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Re-lancer l'outil &lt;code&gt;wacs.exe&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Faire le choix &lt;strong&gt;A&lt;/strong&gt; (Manage renewals) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs-A.png" alt="image-20220629182842875" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Afficher les détails avec &lt;strong&gt;D&lt;/strong&gt;, puis noter le &lt;code&gt;.pfx password&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="wacs-D.png" alt="image-20220629183139844" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ouvrir le dossier des certificats Let's Encrypt :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;explorer C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates\
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner le certificat &lt;code&gt;.pfx&lt;/code&gt; correspondant puis démarrer l'assistant d'importation du certificat au niveau de l'ordinateur local (Pour rappel : c'est le DC) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="pfx-export.png" alt="image-20220629184339453" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Saisir le mot de passe de la clé privée (&lt;code&gt;.pfx password&lt;/code&gt; noté au préalable) et cocher &lt;code&gt;Marquer cette clé comme exportable&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="pfx-password.png" alt="image-20220630082547704" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner automatiquement le magasin de certificats.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Terminer l'assistant d'importation du certificat.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ouvrir la gestion des certificats de l'ordinateur local :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certlm.msc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans &amp;quot;Personnel\Certificats&amp;quot; (1), sélectionner le certificat préalablement importé (2). Dans &amp;quot;Toutes les tâches&amp;quot; (3), sélectionner &amp;quot;Exporter&amp;quot; (4) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="cert-export.png" alt="image-20220630083328159" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Il est maintenant possible d'exporter la clé privée du certificat :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="privkey-export.png" alt="image-20220630083457141" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exporter toutes les propriétés étendues :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="export-all.png" alt="image-20220630083627092" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Saisir un mot de passe pour protéger la clé privée :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="protect-privkey.png" alt="image-20220630083813883" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spécifier le nom du fichier à exporter au format &lt;code&gt;pfx&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Terminer l'assistant d'exportation du certificat.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation-ad-fs"&gt;&lt;a href="#installation-ad-fs" class="header-anchor"&gt;&lt;/a&gt;Installation AD FS
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Installer le service &lt;code&gt;ADFS-Federation&lt;/code&gt; en Powershell :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Install-WindowsFeature -name ADFS-Federation -IncludeManagementTools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Créer la clé racine du service de distribution de clés en Powershell :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(&lt;span style="color:#ae81ff"&gt;-10&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La configuration du service se fera en mode graphique à travers le gestionnaire de serveur &lt;code&gt;servermanager.exe&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-config.png" alt="image-20220630114920640" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Créer le premier serveur de fédération dans une batterie de serveurs de fédération.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Importer le certificat préalablement exporté au format &lt;code&gt;.pfx&lt;/code&gt; (1). Puis, entrer un nom pour le service FS (2) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="cert-adfs.png" alt="image-20220630133612131" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spécifier un compte de service :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-service.png" alt="image-20220630134121333" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Une base de données SQL Server peut être exploitée. Dans ce PoC, une base de données interne Windows est utilisée.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Après examen des options, la configuration peut être lancée :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-install.png" alt="image-20220630134402869" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Redémarrer le serveur Windows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Activer la page de login de l'ADFS en Powershell :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Set-AdfsProperties -EnableIdpInitiatedSignonPage $true
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tester la connexion : &lt;a href="https://adfs2-dev.example.com/adfs/ls/IdpInitiatedSignon.aspx"&gt;https://adfs2-dev.example.com/adfs/ls/IdpInitiatedSignon.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="test-adfs.png" alt="image-20220630141116182" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="paramétrage-nextcloud"&gt;&lt;a href="#param%c3%a9trage-nextcloud" class="header-anchor"&gt;&lt;/a&gt;Paramétrage Nextcloud
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Se connecter en SSH sur le serveur Nextcloud et se positionner à la racine du projet web :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd /var/www/nc-dev.example.com/www/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Installer l'application &lt;code&gt;user_saml&lt;/code&gt; avec &lt;code&gt;occ&lt;/code&gt; (A adapter selon le propriétaire du projet web) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo -u nextcloud php8.0 occ app:install user_saml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# user_saml 5.0.2 installed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# user_saml enabled&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Se connecter à l'interface web du Nextcloud en &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Se rendre dans &amp;quot;Paramètres&amp;quot; (1) / &amp;quot;Authentification SSO &amp;amp; SAML&amp;quot; (2). Puis &amp;quot;Utiliser l'authentification SAML intégrée&amp;quot; (3) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-samlon.png" alt="image-20220630140157898" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans la partie &amp;quot;Général&amp;quot;, entrer l'&lt;strong&gt;Attribut pour relier l'UID&lt;/strong&gt; :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;C'est l'UPN du compte de l'utilisateur dans l'AD qui fera office de nom d'utilisateur au sein de l'instance Nextcloud.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-upn.png" alt="image-20220630140651305" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configurer les options IdP :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identifiant de l'entité IdP&lt;/strong&gt; : &lt;a href="http://adfs2-dev.example.com/adfs/services/trust"&gt;http://adfs2-dev.example.com/adfs/services/trust&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;URL cible du fournisseur d'identités à qui le fournisseur de service enverra la requête d'authentification&lt;/strong&gt; : &lt;a href="https://adfs2-dev.example.com/adfs/ls"&gt;https://adfs2-dev.example.com/adfs/ls&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-optionsidp.png" alt="image-20220630141706164" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cliquer sur &amp;quot;Hide optional Identity Provider settings&amp;quot; pour accéder au champ &lt;strong&gt;Certificat public X.509 de l'IdP&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sur le serveur Windows, ouvrir la console de gestion de l'ADFS :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;windir%\ADFS\Microsoft.IdentityServer.msc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans &amp;quot;Service&amp;quot; / &amp;quot;Certificats&amp;quot; (1), Afficher le certificat (2) utilisé pour la signature de jetons :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-certpub.png" alt="image-20220630142847703" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans l'onglet &amp;quot;Détails&amp;quot;, copier dans un fichier :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="cert-copier.png" alt="image-20220630143034704" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exporter au format : *&lt;em&gt;X.509 encodé en base 64 (&lt;/em&gt;.cer)**&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spécifier un nom de fichier pour l'export.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copier le contenu de ce fichier exporté au format &lt;code&gt;.cer&lt;/code&gt; et le coller dans le champ &lt;strong&gt;Certificat public X.509 de l'IdP&lt;/strong&gt; dans Nextcloud :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-certpub.png" alt="image-20220630143523748" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mapper les attributs suivants au minimum :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Attribut pour relier le nom d'utilisateur&lt;/strong&gt; : &lt;a href="http://schemas.microsoft.com/identity/claims/displayname"&gt;http://schemas.microsoft.com/identity/claims/displayname&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attribut pour relier l'adresse mail&lt;/strong&gt; : &lt;a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-map.png" alt="image-20220630143833948" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Télécharger le fichier &lt;code&gt;metadata.xml&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-metadata.png" alt="image-20220630144006856" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pour avoir la possibilité de garder l'authentification avec la base utilisateur interne de Nextcloud, cocher &lt;strong&gt;Autoriser l'utilisation de plusieurs systèmes d'authentification&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-manyauth.png" alt="image-20220630144234576" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bien vérifier l'enregistrement du paramétrage en quittant le menu &amp;quot;Authentification SSO &amp;amp; SAML&amp;quot; et en y revenant (Surtout sur le paramétrage du point précédent).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="paramétrage-ad-fs"&gt;&lt;a href="#param%c3%a9trage-ad-fs" class="header-anchor"&gt;&lt;/a&gt;Paramétrage AD FS
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sur le serveur Windows, ouvrir la console de gestion de l'AD FS :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;windir%\ADFS\Microsoft.IdentityServer.msc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ajouter une approbation de partie de confiance :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-trusted.png" alt="image-20220630151040792" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prendre en charge les revendications.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Importer les données concernant la partie de confiance à partir du fichier &lt;code&gt;metadata.xml&lt;/code&gt; téléchargé préalablement :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-metadata.png" alt="image-20220630151343201" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Saisir un nom pour cette approbation et éventuellement des notes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner une stratégie de contrôle d'accès. Dans ce PoC, tout le monde sera autorisé :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-policy.png" alt="image-20220630151559318" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La partie de confiance a été configurée à l'aide du fichier &lt;code&gt;metadata.xml&lt;/code&gt; fourni.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Editer la stratégie d'émission de revendication :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-revendication.png" alt="image-20220630151802258" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2 règles de revendication de transformations sont à ajouter au minimum :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;userPrincipalName&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le modèle de régle de revendication à suivre est : &lt;strong&gt;Envoyer les attributs LDAP en tant que revendications&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Règle &lt;strong&gt;userPrincipalName&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-upn.png" alt="image-20220630152456345" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Règle &lt;strong&gt;Email&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-email.png" alt="image-20220630152543102" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Appliquer les 2 règles ajoutées.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="vérification-de-lauthentification"&gt;&lt;a href="#v%c3%a9rification-de-lauthentification" class="header-anchor"&gt;&lt;/a&gt;Vérification de l&amp;rsquo;authentification
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Se connecter à Nextcloud, et choisir de s'authentifier au travers une &lt;strong&gt;Connection SSO &amp;amp; SAML&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="next-adfs.png" alt="image-20220630152933665" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Utiliser un compte de l'Active Directory autoriser à se connecter à travers l'AD FS :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-test.png" alt="image-20220630153048587" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Congratulations !&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="adfs-next.png" alt="image-20220630153150780" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ressources-en-vrac"&gt;&lt;a href="#ressources-en-vrac" class="header-anchor"&gt;&lt;/a&gt;Ressources en vrac
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://blog.kveer.fr/login-nextcloud-saml-adfs/"&gt;https://blog.kveer.fr/login-nextcloud-saml-adfs/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.virtualease.fr/nextcloud-authentication-active-directory-sso-via-adfs-saml/"&gt;https://www.virtualease.fr/nextcloud-authentication-active-directory-sso-via-adfs-saml/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://os-zenia.blogspot.com/2021/01/nextcloud-sso-adfs.html"&gt;http://os-zenia.blogspot.com/2021/01/nextcloud-sso-adfs.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rephlex.de/blog/2018/04/05/how-to-connect-nextcloud-to-active-directory-using-ad-fs-without-losing-your-mind/"&gt;https://rephlex.de/blog/2018/04/05/how-to-connect-nextcloud-to-active-directory-using-ad-fs-without-losing-your-mind/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.myworkdrive.com/fr/support/adfs-single-sign-sso-integration-guide/"&gt;https://www.myworkdrive.com/fr/support/adfs-single-sign-sso-integration-guide/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.infotechram.com/wp-content/uploads/2020/07/Installing-Active-Directory-Federation-Services.pdf"&gt;https://www.infotechram.com/wp-content/uploads/2020/07/Installing-Active-Directory-Federation-Services.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.alitajran.com/export-lets-encrypt-certificate-in-windows-server/"&gt;https://www.alitajran.com/export-lets-encrypt-certificate-in-windows-server/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.rcfed.com/SAMLWSFed/CommonClaimtypelist"&gt;https://www.rcfed.com/SAMLWSFed/CommonClaimtypelist&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.microsoft.com/fr-fr/dotnet/api/system.security.claims.claimtypes?view=net-6.0"&gt;https://docs.microsoft.com/fr-fr/dotnet/api/system.security.claims.claimtypes?view=net-6.0&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.microsoft.com/fr-fr/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon"&gt;https://docs.microsoft.com/fr-fr/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://help.mulesoft.com/s/article/Configuring-ADFS-SLO-endpoint"&gt;https://help.mulesoft.com/s/article/Configuring-ADFS-SLO-endpoint&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://pitstop.manageengine.com/portal/en/kb/articles/saml-auto-login-with-adfs"&gt;https://pitstop.manageengine.com/portal/en/kb/articles/saml-auto-login-with-adfs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>