Résultats de recherche :

×


"Merci pour votre réponse. Nous vous répondrons bientôt."

"Quelque chose s'est mal passé. Veuillez soumettre à nouveau votre requête."

Vue d’ensemble


Protocole Kerberos :

Kerberos est un protocole d'authentification basé sur la cryptographie qui protège l’accès aux applications. Ce protocole est conçu pour fournir une authentification sécurisée sur un réseau non sécurisé. L'idée clé de Kerberos est d'authentifier les utilisateurs tout en empêchant l'envoi de mots de passe sur Internet.


icône miniorange

Authentification unique Kerberos/NTLM (SSO)

Par miniOrange

En savoir plus

Termes Kerberos :

Kerberos : Kerberos est un protocole d'authentification qui prend en charge le concept de Single Sign-On (SSO). Dans le cas de HTTP, la prise en charge de Kerberos est généralement assurée en utilisant le terme mécanisme d'authentification « SPNEGO ».

Royaume de Kerberos : Un domaine administratif pour l'authentification est désigné par le terme domaine. Son objectif est de définir les restrictions sur le moment où un serveur d'authentification peut authentifier un utilisateur, un hôte ou un service. Cela n'implique pas qu'un utilisateur et un service doivent être membres du même domaine pour que l'authentification ait lieu : si les deux objets sont connectés via une connexion de confiance bien qu'ils appartiennent à des domaines différents, l'authentification peut toujours avoir lieu.

Principal: Dans un système Kerberos, un principal Kerberos représente une identité distincte à laquelle Kerberos peut émettre des tickets pour accéder aux services compatibles Kerberos. Le séparateur "/" est utilisé pour séparer les différents composants qui composent les noms principaux. Le caractère "@" peut être utilisé pour identifier un domaine comme élément final du nom. Si aucun domaine n'est spécifié, il est présumé que le principal appartient au domaine par défaut défini dans le fichier krb5.conf.

Clients/Utilisateurs : un processus qui accède à un service au nom d'un utilisateur. Il peut y avoir plusieurs clients ou utilisateurs dans un domaine.

Service clients : Quelque chose auquel l'utilisateur souhaite accéder.

SSO : L'authentification unique est une procédure qui permet à un utilisateur de se connecter une seule fois et d'accéder à de nombreux services après avoir terminé l'authentification de l'utilisateur. Après s'être connecté à un service principal, cela implique une authentification dans chaque service auquel l'utilisateur a accordé une autorisation. Le SSO présente un certain nombre d'avantages, l'un d'entre eux étant d'éviter le processus fastidieux de validation répétée de l'identité à l'aide de mots de passe ou d'autres systèmes d'authentification.

GSSAPI : Les programmes peuvent accéder aux services de sécurité via l'interface de programme d'application générique du service de sécurité (GSSAPI), qui est une interface de programmation d'application (API). Une norme de l'IETF est GSSAPI. Il n'offre aucune sécurité en soi. Au lieu de cela, les implémentations GSSAPI sont proposées par des fournisseurs de services de sécurité. L'échange de messages opaques (jetons), qui dissimulent les détails de mise en œuvre à l'application de niveau supérieur, est la caractéristique distinctive des applications GSSAPI.

SPNÉGO : Le logiciel client-serveur utilise le mécanisme de négociation GSSAPI simple et protégé, fréquemment appelé « spen-go », pour négocier la sélection de la technologie de sécurité. Lorsqu'une application client doit se connecter à un serveur distant mais qu'aucune des extrémités ne sait avec certitude quels protocoles d'authentification l'autre prend en charge, SPNEGO est utilisé. Le pseudo-mécanisme utilise un protocole pour identifier les mécanismes GSSAPI communs disponibles, en choisit un, puis attribue toutes les actions de sécurité ultérieures à ce mécanisme choisi.

CDD : Un centre de distribution de clés est un service réseau qui fournit des tickets et des clés de sessions temporaires ; ou une instance de ce service ou de l'hôte sur lequel il s'exécute. Le KDC traite à la fois les demandes initiales de tickets et les demandes d’octroi de tickets. La partie initiale du ticket est parfois appelée serveur d'authentification (ou service). La partie du ticket d'octroi de tickets est parfois appelée serveur (ou service) d'octroi de tickets.


Protocole d'authentification NTLM

L'accès d'un client à une ressource sur un domaine Active Directory peut être authentifié à l'aide du protocole d'authentification défi-réponse connu sous le nom de Windows NT LAN Manager (NTLM). Lorsqu'un client demande l'accès à un service lié au domaine, le service envoie un défi au client, lui demandant d'utiliser son jeton d'authentification pour effectuer une opération mathématique, puis de fournir le résultat au service. Le résultat peut être vérifié par le service ou vérifié par le contrôleur de domaine (DC). Le service accorde l'accès au client si le contrôleur de domaine ou le service vérifie que la réponse du client est exacte.
Parce qu'il permet à l'utilisateur de saisir le facteur d'authentification sous-jacent une seule fois, lors de la connexion, NTLM est une sorte d'authentification unique (SSO).


Flux d'authentification unique (SSO) du protocole d'authentification NTLM
  • La NEGOTIATE_MESSAGE définit un message NTLM Négocier envoyé du client au serveur. Ce message permet au client de spécifier ses options NTLM prises en charge au serveur.
  • La DÉFI_MESSAGE définit un message de défi NTLM qui est envoyé du serveur au client et il est utilisé par le serveur pour défier le client afin de prouver son identité.
  • La AUTHENTICATE_MESSAGE définit un message d'authentification NTLM qui est envoyé du client au serveur après le traitement du CHALLENGE_MESSAGE par le client.

L'authentification Windows utilise le protocole d'authentification Kerberos ou le protocole d'authentification NTLM, en fonction des configurations client et serveur.

Protocole d'authentification Kerberos


Un protocole de sécurité de réseau informatique appelé Kerberos authentifie les demandes de service entre deux ou plusieurs hôtes approuvés sur un réseau non approuvé, tel qu'Internet.
  • Message A : Clé de session client/TGS chiffrée à l'aide de la clé secrète du client/utilisateur.
  • Message B : Ticket-Granting-Ticket crypté grâce à la clé secrète du TGS.
  • MessageC : Composé du TGT du message B et de l'ID du service demandé.
  • Message D : Authentificateur chiffré à l’aide de la clé de session Client/TGS.
  • Message E : Ticket client-serveur chiffré grâce à la clé secrète du service.
  • Message F : Clé de session client/serveur chiffrée avec la clé de session client/TGS.
  • Message G : Un nouvel authentificateur, qui inclut l'ID client, l'horodatage et est crypté à l'aide de la clé de session client/serveur.
  • Message H : L'horodatage trouvé dans l'authentificateur du client chiffré à l'aide de la clé de session client/serveur.

Kerberos SSO sur Ubuntu/Debian


Pré-requis :

  1. Un compte de service/compte utilisateur dans Active Directory.
  2. Le mot de passe du compte doit avoir un mot de passe défini sur Pas expiré.

icône miniorange

Authentification unique Kerberos/NTLM (SSO)

Par miniOrange

En savoir plus

Étape 1 : Créez un fichier Keytab sur le contrôleur de domaine AD.

  • Sur le contrôleur de domaine AD, ouvrez l'invite de commande en mode administrateur et exécutez la commande suivante pour créer le fichier Keytab.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    Remarque: Ensure EXEMPLE.COM doit être en majuscule. Si l'utilisateur avec SPN existe déjà, utilisez-le au lieu d'en créer un nouveau. Le principe Kerberos est sensible à la casse. Veuillez vérifier les différences d'écriture en majuscules/minuscules avant d'exécuter la commande keytab.

  • Voici les composants de la commande.
  • Nom d'hôte du serveur : Il s'agit du nom d'hôte du site hébergé sur le Serveur.
    EXEMPLE.COM : Il s'agit du nom de domaine Active Directory.
    Pseudo Il s'agit d'un compte de service dans Active Directory.
    Mot de passe: Il s'agit du mot de passe du compte de service utilisé ci-dessus.
    Chemin: Chemin vers un emplacement local qui stockera le fichier keytab. (C:\Temp\spn.keytab)

Remarque: La commande ci-dessus crée un fichier keytab. Il doit être placé sur le serveur client où est hébergé votre site WordPress. L'utilisateur exécutant Apache doit avoir un accès complet à ce fichier. L'utilisateur doit avoir l'autorisation d'accéder au fichier keytab.


  • Ouvrez Utilisateurs et ordinateurs Active Directory et dans le menu supérieur, sélectionnez Affichage >> Fonctionnalités avancées.
  • Ouvrez le compte de service et accédez à l'onglet de l'éditeur d'attributs, accédez à servicePrincipalName pour vérifier l'entrée SPN.
  • Accédez à l'onglet Délégation.
  • Sélectionnez Faire confiance à cet utilisateur pour la délégation à n’importe quel service (Kerberos uniquement).
  • Délégation SSO du service Kerberos pour Windows Active Directory
  • Cliquez sur Appliquer.

  • Copiez le Onglet de touches fichier du contrôleur de domaine AD vers le serveur Web hébergé sur Apache.
  • Accordez l'autorisation au fichier de clés Kerberos :
  • chmod 644 etc/apache2/spn.keytab

Étape 2 : Installez les bibliothèques client Kerberos sur le serveur Web.

  • Utilisez la commande suivante sur votre terminal pour installer les bibliothèques client Kerberos.
  • sudo apt-get install krb5-user

Étape 3 : Installez les modules pour Apache.

Remarque: Dans les versions les plus récentes d'Ubuntu/Debian, le mod_auth_kerb a été déprécié et remplacé par le mod_auth_gssapi.

1 : Installez le module mod_auth_kerb pour Apache.
  • Utilisez la commande suivante pour installer le module auth_kerb pour Apache sur les systèmes basés sur Debian :
  • sudo apt-get install libapache2-mod-auth-kerb
  • Une fois le module auth_kerb installé, il doit être activé via la commande suivante.
  • a2enmod auth_kerb
  • Après avoir activé, redémarrez Apache pour prendre effet.

Or


2 : Installez le module mod-auth-gssapi pour Apache.
  • Utilisez la commande suivante pour installer le module libapache2-mod-auth-gssapi pour Apache sur les systèmes basés sur Debian :
  • sudo apt-get -y install libapache2-mod-auth-gssapi

Étape 4 : Configurez le domaine Active Directory dans le fichier de configuration Kerberos.

  • Ouvrez et modifiez le krb5.conf fichier.
    Le chemin d'accès au fichier krb5.conf pour Linux est C:/etc/krb5.conf et pour d'autres Le système basé sur UNIX est c:/etc/krb5/krb5.conf
  • Ajoutez l'extrait de configuration suivant au krb5.conf déposer sous la section mentionnée :
  • [libdefaults]
    default_realm = EXAMPLE.COM
    # ...
    # ...
    [realms]
    EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    Remarque: Remplacez le CONTRÔLEUR DE DOMAINE AD IP/DNS avec votre adresse IP/DNS. Assurer EXEMPLE.COM doit être en majuscule.
    Remplacez le EXEMPLE.COM avec le nom de domaine Active Directory.
    Et assurez-vous que le port 88 du contrôleur de domaine AD est accessible depuis ce serveur.

  • Enregistrez le fichier.

Étape 5 : Configurer Kerberos SSO pour le répertoire du site

  • Modifiez le fichier de configuration de l'hôte virtuel imposé qui est stocké sous Répertoire /etc/apache2/sites-enabled ou le fichier d'hôte virtuel par défaut nommé 000-default.conf

  • Remarque: Ajoutez la section suivante dans le répertoire en fonction du module Apache utilisé. Par exemple: "mod_auth_kerb" or "mod_auth_gssapi".

  1. Ajoutez la section suivante dans le répertoire du site pour mod_auth_kerb.
  2. <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  3. Ajoutez la section suivante dans le répertoire du site pour mod_auth_gssapi.
  4. <IfModule !mod_auth_gssapi.c>
        LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
    </IfModule>
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiAllowedMech krb5
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        BrowserMatch Windows gssapi-no-negotiate
        Require valid-user
    </Directory>

    Remarque: Ensure EXEMPLE.COM doit être en majuscule.
    Voici les composants de la configuration ci-dessus :

    EXEMPLE.COM : Il s'agit du domaine Active Directory tel que configuré dans krb5.conf.
    CHEMIN VERS KEYTAB : Chemin accessible vers le keytab sur ce serveur. (etc/spn.keytab)
  • Après cette configuration, Apache doit être redémarré pour que les modifications prennent effet.

Une fois que vous avez terminé de configurer les paramètres, cliquez ici pour configurer les navigateurs pour Kerberos SSO.

Pour tester votre configuration Kerberos/NTLM SSO, cliquer ici.

Pour résoudre toute erreur, veuillez cliquer ici.

Kerberos SSO sur RHEL/CentOS

Conditions préalables pour le compte de service :

  1. Le mot de passe du compte doit avoir un mot de passe défini sur Pas expiré.
  2. Le compte doit être approuvé pour la délégation.

Si vous n'avez pas de compte de service, créez un nouveau compte d'utilisateur (compte de service) dans Utilisateurs et ordinateurs Active Directory. Assurez-vous que cet objet ne dispose d’aucune entrée SPN (l’attribut servicePrincipalName doit être vide) allouée.


icône miniorange

Authentification unique Kerberos/NTLM (SSO)

Par miniOrange

En savoir plus

Étape 1 : Créez un fichier Keytab sur le contrôleur de domaine AD.

  • Sur le contrôleur de domaine AD, ouvrez l'invite de commande en mode administrateur et exécutez la commande suivante pour créer le fichier Keytab.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    REMARQUE: Ensure EXEMPLE.COM doit être en majuscule. Le principe Kerberos est sensible à la casse. Veuillez vérifier les différences d'écriture en majuscules/minuscules avant d'exécuter la commande keytab.

  • Voici les composants de la commande.
Nom d'hôte du serveur : Il s'agit du nom d'hôte du site hébergé sur le Serveur.
EXEMPLE.COM : Il s'agit du nom de domaine Active Directory.
Pseudo Il s'agit d'un compte de service dans Active Directory.
Mot de passe: Il s'agit du mot de passe du compte de service utilisé ci-dessus.
Chemin: Chemin vers un emplacement local qui stockera le fichier keytab. (C:\Temp\spn.keytab)

Remarque: La commande ci-dessus crée un fichier keytab. Il doit être placé sur le serveur client où est hébergé votre site WordPress. L'utilisateur exécutant Apache doit avoir un accès complet à ce fichier. L'utilisateur doit avoir l'autorisation d'accéder au fichier keytab.



  • Copiez le Onglet de touches fichier du contrôleur de domaine AD vers le serveur Web hébergé sur Apache.
  • Accordez l'autorisation au fichier de clés Kerberos :
  • chmod 644 etc/httpd/spn.keytab

Étape 2 : Installez les bibliothèques client Kerberos sur le serveur Web.

  • Utilisez la commande suivante sur votre terminal pour installer les bibliothèques client Kerberos.
  • yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session

    Remarque: Dans les versions les plus récentes de CentOS, le mod_auth_kerb a été déprécié et remplacé par le mod_auth_gssapi.


Étape 3 : Installez les modules pour Apache.

    1: Installez le module mod_auth_kerb pour Apache.
  • Utilisez la commande suivante pour installer le module auth_kerb pour Apache sur les systèmes basés sur Red Hat. (Pour les dernières versions de RHEL, utilisez le module mod-auth-gssapi)
  • yum install mod_auth_kerb

Or


    2: Installez le module mod-auth-gssapi pour Apache.
  • Utilisez la commande suivante pour installer le module libapache2-mod-auth-gssapi pour Apache sur les systèmes basés sur Debian :
  • sudo apt-get -y install libapache2-mod-auth-gssapi

Étape 4 : Configurez le domaine Active Directory dans le fichier de configuration Kerberos.

  • Ouvrez et modifiez le krb5.conf fichier.
    Le chemin d'accès au fichier krb5.conf pour RHEL est C:/etc/krb5.conf
  • Ajoutez l'extrait de configuration suivant au krb5.conf déposer sous la section mentionnée :
  • Accédez à la [libdefaults] section et ajoutez ce qui suit :
  • default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
  • Accédez à la [royaumes] section et ajoutez ce qui suit :
  • EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
  • Accédez à la [domaine_domaine] section et ajoutez ce qui suit :
  • .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    Remarque: Remplacez le CONTRÔLEUR DE DOMAINE AD IP/DNS avec votre adresse IP/DNS. Assurer EXEMPLE.COM doit être en majuscule.
    Remplacez le EXEMPLE.COM avec le nom de domaine Active Directory.
    Et assurez-vous que le port 88 du contrôleur de domaine AD est accessible depuis ce serveur.

  • Enregistrez le fichier.

Étape 5 : Configurer Kerberos SSO pour le répertoire du site

  • Modifier le fichier de configuration de l'hôte imposé /etc/httpd/conf/httpd.conf
  • Ajoutez la section suivante dans le répertoire du site pour mod_auth_kerb.
  • <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  • Ajoutez la section suivante dans le répertoire du site pour mod_auth_gssapi.
  • LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        Require valid-user
    </Directory>

    Voici les composants de la configuration ci-dessus :

    CHEMIN VERS KEYTAB Chemin accessible vers le keytab sur ce serveur. (etc/apache2/spn.keytab)
    "/espace réservé" Chemin d'accès à la racine du document
  • Après cette configuration, Apache doit être redémarré pour que les modifications prennent effet.

Une fois que vous avez terminé de configurer les paramètres, cliquez ici pour configurer les navigateurs pour Kerberos SSO.

Pour tester votre configuration Kerberos/NTLM SSO, cliquer ici.

Pour résoudre toute erreur, veuillez cliquer ici.

SSO avec authentification Windows sur le serveur IIS


  • Ouvrez l'invite de commande en mode Administrateur.
  • Exécutez la commande suivante pour ajouter le nom principal du service (SPN) pour le compte de service.
  • Remarque: Supposons que le site Web doive répondre à http://machinename et http://machinename.domain.com. Nous devons spécifier ces adresses dans l'attribut SPN du compte de service.

    Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

    Mise en situation : C:\Utilisateurs\Administrateur> setspn -S HTTP/nom_machine.domaine.com compte_service

    Remarque: "machinename.domain.com" est ici le nom de l'ordinateur. Assurez-vous que le problème peut être résolu sur le serveur Windows exécutant le service AD.


  • Vérifiez si cela a été correctement défini en exécutant la commande suivante :
  • setspn -l domain or service_account

    Mise en situation : C:\Utilisateurs\Administrateur> setspn -l compte_service ou C:\Utilisateurs\Administrateur> setspn -l nom de domaine

    Définir l'entrée du nom principal du service (SPN) pour l'authentification SSO Kerberos sur le serveur Windows IIS
  • Le résultat devrait lister http/nom de la machine.domaine.com

  • Ouvrez Utilisateurs et ordinateurs Active Directory et dans le menu supérieur, sélectionnez Voir >> Fonctionnalités avancées.
  • Ouvrez le compte de service et accédez au éditeur d'attributs , accédez à l'onglet servicePrincipalName pour vérifier l’entrée SPN.
  • Accédez à la Délégation languette.
  • Sélectionnez Faites confiance à cet utilisateur pour la délégation à n’importe quel service (Kerberos uniquement).
  • Délégation de service Kerberos pour l'authentification unique Kerberos pour les systèmes RHEL, CentOS, Ubuntu et Fedora
  • Cliquez Appliquer.
  • Ouvrez le Gestionnaire des services Internet et cliquez sur le site Web pour lequel vous souhaitez activer l'authentification Windows.
  • Double-cliquez sur Authentification.
  • Gestionnaire Windows IIS pour configurer les paramètres d'authentification Windows pour les sites afin d'activer Kerberos SSO
  • Dans la section Authentification, vous pouvez voir que seule l'authentification anonyme est activée par défaut. IIS essaie toujours d'effectuer une authentification anonyme, désactivez donc l'authentification anonyme et activez l'authentification Windows.
  • Activer l'authentification Windows à partir du gestionnaire Windows IIS pour Kerberos SSO sur l'application configurée
  • Faites un clic droit sur l'authentification Windows et cliquez sur les fournisseurs.
  • service d'information sur Internet Gestionnaire IIS Liste des fournisseurs d'authentification Windows
  • La fenêtre suivante apparaîtra. Assurez-vous que « Négocier » figure en haut de la liste des fournisseurs.
  • Le gestionnaire Windows IIS permet au fournisseur d'authentification Windows d'effectuer une authentification unique avec le protocole Kerberos.

    Remarque: Par défaut, deux fournisseurs sont disponibles, Négocier et NTLM. Négocier est un conteneur qui utilise Kerberos comme première méthode d'authentification, et si l'authentification échoue, NTLM est utilisé. Il est donc nécessaire que Négocier vienne en premier dans la liste des fournisseurs.


  • Cliquez sur Ok pour fermer la fenêtre.
  • Pour configurer le pool d'applications IIS pour le lancer à partir du compte SPN créé, cliquez sur les pools d'applications pour ouvrir la fenêtre Pools d'applications.
  • Faites un clic droit sur le domaine et dans la liste cliquez sur Paramètres avancés.
  • Paramètres avancés du site du pool d'applications du gestionnaire Windows Internet Information Service (IIS) pour activer Kerberos SSO
  • Dans la fenêtre Paramètres avancés sous Modèle de processus, cliquez sur Identité.
  • Configurer l'identité à partir des paramètres avancés du pool d'applications du gestionnaire Windows IIS pour activer Kerberos SSO
  • Dans l'identité du pool d'applications, sélectionnez Compte personnalisé et cliquez sur le bouton Définir pour définir l'identité.
  • Changez-le de ApplicationPoolIdentity en \ .
  • Mise en situation :domaine.com\service_account

    Kerberos SSO sous Windows configure un compte personnalisé à partir des paramètres d'identité du pool d'applications du gestionnaire IIS
  • Accédez à l'éditeur de configuration.
  • Accédez à l'éditeur de configuration du gestionnaire Windows IIS pour activer l'authentification Kerberos/NTLM sur le site Web.
  • Dans la liste déroulante, sélectionnez system.webServer > sécurité > authentification > windowsAuthentication.
  • Configurez useAppPoolCredentials pour configurer l'authentification Kerberos pour le serveur Windows IIS
  • Remplacez useAppPoolCredentials par True. et utilisez KernelMode sur False.
  • Remarque: Définir useAppPoolCredentials sur True signifie que nous autorisons IIS à utiliser le compte de domaine pour déchiffrer le ticket Kerberos des clients.

  • Cliquez Appliquer.
  • Redémarrez le serveur IIS.

  • Vous pouvez vérifier que l'authentification Kerberos est utilisée sur le site Web en surveillant le trafic HTTP à l'aide de Fiddler.
  • Lancez le violoniste et lancez le navigateur sur le site Web souhaité. Localisez la ligne d'accès au site Web dans le côté gauche de la fenêtre. Sélectionnez l'onglet Inspecter sur le côté droit de la fenêtre. Il est évident que Kerberos a été utilisé pour s'authentifier sur le site Web IIS à partir de la ligne « L'en-tête d'autorisation (négocier) semble contenir un ticket Kerberos ».

    Le ticket Kerberos est contenu dans l'en-tête d'autorisation pendant le processus Kerberos SSO

Une fois que vous avez terminé de configurer les paramètres, cliquez ici pour configurer les navigateurs pour Kerberos SSO.

Pour tester votre configuration Kerberos/NTLM SSO, cliquer ici.

Pour résoudre toute erreur, veuillez cliquer ici.

SSO avec Apache sur le serveur Windows Xampp


  • Ouvrez l'invite de commande en mode Administrateur.
  • Exécutez la commande suivante pour ajouter le nom principal du service (SPN) pour le compte de service.
  • Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

    Mise en situation : C:\Utilisateurs\Administrateur> setspn -S HTTP/nom_machine.domaine.com compte_service

    Remarque : "machinename.domain.com" est ici le nom de l'ordinateur. Assurez-vous que le problème peut être résolu sur le serveur Windows exécutant le service AD.

  • Vérifiez si cela a été correctement défini en exécutant la commande suivante :
  • setspn -l domain\service_account
  • Le résultat devrait lister http/nom de la machine.domaine.com
  • Ouvrez Utilisateurs et ordinateurs Active Directory et dans le menu supérieur, sélectionnez Voir >> Fonctionnalités avancées.
  • Ouvrez le compte de service et accédez au éditeur d'attributs , accédez à l'onglet servicePrincipalName pour vérifier l’entrée SPN.
  • Accédez à la Délégation languette.
  • Sélectionnez Faites confiance à cet utilisateur pour la délégation à n’importe quel service (Kerberos uniquement).
  • Kerberos pour l'authentification Windows sur le serveur IIS
  • Cliquez Appliquer.

  • Cliquez ici pour télécharger le module Apache.
  • Copiez le mod_authnz_sspi.so de Apache24 > modules dossier et placez-le dans le répertoire modules (C:\xampp\apache\modules).
  • Copiez le sspipkgs.exe fichier de Apache24 -> corbeille et placez-le dans le dossier bin de votre dossier Xampp apache (.....\xampp\apache\bin) sur votre serveur Web.
  • Ouvrez httpd.conf (.....\xampp\apache\conf) et placez la ligne de code ci-dessous dans la section LoadModule.
  • LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • Assurez-vous que les modules suivants ne sont pas commentés :
  • LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_core_module modules/mod_authz_core.so

  • Assurez-vous également d’activer l’extension LDAP.
  • Ouvrez le httpd.conf fichier à partir de (.....\xampp\apache\conf\httpd.conf).
    Accédez à et collez les lignes ci-dessous après #Require all Grants.
  • <Directory "...../xampp/htdocs">
    ......
    ......
    #Require all granted
    AllowOverride None Options None
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    Require valid-user
    </Directory>

  • Redémarrez votre serveur Apache.

Une fois que vous avez terminé de configurer les paramètres, cliquez ici pour configurer les navigateurs pour Kerberos SSO.

Pour tester votre configuration Kerberos/NTLM SSO, cliquer ici.

Pour résoudre toute erreur, veuillez cliquer ici.

Configurer les navigateurs pour Kerberos SSO


La configuration côté client permet au navigateur concerné d'utiliser SPNEGO pour négocier l'authentification Kerberos pour le navigateur. Vous devez vous assurer que le navigateur du système d'un utilisateur final est configuré pour prendre en charge l'authentification Kerberos.


Configuration générale Kerberos SSO pour tous les navigateurs


  • Allez dans le Panneau de configuration et cliquez sur Réseau et Internet >> Options Internet.
  • Cela ouvrira une fenêtre Propriétés Internet. Cliquer sur Sécurité >> Intranet local >> Sites.
  • Configurer les navigateurs pour l'authentification Kerberos avec les paramètres des options Internet

  • Après cela, cliquez sur le bouton Bouton avancé.
  • Configurer les paramètres avancés des options Internet pour Kerberos SSO sur Chrome et Internet Explorer

  • Dans le Ajouter ce site Web à la zone section, ajoutez l’URL du site Web auquel vous souhaitez vous connecter avec SSO.
  • Configurer le site Web dans la zone Intranet à partir des options Internet pour Kerberos SSO
  • Cliquez Outils > Options Internet > Sécurité > Intranet local > Niveau personnalisé.
  • Faites défiler jusqu'aux options d'authentification utilisateur et sélectionnez Connexion automatique uniquement dans la zone Intranet.
  • Connexion automatique à la zone intranet via le protocole d'authentification Kerberos
  • Cliquez sur Ok puis redémarrez votre navigateur.


Une fois les paramètres ci-dessus définis, vous n'avez pas besoin de configurer les paramètres du navigateur pour Internet Explorer, Google Chrome et Apple Safari.


1. Internet Explorer
2. Google Chrome
3. Mozilla Firefox
4. Apple Safari


Internet Explorer

Par défaut, les paramètres de configuration généraux du navigateur seront applicables, aucun paramètre supplémentaire n'est requis pour Internet Explorer.



Google Chrome

Par défaut, les paramètres de configuration généraux du navigateur seront applicables, aucun paramètre supplémentaire n'est requis pour Google Chrome.



Mozilla Firefox

  • Ouvrez le navigateur Mozilla Firefox et entrez about: config dans la barre d'adresse.
  • Rechercher réseau.négocier-auth.trusted-uris Nom de la préférence, puis cliquez sur Modifier. entrez le nom d'hôte ou le domaine du serveur Web protégé par Kerberos HTTP SPNEGO. Spécifiez plusieurs domaines et noms d'hôte séparés par une virgule.
  • Configurer Mozilla Firefox pour Kerberos SSO (authentification unique)
  • Rechercher réseau.automatic-ntlm-auth.trusted-uris Nom de la préférence, puis cliquez sur Modifier. entrez le nom d'hôte ou le domaine du serveur Web protégé par Kerberos HTTP SPNEGO. Spécifiez plusieurs domaines et noms d'hôte séparés par une virgule.
  • configurer les paramètres de Mozilla Firefox pour l'authentification Kerberos
  • Cliquez OK puis redémarrez votre navigateur.


Apple Safari

  • Safari sous Windows prend en charge SPNEGO sans configuration supplémentaire. Il prend en charge à la fois Kerberos et NTLM en tant que sous-mécanisme de SPENGO.

Testez votre configuration SSO Kerberos/NTLM


Synchronisation de l'heure

Le protocole Kerberos nécessite que l'heure du client et celle du serveur correspondent : si l'horloge système du client ne correspond pas à celle du serveur, l'authentification échouera. Le moyen le plus simple de synchroniser les horloges système consiste à utiliser un serveur NTP (Network Time Protocol).


Vérifiez avec les commandes.

Pour vérifier votre configuration keytab et kerberos, vous pouvez exécuter les commandes suivantes :

  1. Klist
  2. La commande klist affiche le contenu d'un cache d'informations d'identification Kerberos ou d'une table de clés. Avec cette commande, vous pouvez vérifier si vous avez obtenu un ticket valide ou non.

  3. klist -t -k etc/apache2/spn.keytab
  4. Pour répertorier toutes les entrées de la table de clés etc/apache2/spn.keytab avec des horodatages.

  5. klist -ek /etc/apache2/spn.keytab
  6. Affiche le type de cryptage de la clé de session et du ticket et répertorie les entrées dans une table de clés.

  7. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.yourdomain.com@YOURDOMAIN.COM
  8. Vérifiez l'authentification Kerberos avec le fichier keytab.

  9. kdestroy -A
  10. Vous pouvez utiliser la commande this sous Linux pour réinitialiser n'importe quel jeton Kerberos sur votre ordinateur local. La commande détruit votre précédent ticket Kerberos.

  11. purge de la klist
  12. Vous pouvez utiliser cette commande sous Windows pour réinitialiser n'importe quel jeton Kerberos sur votre ordinateur local. La commande détruit votre précédent ticket Kerberos.


Configuration des tests.

  • Pour tester la configuration SSO, créez un fichier test.php dans votre répertoire racine WordPress.
    Entrez la ligne ci-dessous :
  • <?php
    var_dump($_SERVER);
    ?>
  • Enregistrez le fichier et accédez-y dans le navigateur Web. Vous verrez le Contenu $_SERVER.
  • Rechercher "REMOTE_USER" et il doit contenir le nom d'utilisateur actuellement connecté.
  • Remarque: Veuillez supprimer le fichier test.php après avoir vérifié votre configuration. Car il contient des informations précieuses.


Authentification Kerberos sur plusieurs domaines


  • Créez des Keytabs distincts sur chaque domaine et fusionnez-les avec l'outil ktutil :
  • ktutil
    ktutil: read_kt <keytab_filename_1>
    ktutil: read_kt <keytab_filename_2>
    ktutil: read_kt <keytab_filename_3>
    ktutil: write_kt spn.keytab
    ktutil: quit

  • Vérifiez la fusion avec la commande ci-dessous :
  • klist -k spn.keytab
  • Configurez krb5.conf :
    Le fichier krb5.conf contient des informations de configuration Kerberos qui incluent les serveurs KDC et d'administration pour un ou plusieurs domaines Kerberos, les valeurs par défaut pour le domaine actuel et les mappages des noms d'hôtes sur les domaines Kerberos. Dans le cas de plusieurs domaines, le fichier krb5.conf doit être mis à jour avec des informations sur les différents domaines/domaines de domaine pour que l'authentification fonctionne.

Dépannage


Voici les messages d'erreur les plus courants :

    kinit: Pre-authentication failed: Invalid argument while getting initial credentials
  • Le type de chiffrement rc4 qui est encore très utilisé dans les environnements AD mais déjà désactivé par défaut dans RHEL-8.3. Vous pouvez vous référer à l'exemple ci-dessous pour ajouter un type de cryptage à votre fichier keytab.
  • Mise en situation :
    ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
  • Kerberos est très sensible au temps. Vérifiez que les horloges des hôtes d'Active Directory et du serveur Web sont identiques. Configurez l'un de vos contrôleurs de domaine pour qu'il serve de serveur NTP pour vos ordinateurs clients.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied)
  • Mauvaises autorisations du système de fichiers pour /etc/apache2/spn.keytab, c'est-à-dire non lisibles pour l'utilisateur Linux du serveur Web.
  • Pour modifier les autorisations du système de fichiers, utilisez chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
  • Principal de service manquant (éventuellement HTTP/webserver.yourdomain.com@YOURDOMAIN.COM) dans /etc/apache2/spn.keytab.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
  • Le site Web n'est pas dans la zone « Intranet local » dans IE ou IE est mal configuré, voir L'authentification utilise NTLM au lieu de Kerberos.

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
  • Mauvais mot de passe kvno ou machine dans etc/apache2/spn.keytab. Recréez le keytab en utilisant les informations correctes.
  • Problème avec le cache de tickets Kerberos local sur votre poste de travail, utilisez Kerbtray.exe pour purger le cache de tickets et ouvrez à nouveau le site Web dans IE.

  • kinit: KDC has no support for encryption type while getting initial credentials
  • Modifiez le type de chiffrement par défaut dans la section libdefaults du fichier /etc/apache2/krb5.conf. Ajoutez les default_tgs_enctypes et default_tkt_enctypes à votre configuration.
  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
  • Votre compte Kerberos n'est plus actif. Les informations d'identification du compte doivent être renouvelées.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
  • Le mauvais domaine a été ciblé lors de l'exécution de la commande kinit. Vérifiez le nom de domaine, il doit être en majuscule EXAMPLE.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials
  • Le fichier /etc/apache2/krb5.conf ne contient pas le nom de domaine Active Directory (.EXAMPLE.COM).

  • kinit: Preauthentication failed while getting initial credentials
  • Causé par une saisie erronée du mot de passe Kerberos. Veuillez réessayer. Ou à cause de l'horloge de votre système. Assurez-vous que la commande date renvoie une heure correcte dans les 5 minutes.

  • kinit: Client not found in Kerberos database while getting initial credentials
  • Votre principal Kerberos peut différer de votre nom d'utilisateur sur votre système local.

  • kinit: Client's entry in database has expired
  • Vous devez changer votre mot de passe Kerberos.

Bonjour!

Besoin d'aide? Nous sommes ici !

Support
Contacter l'assistance miniOrange
succès

Merci pour votre demande.

Si vous n'avez pas de nouvelles de nous dans les 24 heures, n'hésitez pas à envoyer un e-mail de suivi à info@xecurify.com