De basisprincipes van keytab-vereisten
Kerberos-verificatie is afhankelijk van referenties die zijn opgeslagen in speciaal opgemaakte bestanden, de zogenaamde keytab-bestanden. Mogelijk moet u keytab-bestanden genereren voor uw Tableau Server-implementatie. In dit onderwerp worden de keytab-bestanden beschreven die Tableau Server gebruikt om toegang te krijgen tot verschillende services in een typische organisatie. Mogelijk moet u keytabs genereren voor Tableau Server om deze te integreren met de volgende services:
- Gebruikersverificatie (SSO) in Windows Active Directory
- Databrondelegatie
- Besturingssysteem
- Directoryservice
Belangrijk: Vanaf Tableau Server 2021.2.25, 2021.3.24, 2021.4.19, 2022.1.15, 2022.3.7 en 2023.1.3 (of later) moet u ervoor zorgen dat keytab-bestanden worden gemaakt met AES-128- of AES-256-codering. RC4- en 3DES-coderingen worden niet meer ondersteund. Zie "Tableau Server kan u niet automatisch verifiëren"(Link wordt in een nieuw venster geopend) in de Tableau-knowledgebase voor meer informatie.
Als er in uw organisatie IT-professionals werkzaam zijn die identiteit, verificatie en/of beveiliging afhandelen, kunt u met hen samenwerken om een plan te maken voor het genereren van geschikte keytabs voor uw Tableau Server-implementatie.
Gebruikersverificatie (SSO) in Windows Active Directory
Als u Active Directory als identiteitenarchief voor Tableau Server gebruikt en u wilt dat gebruikers zich verifiëren via Kerberos SSO, moet u een keytab-bestand voor Tableau Server genereren.
Tableau draait op... | Moet u handmatig een keytab genereren? |
---|---|
Windows in Active Directory-domein | Ja |
Linux in Active Directory-domein | Ja |
Windows of Linux in een niet-Active Directory-omgeving | Kerberos SSO wordt niet ondersteund. |
Volg deze aanbevelingen (voor Windows- en Linux-versies van Tableau Server):
Maak een serviceaccount in uw directory voor Tableau Server.
Maak een keytab specifiek voor het Tableau Server-serviceaccount. Gebruik het keytab-bestand dat het computeraccount/besturingssysteem gebruikt voor verificatie niet opnieuw. U kunt dezelfde keytab voor Kerberos SSO gebruiken als voor de directoryverificatie in het bovenstaande scenario.
U moet Service Principal Names (SPN's) in Active Directory maken voor de Tableau Server-service.
Gebruik het batchbestand in de volgende sectie om de SPN's en het keytab-bestand te maken.
Nadat u de SPN's hebt gemaakt, uploadt u het keytab-bestand zoals beschreven in Kerberos configureren.
Batchbestand: SPN instellen en keytab maken in Active Directory
U kunt een batchbestand gebruiken om de SPN's (Service Principal Names) in te stellen en een keytab-bestand te maken. Deze bewerkingen maken deel uit van het proces om Kerberos SSO in te schakelen voor Tableau Server (op Windows of Linux) dat in Active Directory wordt uitgevoerd.
In eerdere versies van Tableau Server (vóór 2018.2) werd het configuratiescript gegenereerd vanuit het hulpprogramma Tableau Server Configuration.
Om een configuratiescript te genereren, kopieert en plakt u de volgende batchbestandinhoud in een tekstbestand. Het batchbestand maakt Service Principal Names (SPN's) voor Tableau Server en maakt een keytab-bestand voor de gebruiker die u in het bestand opgeeft.
Volg de instructies in de bestandsinhoud. Nadat u klaar bent met het aanpassen van het bestand, slaat u het op als een .bat-bestand.
Dit bestand moet in een Active Directory-domein worden uitgevoerd door een domeinbeheerder. Deze wordt gevraagd om het wachtwoord van het serviceaccount dat u in het bestand opgeeft.
Het batchbestand gebruikt de Windows-opdrachten set(Link wordt in een nieuw venster geopend), setspn(Link wordt in een nieuw venster geopend) en ktpass(Link wordt in een nieuw venster geopend).
Opmerking: Het onderstaande batchbestand bevat eigen documentatie. Als u echter geen ervaring hebt met Kerberos en het genereren van keytab-bestanden, raden wij u aan het Microsoft-blogbericht Alles wat u moet weten over keytab-bestanden(Link wordt in een nieuw venster geopend) (in het Engels) te lezen voordat u verdergaat. Omgevingsdetails in uw organisatie vereisen mogelijk aanvullende configuratie van de ktpass-opdracht. U moet bijvoorbeeld bepalen wat u moet instellen voor de /crypto
-parameter. Wij raden aan om één enkele /crypto
-waarde op te geven die vereist is door uw KDC. Zie het Microsoft-artikel kt-pass(Link wordt in een nieuw venster geopend) voor de volledige lijst met ondersteunde waarden voor de /crypto
-parameter.
Het maken van een keytab-bestand voor gebruikersverificatie in Active Directory moet worden uitgevoerd op een Windows-computer zoals hier opgegeven. Het maken van dit keytab-bestand op een Linux-computer wordt niet ondersteund.
Inhoud van SPN- en keytab-batchbestanden
Vanaf Tableau Server 2022.3, 2022.1.8, 2021.4.12, 2021.3.17, 2021.2.18, 2021.1.20 en 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
Voor eerdere versies van 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
Besturingssysteem
Als uw organisatie Kerberos gebruikt voor verificatie, moet de computer waarop Tableau Server wordt uitgevoerd, worden geverifieerd met het Kerberos-realm waarin deze wordt uitgevoerd.
Tableau draait op... | Moet u handmatig een keytab genereren? |
---|---|
Windows in Active Directory-domein | Nee |
Linux in Active Directory-domein | Ja |
Windows of Linux in een niet-Active Directory-omgeving | Ja |
Als u Tableau Server op Windows uitvoert en de computer is gekoppeld aan Active Directory, hoeft u geen keytab-bestand voor het besturingssysteem te beheren of te genereren.
Als u Tableau Server op Linux in een Kerberos-realm (MIT KDC of Active Directory) uitvoert, moet u een keytab-bestand genereren dat specifiek is voor het besturingssysteem van de computer. De keytab die u voor de computer maakt, moet specifiek bedoeld zijn voor OS-verificatie. Gebruik niet hetzelfde keytab-bestand voor OS-verificatie als voor de andere services die later in dit onderwerp worden beschreven.
Directoryservice
Als uw organisatie een directoryservice, zoals LDAP of Active Directory, gebruikt om de identiteit van gebruikers te beheren, vereist Tableau Server alleen-lezentoegang tot de directory.
U kunt Tableau Server ook configureren om alle accounts te beheren door te installeren met een lokaal identiteitenarchief. In dit geval hebt u geen keytab nodig.
De volgende tabel vat de keytab-vereisten samen:
Tableau draait op... | Directoryservice | Moet u handmatig een keytab genereren? |
---|---|---|
Windows in AD-domein | Active Directory | Nee |
Windows | LDAP (GSSAPI-binding) | Ja |
Linux | Active Directory of LDAP (GSSAPI-binding) | Ja |
Windows of Linux | Active Directory of LDAP (eenvoudige binding) | Nee |
Windows of Linux | Lokaal identiteitenarchief | Geen keytab vereist. |
Als u handmatig een keytab voor dit scenario moet genereren, gebruikt u deze voor GSSAPI-binding aan de directory. Volg deze aanbevelingen:
Maak een serviceaccount in uw directory voor Tableau Server.
Maak een keytab specifiek voor het Tableau Server-serviceaccount. Gebruik het keytab-bestand dat het computeraccount/besturingssysteem gebruikt voor verificatie niet opnieuw.
Upload het keytab-bestand als onderdeel van de JSON-configuratie van het Tableau Server-identiteitenarchief. Zie identityStore-entiteit.
Als onderdeel van uw noodherstelplan raden we u aan een back-up van de keytab- en conf-bestanden te bewaren op een veilige locatie buiten de Tableau Server. De keytab- en conf-bestanden die u aan Tableau Server toevoegt, worden door de Client File Service opgeslagen en naar andere knooppunten gedistribueerd. De bestanden worden echter niet opgeslagen in een herstelbaar formaat. Zie Tableau Server - Clientbestandsservice.
Databrondelegatie
U kunt ook Kerberos-delegatie gebruiken om toegang te krijgen tot databronnen in een Active Directory. In dit scenario kunnen gebruikers worden geverifieerd bij Tableau Server met elk ondersteund verificatiemechanisme (SAML, lokale verificatie, Kerberos, enz.), maar hebben ze toegang tot databronnen die door Kerberos zijn ingeschakeld.
Volg deze aanbevelingen:
Het computeraccount voor Tableau Server (Windows of Linux) moet zich in het Active Directory-domein bevinden.
Het keytab-bestand dat u voor Kerberos-delegatie gebruikt, kan hetzelfde keytab-bestand zijn dat u voor Kerberos-gebruikersverificatie (SSO) gebruikt.
De keytab moet worden toegewezen aan de serviceprincipal voor Kerberos-delegatie in Active Directory.
U kunt dezelfde keytab gebruiken voor meerdere databronnen.
Zie de volgende configuratieonderwerpen voor meer informatie:
Tableau Server op Linux: Kerberos-delegatie inschakelen(Link wordt in een nieuw venster geopend)
Tableau Server op Windows: Kerberos-delegatie inschakelen(Link wordt in een nieuw venster geopend)