Comprendre la configuration requise du fichier keytab

L’authentification Kerberos se base sur des informations d’identification qui sont stockées dans des fichiers spécialement formatés appelés fichiers keytab. Vous devrez peut-être générer des fichiers keytab pour votre déploiement Tableau Server. Cette rubrique décrit les fichiers keytab que Tableau Server utilise pour accéder à divers services dans une entreprise standard. Il se peut que vous ayez besoin de générer des fichiers keytab pour que Tableau Server les intègre dans les services suivants :

  • Authentification utilisateur (SSO) dans Windows Active Directory
  • Délégation de source de données
  • Système d’exploitation
  • Service d’annuaire

Important : Depuis Tableau Server 2021.2.25, 2021.3.24, 2021.4.19, 2022.1.15, 2022.3.7 et 2023.1.3 (ou version ultérieure), assurez-vous que les fichiers keytab sont créés avec les chiffrements AES-128 ou AES-256. Les chiffrements RC4 et 3DES ne sont plus pris en charge. Pour plus d’informations, voir « Tableau Server n’a pas pu vous authentifier automatiquement »(Le lien s’ouvre dans une nouvelle fenêtre) dans la base de connaissances Tableau.

Si votre entreprise emploie des professionnels informatiques qui gèrent l’identité, l’authentification et/ou la sécurité, vous devriez faire appel à eux pour créer un plan de génération de fichiers keytab adaptés à votre déploiement Tableau Server.

Authentification utilisateur (SSO) dans Windows Active Directory

Si vous comptez utiliser Active Directory comme banque d’identités pour Tableau Server, et que vous souhaitez que les utilisateurs s’authentifient avec l’authentification unique Kerberos, vous devrez générer un fichier keytab pour Tableau Server.

Tableau s’exécute sur...Vous avez besoin de générer manuellement un fichier keytab?
Windows dans le domaine Active DirectoryOui
Linux dans le domaine Active DirectoryOui
Windows ou Linux dans un environnement non-Active DirectoryKerberos SSO n’est pas un scénario pris en charge.

Suivez ces recommandations (pour les versions Windows et Linux de Tableau Server):

  • Créez un compte de service dans votre annuaire pour Tableau Server.

  • Créez un fichier keytab spécifiquement pour le compte de service Tableau Server. Ne réutilisez pas le fichier keytab que le compte de l’ordinateur/le système d’exploitation utilise pour l’authentification. Vous pouvez utiliser le même fichier keytab pour l’authentification unique Kerberos que pour l’authentification Active Directory dans le scénario ci-dessus.

  • Vous devez créer des noms SPN (Service Principal Name) dans Active Directory pour le service Tableau Server.

  • Utilisez le fichier de commandes dans la section suivante pour créer les SPN et le fichier keytab.

  • Après avoir créé les SPN, chargez le fichier keytab tel que décrit dans Configurer Kerberos.

Fichier de commandes : définir le SPN et créer un fichier keytab dans Active Directory

Vous pouvez utiliser un fichier de commandes pour définir le SPN (Service Principal Name) et créer un fichier keytab. Ces opérations font partie du processus d’activation de l’authentification unique Kerberos pour Tableau Server (sur Windows ou Linux) s’exécutant dans Active Directory.

Dans les versions antérieures de Tableau Server (avant 2018.2), le script de configuration était généré depuis l’utilitaire de configuration de Tableau Server.

Pour générer un script de configuration, copiez et collez le contenu du fichier de commandes suivant dans un fichier texte. Le fichier de commandes crée des SPN (Service Principal Name) pour Tableau Server et crée un fichier keytab pour l’utilisateur que vous spécifiez dans le fichier.

Suivez les instructions dans le contenu du fichier. Une fois que vous avez fini de personnaliser le fichier, enregistrez-le en tant que fichier .bat.

Ce fichier doit être exécuté dans un domaine Active Directory par un administrateur de domaine qui sera invité à fournir le mot de passe du compte de service pour le compte que vous spécifiez dans le fichier.

Le fichier de commandes utilise les commandes Windows set(Le lien s’ouvre dans une nouvelle fenêtre), setspn(Le lien s’ouvre dans une nouvelle fenêtre)et ktpass(Le lien s’ouvre dans une nouvelle fenêtre) .

Remarque : le fichier de commandes ci-dessous est auto-documenté. Cependant, si vous n’avez pas d’expérience avec Kerberos et la génération de fichiers keytab, nous vous recommandons de lire le billet du blog Microsoft Tout ce que vous devez savoir sur les fichiers Keytab(Le lien s’ouvre dans une nouvelle fenêtre) avant de continuer. Les détails concernant l’environnement de votre entreprise peuvent nécessiter une configuration supplémentaire de la commande ktpass. Par exemple, vous devez déterminer ce qu’il faut définir pour le paramètre /crypto. Nous vous recommandons de spécifier une valeur /crypto individuelle requise par votre KDC. Consultez l’article Microsoft, ktpass(Le lien s’ouvre dans une nouvelle fenêtre) pour une liste complète des valeurs prises en charge pour le paramètre /crypto.

SPN et contenu du fichier de commandes keytab

À partir de Tableau Server 2022.3, 2022.1.8, 2021.4.12, 2021.3.17, 2021.2.18, 2021.1.20 et 2020.4.23

@echo off
setlocal EnableDelayedExpansion

REM ******* 

REM This script generates the Service Principal Names (SPNs) and keytab files required for 
REM Kerberos SSO with Apache.
REM This script executes set, setspn, and ktpass commands included in any Windows Server 
REM Operating System from 2003 on.
REM Before running this script you must enter configuration information for the setspn and 
REM ktpass commands. 
REM Elements that require your configuration information are enclosed in as such:
REM  ! -- and --!. 
REM After you customize this file, save it as a .bat file, and run on a domain-joined 
REM computer. 
REM This script must be run by a Domain admin.

REM **********

REM The following set command will prompt the domain admin for credentials of the 
REM Tableau Server service account. 
REM This account must be a valid domain user account.
REM If the password contains a literal \" (blackslash - double quote), all backslashes 
REM immediately before the double quote must be
REM duplicated when typed for the password to work, e.g. if password contains 
REM  \" replace with \\", if passwords contains \\" replace with \\\\"

set /p adpass= "Enter password for the Tableau Server service account."
set adpass=!adpass:"=\"!

REM **********

REM The following setspn commands create the SPN in the domain.
REM More information on setspn can be found here: 
REM http://technet.microsoft.com/en-us/library/cc731241(WS.10).aspx  
REM Enter the canonical FQDN and the host names for Tableau Server followed by the  
REM Tableau Server service account name.
REM Use this syntax: HTTP/hostname domain\service_account_name.
REM The example below shows syntax for a computer named "tableau01" in the "example.lan"  
REM domain, with service account, "tab-serv-account":
REM setspn -s HTTP/tableau01 example\tab-serv-account
REM setspn -s HTTP/tableau01.example.lan example\tab-serv-account  
REM DNS and AD are not case sensitive, but the keytab files are.  Verify that host names  
REM match letter case as stored in DNS. 
REM Use Windows Server's DNS Manager utility to verify host name case.

REM **********

echo Creating SPNs...
setspn -s HTTP/!--replace with canonical host name and service account --!
setspn -s HTTP/!--replace with canonical FQDN and service account --!

REM **********

REM The following commands create the keytab file in the same directory where the 
REM bat file is run. More information on ktpass can be found here: 
REM https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass 
REM Note: keytab files are case-sensitive.
REM The realm following the FQDN should be all uppercase.
REM Syntax is:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass!
REM /pttype KRB5_NTPRINCIPAL /crypto !--cipher--! /out keytabs\kerberos.keytab
REM Best practice: specify the /crypto value that is required by your KDC. 
REM Options for /crypto = {DES-CBC-CRC|DES-CBC-MD5|AES256-SHA1|AES128-SHA1|All}
REM Do not specify /crypto All because it will result in a keytab that contains ciphers that are not supported
REM and cause errors.
REM When using AES256-SHA1 OR AES128-SHA1, the /mapuser option must be included 
REM in the ktpass command to ensure the keytab file is mapped properly to the user. For example:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /mapuser <domain\username> /crypto AES256-SHA1 /out keytabs\kerberos.keytab
REM The following example shows the ktpass syntax with the example.lan configuration from above:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab
					
REM **********

echo Creating Keytab files in %CD%\keytabs
mkdir keytabs
ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab

Pour les versions antérieures de Tableau Server

@echo off
setlocal EnableDelayedExpansion

REM ******* 

REM This script generates the Service Principal Names (SPNs) and keytab files required for 
REM Kerberos SSO with Apache.
REM This script executes set, setspn, and ktpass commands included in any Windows Server 
REM Operating System from 2003 on.
REM Before running this script you must enter configuration information for the setspn and 
REM ktpass commands. 
REM Elements that require your configuration information are enclosed in as such:
REM  ! -- and --!. 
REM After you customize this file, save it as a .bat file, and run on a domain-joined 
REM computer. 
REM This script must be run by a Domain admin.

REM **********

REM The following set command will prompt the domain admin for credentials of the 
REM Tableau Server service account. 
REM This account must be a valid domain user account.
REM If the password contains a literal \" (blackslash - double quote), all backslashes 
REM immediately before the double quote must be
REM duplicated when typed for the password to work, e.g. if password contains 
REM  \" replace with \\", if passwords contains \\" replace with \\\\"

set /p adpass= "Enter password for the Tableau Server service account."
set adpass=!adpass:"=\"!

REM **********

REM The following setspn commands create the SPN in the domain.
REM More information on setspn can be found here: 
REM http://technet.microsoft.com/en-us/library/cc731241(WS.10).aspx  
REM Enter the canonical FQDN and the host names for Tableau Server followed by the  
REM Tableau Server service account name.
REM Use this syntax: HTTP/hostname domain\service_account_name.
REM The example below shows syntax for a computer named "tableau01" in the "example.lan"  
REM domain, with service account, "tab-serv-account":
REM setspn -s HTTP/tableau01 example\tab-serv-account
REM setspn -s HTTP/tableau01.example.lan example\tab-serv-account  
REM DNS and AD are not case sensitive, but the keytab files are.  Verify that host names  
REM match letter case as stored in DNS. 
REM Use Windows Server's DNS Manager utility to verify host name case.

REM **********

echo Creating SPNs...
setspn -s HTTP/!--replace with canonical host name and service account --!
setspn -s HTTP/!--replace with canonical FQDN and service account --!

REM **********

REM The following commands create the keytab file in the same directory where the 
REM bat file is run. More information on ktpass can be found here: 
REM https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass 
REM Note: keytab files are case-sensitive.
REM The realm following the FQDN should be all uppercase.
REM Syntax is:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass!
REM /pttype KRB5_NTPRINCIPAL /crypto !--cipher--! /out keytabs\kerberos.keytab
REM Best practice: specify the /crypto value that is required by your KDC. 
REM Options for /crypto = {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All}
REM Specifying /crypto All will result in passwords stored with RC4 cipher, which is
REM no longer considered secure.
REM When using AES256-SHA1 OR AES128-SHA1, the /mapuser option must be included 
REM in the ktpass command to ensure the keytab file is mapped properly to the user. For example:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /mapuser <domain\username> /crypto AES256-SHA1 /out keytabs\kerberos.keytab
REM The following example shows the ktpass syntax with the example.lan configuration from above:
REM ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab
					
REM **********

echo Creating Keytab files in %CD%\keytabs
mkdir keytabs
ktpass /princ HTTP/!--FQDN--!@!--Kerberos_Realm--! /pass !adpass! /ptype KRB5_NT_PRINCIPAL /crypto DES-CBC-CRC /out keytabs\kerberos.keytab

Système d’exploitation

Si votre entreprise utilise Kerberos pour l’authentification, l’ordinateur sur lequel Tableau Server s’exécute doit être authentifié avec le domaine Kerberos dans lequel il s’exécute.

Tableau s’exécute sur...Vous avez besoin de générer manuellement un fichier keytab?
Windows dans le domaine Active DirectoryNon
Linux dans le domaine Active DirectoryOui
Windows ou Linux dans un environnement non-Active DirectoryOui

Si vous exécutez Tableau Server sur Windows, et que l’ordinateur est lié à Active Directory, vous n’avez pas besoin de gérer ou de générer un fichier keytab pour le système d’exploitation.

Si vous exécutez Tableau Server sur Linux dans un domaine Kerberos (MIT KDC ou Active Directory), vous devez générer un fichier keytab spécifiquement pour le système d’exploitation de l’ordinateur. Le fichier keytab que vous créez pour l’ordinateur doit être spécifiquement conçu pour l’authentification du système d’exploitation. N’utilisez pas le même fichier keytab pour l’authentification du système d’exploitation que vous comptez utiliser pour les autres services décrits ultérieurement dans cette rubrique.

Service d’annuaire

Si votre entreprise utilise un service d’annuaire, par exemple LDAP ou Active Directory, pour gérer les identités des utilisateurs, Tableau Server a besoin d’un accès en lecture seule à cet annuaire.

Vous pouvez sinon configurer Tableau pour gérer tous les comptes en faisant l’installation avec une banque d’identités locale. Dans ce cas, vous n’avez pas besoin d’un fichier keytab.

Le tableau suivant résume les exigences en matière de fichiers keytab :

Tableau s’exécute sur...Service d’annuaireVous avez besoin de générer manuellement un fichier keytab?
Windows dans le domaine ADActive DirectoryNon
WindowsLDAP (liaison GSSAPI)Oui
LinuxActive Directory ou LDAP (liaison GSSAPI)Oui
Windows ou LinuxActive Directory ou LDAP (liaison simple)Non
Windows ou LinuxMagasin d’identités localAucun fichier keytab requis.

Si vous avez besoin de générer manuellement un fichier keytab pour ce scénario, vous l’utiliserez pour la liaison GSSAPI à l’annuaire. Suivez ces recommandations :

  • Créez un compte de service dans votre annuaire pour Tableau Server.

  • Créez un fichier keytab spécifiquement pour le compte de service Tableau Server. Ne réutilisez pas le fichier keytab que le compte de l’ordinateur/le système d’exploitation utilise pour l’authentification.

  • Chargez le fichier keytab dans le cadre de la configuration json de la banque d’identités Tableau Server. Consultez Entité identityStore.

Dans le cadre de votre plan de récupération après sinistre, nous vous recommandons de conserver une sauvegarde des fichiers keytab et conf dans un emplacement sûr hors de Tableau Server. Les fichiers keytab et conf que vous ajoutez à Tableau Server seront stockés et distribués à d’autres nœuds par le service des fichiers clients. Toutefois, les fichiers ne sont pas stockés dans un format récupérable. Consultez Service des fichiers client Tableau Server.

Délégation de source de données

Vous pouvez également utiliser la délégation Kerberos pour accéder aux sources de données dans Active Directory. Dans ce scénario, les utilisateurs peuvent être authentifiés sur Tableau Server avec tout mécanisme d’authentification pris en charge (SAML, authentification locale, Kerberos, etc), mais peuvent accéder aux sources de données qui sont activées par Kerberos.

Suivez ces recommandations :

  • Le compte d’ordinateur de Tableau Server (Windows ou Linux) doit être dans le domaine Active Directory.

  • Le fichier keytab que vous utilisez pour la délégation Kerberos peut être le même fichier keytab que celui utilisé pour l’authentification utilisateur Kerberos (SSO).

  • Le fichier keytab doit être mappé au SPN pour la délégation Kerberos dans Active Directory.

  • Vous pouvez utiliser le même fichier keytab pour plusieurs sources de données.

Pour plus d’informations, consultez les rubriques de configuration suivantes :

Merci de vos commentaires !Avis correctement envoyé. Merci