Aller au contenu principal

Mise en place du SSO Kerberos

Ce document a pour but de décrire la mise en place de la reconnaissance par BlueMind de l'authentification Kerberos dans une infrastructure Windows.

Fonctionnement de l'authentification Kerberos

L'authentification Kerberos permet aux utilisateurs ayant un compte Windows déjà associé à leur compte BlueMind (via un import AD) de s'authentifier automatiquement, sans passer par un écran de login (SSO).

Pour cela :

  • l'utilisateur doit être dans une session Windows sur le domaine avec lequel le SSO Kerberos a été activé

    Installation multidomaines
    En cas de Messagerie multi-domaines, chaque domaine peut avoir sa propre configuration Kerberos.
    Si Kerberos est configuré sur plusieurs domaines, chaque domaine doit avoir sa propre URL
    Si Kerberos est configuré sur 1 seul domaine, utiliser l'URL globale

  • l'utilisateur doit utiliser un navigateur où SPNEGO est actif pour l’URL globale de BlueMind

Configuration de Kerberos

données de configuration

Dans la suite de cette documentation, nous considérons les éléments suivants :

  • URL externe de BlueMind (URL globale) : bluemind.domain.tld

  • Serveur Active Directory (adresse IP ou nom du serveur AD du domaine Windows) : ad.domain.tld

  • Domaine Active Directory (ou realm, correspond au domaine Windows en majuscule) : DOMAIN.TLD

    ⚠️ Ajouter le domaine AD aux alias du domaine BM s'il est différent du nom du domaine BM.

url globale

L'ensemble de la configuration de Kerberos se fait avec l'URL globale. Ne pas utiliser l'URL du domaine concerné, ni pour la génération du fichier keytab (et des setspn), ni pour la configuration des postes clients, même lorsque Kerberos est configuré sur plusieurs domaines.

En conséquence, si l'URL globale est modifiée (voir Les URLs externes), tous les keytab (et le setspn) doivent-être ré-générés, ainsi que tous les clients reconfigurés avec la nouvelle URL globale.

Génération du fichier Keytab

La génération du fichier keytab se fait en 2 étapes.

Ouvrir une console cmd.exe puis :

  1. Créer un utilisateur dédié à l'authentification Kerberos dans l'ActiveDirectory

    1. Activer l'option "This account supports Kerberos AES 256 bit encryption" dans l'onglet "Compte" :
    2. Ajouter le rôle à l'utilisateur en lançant la commande suivante :
      où le nom de l'utilisateur = bmkrb ; mot de passe = krbpwd
    setspn -A HTTP/bluemind.domain.tld bmkrb

    La commande devrait retourner un résultat équivalent aux lignes suivantes :

    Registering ServicePrincipalNames for CN=bmkrb,CN=Users,DC=domain,DC=tld
    HTTP/bluemind.domain.tld
    Updated object
  2. Créer le fichier keytab en lançant la commande suivante :

    ktpass /out C:\bluemind.keytab
    /mapuser bmkrb@DOMAIN.TLD
    /princ HTTP/bluemind.domain.tld@DOMAIN.TLD
    /pass krbpwd
    /kvno 0
    # paramètre optionnel, voir la remarque "Key Version Number" ci-après
    /ptype KRB5_NT_PRINCIPAL

    Le résultat devrait ressembler aux lignes suivantes :

    Targeting domain controller: AD.domain.tld
    Using legacy password setting method
    Successfully mapped HTTP/bluemind.domain.tld to bmkrb.
    Output keytab to C:\bluemind.keytab
Key Version Number

Le paramètre Kvno (Key Version Number) permet de gérer plusieurs clés pour un utilisateur.

La valeur de la commande ktpass (/kvno 0) indiquée dans les exemples ci-dessus est une valeur générique, fonctionnant dans la plupart des cas. Cette valeur peut cependant être bloquante en fonction des utilisateurs et d'éventuelles clés déjà présentes ou utilisées. Seul l'administrateur de l'AD connait précisément ces informations.

Il est possible de ne pas préciser ce paramètre. Dans ce cas, une nouvelle clé sera créée automatiquement avec le numéro de version suivant celui déjà présent dans l'AD pour ce compte.

Pour plus d'informations sur le paramètre Kvno, consulter la documentation Microsoft sur la commande ktpass: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass

Activation dans la console d'administration

  1. Dans la console d'administration, se rendre dans Gestion du système > Domaines supervisés > choisir le domaine > onglet Sécurité.
  2. Sélectionner le mode d'authentification Kerberos et renseigner le formulaire associé :
    • Domaine Active Directory
    • Serveur Active Directory
    • Fichier keytab de Active Directory : cocher la case et choisir le fichier précédemment créé
  3. Cliquer sur "Enregistrer" pour sauvegarder les modifications.

Configuration client

Le navigateur client peut considérer que le domaine BlueMind n'est pas de confiance. Il faut alors ajouter l'URL d'accès à BlueMind comme site de confiance dans le navigateur.

Firefox

Configuration manuelle

La configuration du site de confiance se fait dans la configuration des paramètres du navigateur :

  • dans la barre d'adresse du navigateur, taper :

    about:config
  • Valider l'avertissement en cliquant sur « Accepter le risque et poursuivre »

  • Dans le champ de recherche, taper :

    trusted
  • Double-cliquer sur le paramètre network.negotiate-auth.trusted-uris ou cliquer sur le crayon en fin de ligne pour l'éditer

  • Saisir l'adresse du domaine BlueMind (ici bluemind.domain.tld) et valider.

    💡 Le paramètre apparaît en gras : cela signifie qu'il s'agit d'un paramètre modifié, qu'il n'a plus sa valeur par défaut

  • Relancer Firefox pour que la modification soit prise en compte.

Configuration par GPO

Voici en exemple une manière de configurer les GPO pour Firefox :

  1. Ajouter les "politiques Windows" au serveur AD

    1. Récupérer les modèles au format ADMX ici : https://github.com/mozilla/policy-templates/releases

    2. Les mettre dans \Windows\PolicyDefinitions

      💡 Les fichiers .admx sont à la racine et les fichiers .adml dans les dossiers de langue correspondants

  2. Mettre en place la GPO spécifique à Kerberos

    1. Aller sous : Configuration ordinateur > Stratégies > Modèles d'administration > Mozilla > Firefox > Authentification

    2. Trouver et ouvrir le paramètre "SPNEGO"

    3. Appuyer sur "Activé"

    4. Dans le champ "Options" appuyer sur "Afficher" et entrer l'adresse de la ressource réseau souhaitée

      ℹ️ Si plusieurs adresses doivent être saisies, saisir une adresse par ligne

    5. Appuyer sur le bouton "OK" pour fermer les fenêtres avec les modifications appliquées


Pour plus d'informations pour la configuration par GPO, consulter les documentations suivantes :

Ainsi que la documentation Firefox :

Microsoft Edge

Configuration manuelle

Microsoft Edge se configure manuellement sur le poste de travail :

  • Lancer Regedit en tant qu'administrateur
  • Aller dans HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge et créer les clés de registre manquantes si besoin
  • Créer la valeur de type "Valeur chaine (REG_SZ)", avec le nom AuthServerAllowlist et la valeur bluemind.domain.tld
  • Redémarrer Edge pour que la modification soit prise en compte.

En cas de dysfonctionnement, s'assurer que la politique est bien prise en compte :

  • Démarrer Edge
  • Saisir edge://policy dans le champ de l'URL
  • Vérifier que la stratégie AuthServerAllowlist apparait dans la section "Microsoft Edge Policies", avec la valeur renseignée précédemment. Dans le cas contraire, cliquer sur Recharger les stratégies. Si elle n'apparait toujours pas, vérifier d'avoir bien modifié le registre selon la procédure décrite ci-dessus.

Pour plus d'informations sur les stratégies de Edge, consulter la documentation Microsoft :

Configuration par GPO

Voici en exemple une manière de configurer les GPO pour Edge :

  1. Ajouter les "politiques Windows" au serveur AD
    1. Récupérer les modèles au format ADMX ici : https://www.microsoft.com/fr-fr/edge/business/download?cs=4134690573&form=MA13FJ

    2. Les mettre dans \Windows\PolicyDefinitions

      💡 Les fichiers .admx sont à la racine et les fichiers .adml dans les dossiers de langue correspondants

  2. Mettre en place la GPO spécifique à Kerberos
    1. Aller sous : Configuration ordinateur > Modèles d'administration > Microsoft Edge > Authentification HTTP

    2. Trouver et ouvrir le paramètre "Configurer la liste des serveurs d'authentification autorisés"

    3. Appuyer sur "Activé"

    4. Dans le champ "Options" entrer l'adresse de la ressource réseau souhaitée

      ℹ️ Si plusieurs adresses doivent être saisies, les séparer par des virgules

    5. Appuyer sur le bouton "OK" pour fermer les fenêtres avec les modifications appliquées


Pour plus d'informations pour la configuration par GPO, consulter les documentations suivantes :

Chrome

Configuration manuelle

Google Chrome se configure manuellement sur le poste de travail :

  • Lancer Regedit en tant qu'administrateur
  • Aller dans HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome et créer les clés manquantes si besoin
  • Créer la valeur de type "Valeur chaine (REG_SZ)", avec le nom AuthServerAllowlist et la valeur bluemind.domain.tld
  • Redémarrer Chrome pour que la modification soit prise en compte.

En cas de dysfonctionnement, s'assurer que la politique est bien prise en compte :

  • Démarrer Chrome
  • Saisir chrome://policy dans le champ de l'URL
  • Vérifier que la stratégie AuthServerAllowlist apparait dans la section "Chrome Policies", avec la valeur renseignée précédemment. Dans le cas contraire, cliquer sur Recharger les stratégies. Si elle n'apparait toujours pas, vérifier d'avoir bien modifié le registre selon la procédure décrite ci-dessus.

Pour plus d'informations sur les stratégies de Chrome, consulter la documentation Google :

Configuration par GPO

Voici en exemple une manière de configurer les GPO pour Chrome :

  1. Ajouter les "politiques Windows" au serveur AD
    1. Récupérer les modèles au format ADMX ici : https://support.google.com/chrome/a/answer/187202?hl=fr#zippy=%2Cwindows

    2. Les mettre dans \Windows\PolicyDefinitions

      💡 Les fichiers .admx sont à la racine et les fichiers .adml dans les dossiers de langue correspondants

  2. Mettre en place la GPO spéficique à Kerberos
    1. Aller sous : Configuration ordinateur > Modèles d'administration > Google > Google Chrome > Authentification HTTP

    2. Trouver et ouvrir le paramètre "Liste d'autorisation des serveurs d'authentification"

    3. Appuyer sur "Activé"

    4. Dans le champ "Options" entrer l'adresse de la ressource réseau souhaitée

      ℹ️ Si plusieurs adresses doivent être saisies, les séparer par des virgules

    5. Appuyer sur le bouton "OK" pour fermer les fenêtres avec les modifications appliquées


Pour plus d'informations pour la configuration par GPO, consulter les documentations suivantes :

Pour aller plus loin

Consultez la documentation BlueMind en relation

Consultez les pages suivantes