Création du fichier keytab

3 juillet 2024

ID 183739

Si vous avez déjà créé un fichier keytab pour l'authentification selon la technologie SSO, vous pouvez utiliser ce fichier pour configurer l'authentification Kerberos sur le serveur proxy.

Vous pouvez utiliser un seul compte pour vous authentifier auprès de tous les nœuds de cluster. Il faut créer pour cela un fichier keytab contenant les noms du sujet-service (ci-après « SPN ») pour chacun de ces nœuds. Lors de la création d'un fichier keytab, vous devrez utiliser un attribut pour générer le sel (salt, modificateur d'entrée de la fonction de hachage).

Le sel généré doit être sauvegardé de n'importe quelle manière pratique pour l'ajout ultérieur de nouveaux SPN au fichier keytab.

Vous pouvez également créer un compte Active Directory distinct pour chaque nœud de cluster pour lequel vous souhaitez configurer l'authentification Kerberos.

Actions avant la création d'un fichier keytab

Avant de créer un fichier keytab, vous devez vous assurer pour chaque SPN qu'il n'est pas enregistré dans Active Directory. Vous pouvez le faire en utilisant la commande setspn -Q <SPN> , où <SPN> a la forme suivante : HTTP/<nom de domaine complet (FQDN) du nœud du cluster>@<realm nom de domaine Active Directory en majuscules>.

La commande doit renvoyer la réponse "No such SPN found", ce qui signifie que ce SPN n'est pas enregistré. Si le SPN est déjà enregistré, avant de créer le fichier keytab, vous devez supprimer la liaison du SPN au compte ou supprimer le compte Active Directory auquel ce SPN était lié.

Exemple de vérification du SPN pour un Nœud primaire ou deux Nœuds secondaires :

setspn -Q HTTP/control-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL

Création du fichier keytab

Le fichier keytab est créé sur un serveur du contrôleur de domaine ou sur un ordinateur Windows Server joint à un domaine sous un compte disposant de privilèges d'administrateur du domaine.

Pour créer un fichier keytab à l'aide d'un seul compte, procédez comme suit :

  1. Dans le module logiciel enfichable Active Directory Users and Computers, créez un compte pour l'utilisateur (par exemple, sous le nom control-user).
  2. Pour utiliser l'algorithme de chiffrement AES256-SHA1, procédez comme suit dans le module logiciel enfichable Active Directory Users and Computers :
    1. Ouvrez les propriétés du compte utilisateur créé.
    2. Sous l'onglet Account, cochez la case This account supports Kerberos AES 256 bit encryption.
  3. Créez un fichier keytab pour l'utilisateur control-user à l'aide de l'utilitaire ktpass. Pour ce faire, saisissez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du Nœud maître>@<realm nom du domaine Active Directory en majuscules> -mapuser control-user@<realm nom du domaine Active Directory en majuscules> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <chemin d'accès au fichier>\<nom du fichier>.keytab

    L'utilitaire demande le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

    Le SPN du Nœud maître est ajouté au fichier keytab créé. Le sel généré s'affichera à l'écran : Hashing password with salt "<valeur de hachage>".

  4. Pour chaque nœud de cluster, ajoutez une entrée SPN au fichier keytab. Pour ce faire, exécutez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud>@<realm nom du domaine Active Directory en majuscules> -mapuser control-user@<realm nom du domaine Active Directory en majuscules> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <nom du fichier précédemment créé et chemin d'accès à celui-ci>.keytab -out <chemin d'accès et nouveau nom>.keytab -setupn -setpass -rawsalt "<valeur de hash du sel obtenue en créant le fichier keytab à l'étape 3>"

    L'utilitaire demande le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

Le fichier keytab est créé. Ce fichier contiendra tous les SPN ajoutés des nœuds du cluster.

Exemple :

Par exemple, vous voulez créer un fichier keytab contenant les noms SPN de 3 nœuds : control-01.test.local, secondary-01.test.local et secondary-02.test.local.

Pour créer le fichier nommé filename1.keytab dans le dossier C:\keytabs\, contenant le SPN du Nœud maître, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

Imaginons que vous ayez reçu le sel "TEST.LOCALHTTPcontrol-01.test.local".

Pour ajouter un autre SPN, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

Pour ajouter un troisième SPN, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

Cette opération aura pour résultat la création d'un fichier nommé filename3.keytab, contenant les trois SPN ajoutés.

Pour créer un fichier keytab à l'aide d'un compte distinct pour chaque nœud, procédez comme suit :

  1. Dans le module logiciel enfichable Active Directory Users and Computers, créez un compte utilisateur distinct pour chaque nœud de cluster (par exemple, des comptes nommés control-user, secondary1-user, secondary2-user, etc.).
  2. Pour utiliser l'algorithme de chiffrement AES256-SHA1, procédez comme suit dans le module logiciel enfichable Active Directory Users and Computers :
    1. Ouvrez les propriétés du compte utilisateur créé.
    2. Sous l'onglet Account, cochez la case This account supports Kerberos AES 256 bit encryption.
  3. Créez un fichier keytab pour l'utilisateur control-user à l'aide de l'utilitaire ktpass. Pour ce faire, saisissez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du Nœud maître>@<realm nom du domaine Active Directory en majuscules> -mapuser control-user@<realm nom du domaine Active Directory en majuscules> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <chemin d'accès au fichier>\<nom du fichier>.keytab

    L'utilitaire demande le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

    Le SPN du Nœud maître est ajouté au fichier keytab créé.

  4. Pour chaque nœud de cluster, ajoutez une entrée SPN au fichier keytab. Pour ce faire, exécutez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<om de domaine complet (FQDN) du nœud>@<realm nom du domaine Active Directory en majuscules> -mapuser secondary1-user@<realm nom du domaine Active Directory en majuscules> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <nom du fichier précédemment créé et chemin d'accès à celui-ci>.keytab -out <chemin d'accès et nouveau nom>.keytab

    L'utilitaire demande le mot de passe de l'utilisateur secondary1-user lors de l'exécution de la commande.

Le fichier keytab est créé. Ce fichier contiendra tous les SPN ajoutés des nœuds du cluster.

Exemple :

Par exemple, vous voulez créer un fichier keytab contenant les noms SPN de 3 nœuds : control-01.test.local, secondary-01.test.local et secondary-02.test.local.

Pour créer le fichier nommé filename1.keytab dans le dossier C:\keytabs\, contenant le SPN du Nœud maître, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

Pour ajouter un autre SPN, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

Pour ajouter un troisième SPN, vous devez exécuter la commande suivante :

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

Cette opération aura pour résultat la création d'un fichier nommé filename3.keytab, contenant les trois SPN ajoutés.

Actions après la création d'un fichier keytab

Après avoir créé le fichier keytab, vous devez vous assurer de chaque SPN, qu'il est enregistré et lié au compte approprié. Vous pouvez le faire en utilisant la commande setspn -Q <SPN> , où <SPN> a la forme suivante : HTTP/<nom de domaine complet (FQDN) du nœud du cluster>@<realm nom de domaine Active Directory en majuscules>.

La commande doit renvoyer la réponse "Existing SPN found" et le compte auquel le SPN est lié.

De plus, après avoir créé le fichier keytab, vous pouvez vérifier la liste SPN associée au compte correspondant. Vous pouvez le faire en utilisant la commande setspn -L <account>, où <account> a la forme suivante : <nom d'utilisateur>@<realm nom de domaine Active Directory en majuscules>.

Si le fichier keytab a été créé avec un seul compte, la commande doit renvoyer une liste de tous les SPN pour lesquels le fichier keytab a été créé. Si le fichier keytab est créé avec des comptes distincts pour chaque nœud, la commande doit renvoyer un SPN lié à un compte spécifique.

Exemple de la commande pour un compte :

setspn -L control-user@TEST.LOCAL

Exemple de la commande pour des comptes distincts pour chaque nœud :

setspn -L control-user@TEST.LOCAL

setspn -L secondary1-user@TEST.LOCAL

setspn -L secondary2-user@TEST.LOCAL

Cet article vous a-t-il été utile ?
Que pouvons-nous améliorer ?
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.