Vous pouvez utiliser un compte utilisateur pour l'authentification sur tous les nœuds du cluster. Pour ce faire, il faut créer un fichier keytab qui contient les noms principaux de service (ci-après « SPN ») pour chacun de ces nœuds. Lors de la création d'un fichier keytab, il faudra utiliser l'attribut de génération du sel (salt, modificateur d'entrée de fonction de hachage).
Le sel généré doit être sauvegardé de la manière la plus pratique pour ajouter de nouveaux SPN au fichier keytab.
Vous pouvez également créer un compte Active Directory séparé pour chaque nœud de cluster pour lequel vous voulez 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 et 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 d'un fichier keytab
Le fichier keytab est créé sur le serveur du contrôleur de domaine ou sur l'ordinateur tournant sous Windows Server dans le domaine, sous un compte utilisateur doté des autorisations d'administrateur de domaine.
Pour créer un fichier keytab en utilisant un compte :
control-user
).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 principal>@<nom de domaine realm Active Directory en majuscules> -mapuser control-user@< nom de domaine realm 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 demandera le mot de passe de l'utilisateur control-user
lors de l'exécution de la commande.
Le SPN du Nœud primaire est ajouté au fichier keytab créé. L'écran affichera le sel généré : Hashing password with salt "<valeur de hash>".
C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud>@<realm nom de domaine Active Directory en majuscule> -mapuser control-user@<realm nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <chemin d'accès et nom du fichier créé auparavant>.keytab -out <chemin d'accès et nouveau nom>.keytab -setupn -setpass -rawsalt "<valeur de hash du sel obtenue lors de la création du fichier keytab à l'étape 3>"
L'utilitaire demandera le mot de passe de l'utilisateur control-user
lors de l'exécution de la commande.
Le fichier keytab sera créé. Ce fichier contient tous les SPN des nœuds du cluster.
Exemple : Par exemple, vous devez créer un fichier keytab contenant les noms SPN de 3 nœuds : Pour créer dans le dossier C:\keytabs\ un fichier portant le nom
Disons que vous avez du sel Pour pouvoir ajouter encore un autre SPN, il faut exécuter la commande suivante :
Pour pouvoir ajouter un troisième SPN, il faut exécuter la commande suivante :
L'exécution de la commande entraîne la création d'un fichier portant le nom |
Pour créer un fichier keytab à l'aide d'un compte séparé pour chaque nœud :
control-user
, secondary1-user
, secondary2-user
, etc.).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 d'administration>@<realm nom de domaine Active Directory en majuscule> -mapuser control-user@<realm nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <chemin d'accès au fichier>\<nom du fichier>.keytab
L'utilitaire demandera le mot de passe de l'utilisateur control-user
lors de l'exécution de la commande.
Le SPN du Nœud primaire est ajouté au fichier keytab créé.
C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud>@<realm nom de domaine Active Directory en majuscule> -mapuser secondary1-user@<nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <chemin d'accès et nom du fichier créé auparavant>.keytab -out <chemin d'accès et nouveau nom>.keytab
L'utilitaire demandera le mot de passe de l'utilisateur secondary1-user
lors de l'exécution de la commande.
Le fichier keytab sera créé. Ce fichier contient tous les SPN des nœuds du cluster.
Exemple : Par exemple, vous devez créer un fichier keytab contenant les noms SPN de 3 nœuds : Pour créer dans le dossier C:\keytabs\ un fichier portant le nom
Pour pouvoir ajouter encore un autre SPN, il faut exécuter la commande suivante :
Pour pouvoir ajouter un troisième SPN, il faut exécuter la commande suivante :
L'exécution de la commande entraîne la création d'un fichier portant le nom |
Actions après la création d'un fichier keytab
Après avoir créé le fichier keytab, vous devez vous assurer pour 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 lié 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 |