Aktivera Kerberos-delegering för JDBC-kopplingar

Från och med version 2020.2 stöder Tableau Server Kerberos-delegering för JDBC-kopplingar.

Med Kerberos-delegering kan Tableau Server använda användarens Kerberos-autentiseringsuppgifter för en arbetsbok eller vy för att köra en fråga å användarens vägnar. Detta är användbart i följande situationer:

  • Du måste veta vem som har åtkomst till data (användarens namn visas i datakällans åtkomstloggar).

  • Datakällan har säkerhet på radnivå, vilket innebär att olika användare har åtkomst till olika rader.

Datakällor som stöds

Tableau stöder JDBC Kerberos RunAs-autentisering med följande datakällor:

  • Oracle
  • PostgreSQL

Om du konfigurerar delegering med en Oracle-datakälla med en JDBC-baserad koppling följer du proceduren i detta ämne. Om kopplingen som du kör på Tableau Server använder en inbyggd drivrutin kan du alternativt följa proceduren i hjälpämnet Aktivera Kerberos-delegering.

Krav

Kerberos-delegering kräver Active Directory.

  • Tableau Server-informationsarkivet måste konfigureras så att det kan använda LDAP – Active Directory.
  • MIT KDC stöds inte.

Obs! Du behöver inte aktivera Kör som-kontot för att agera som operativsystem.

Konfigurationsprocess

Det här avsnittet innehåller ett exempel på processen för att aktivera Kerberos-delegering.

  1. Tableau Server behöver en Kerberos-tjänstbiljett för att kunna delegera för den användare som initierar anropet till databasen. Du måste skapa ett domänkonto som kan användas för att delegera till den angivna databasen. Det här kontot kallas för Kör som tjänst-kontot. I det här ämnet är den exempelanvändare som konfigurerats som Kör som-kontot tabsrv@EXAMPLE.COM.

    Kontot måste konfigureras för delegering i Active Directory:

    1. På en Windows Server som anslutits till användardomänen öppnar du Active Directory-användare och -datorer.
    2. På sidan Egenskaper för Kör som tjänst-kontot klickar du på fliken Delegering och väljer Lita endast på den här användaren för delegering till angivna tjänster och Använd alla autentiseringsprotokoll.
  2. Skapa en keytab-fil för Kör som tjänst-kontot.

    I följande exempel används verktyget ktab som medföljer JDK. Du kan ladda ned verktyget på AdoptOpenJDK(Länken öppnas i ett nytt fönster). När du använder ktab för att skapa keytab-filen så använd ett användarens huvudnamn i UPN-format vid inloggning (t.ex. service@EXAMPLE.COM) och inte ett tjänstens huvudnamn (t.ex. HTTP/service.example.com@EXAMPLE.COM). Du kan även generera keytab-filer med ktpass-verktyget, i vilket fall du kan använda båda typerna av huvudnamn.

    <JDK_HOME>/bin/ktab -k E:/tmp/tabsrv.keytab -a tabsrv@EXAMPLE.COM

    Tableau Server använder Kör som tjänst-kontot och tillhörande keytab-fil för att autentisera och göra en direktanslutning till databasen.

  3. Kopiera keytab-filen till Tableau Server-datakatalogen och verifiera att Kör som tjänst-kontot har åtkomst till och kan läsa keytab-filen. Tableau Server-datakatalogen är som standard C:\ProgramData\Tableau. Om du kör Tableau Server i en distribuerad driftsättning, så genomför det här steget på varje nod i klustret.

  4. Skapa en krb5.conf-fil och installera i C:\Windows på alla Tableau Server-noder.

    Om du redan har distribuerat en krb5.ini-fil på datorer i din organisation, så kopiera den filen och använd den för Tableau Server. Mer information finns i avsnittet om MIT Kerberos-dokumentationen, krb5.conf(Länken öppnas i ett nytt fönster).

    Om du vill ändra konfigurationsfilens plats för Kerberos kör du följande TSM-kommando:

    tsm configuration set -k native_api.kerberos_config_path --force-keys -v "C:\temp\krb5.ini"

    Det följande är ett exempel på en krb5.conf-fil. Tableau Support kan inte hjälpa till med att skapa en krb5.conf-fil.

    [libdefaults]
    forwardable = true
    default_realm = EXAMPLE.COM
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc.example.com
    admin_server = kdc.example.com
    }
    
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM
  5. Aktivera Kerberos-delegering genom att köra följande TSM-kommandon, ange delegeringstjänstkontot och associera keytab-filen till tjänstkontot:

    tsm configuration set -k wgserver.delegation.enabled -v true
    tsm configuration set -k native_api.datasource_impersonation_runas_principal -v tabsrv@EXAMPLE.COM
    tsm configuration set -k native_api.datasource_impersonation_runas_keytab_path -v <path-to-file>kerberos.keytab
    tsm configuration set -k native_api.protocol_transition_a_d_short_domain -v false
    tsm configuration set -k native_api.protocol_transition_uppercase_realm -v true

    I vissa fall kan TSM returnera ett fel som nämner --force-keys. Om du ställs inför det här felet, så kör kommandot igen med parametern --force-keys kopplad till argumentet.

  6. Kör följande TSM-kommando som tillämpar ändringarna på Tableau Server:

    tsm pending-changes apply

    Om de väntande ändringarna kräver att servern startas om visar kommandot pending-changes apply en kommandotolk så att du vet att en omstart kommer att ske. Kommandotolken visas även om servern stoppas, men i så fall sker ingen omstart. Du kan utelämna tolken med alternativet --ignore-prompt, men det påverkar inte omstartsbeteendet. Om ändringarna inte kräver omstart används de utan någon kommandotolk. Du hittar mer information i tsm pending-changes apply.

Tack för din feedback!Din feedback har skickats in. Tack!