Abilitare la delega Kerberos per i connettori JDBC

A partire dalla versione 2020.2, Tableau Server supporta la delega Kerberos per i connettori JDBC.

La delega Kerberos consente a Tableau Server di utilizzare le credenziali Kerberos del visualizzatore di una cartella di lavoro o vista per eseguire una query per conto del visualizzatore. Ciò è utile nelle situazioni seguenti:

  • Devi sapere chi accede ai dati (il nome del visualizzatore comparirà nei registri di accesso per l’origine dati).

  • L’origine dati ha una sicurezza a livello di riga, in cui utenti diversi hanno accesso a righe diverse.

Origini dati supportate

Tableau supporta l’autenticazione RunAs di Kerberos JDBC con le seguenti origini dati:

  • Oracle
  • PostgreSQL

Se stai configurando la delega con un’origine dati Oracle utilizzando un connettore basato su JDBC, segui la procedura in questo argomento. In alternativa, se il connettore in esecuzione su Tableau Server utilizza un driver nativo, segui la procedura nell’argomento della Guida Attivare la delegazione Kerberos.

Requisiti

La delegazione Kerberos richiede Active Directory.

  • Per utilizzare LDAP - Active Directory devi configurare l’archivio di informazioni di Tableau Server.
  • Il MIT KDC non è supportato.

Nota: non è necessario abilitare l’account Esegui come in modo che operi come il sistema operativo.

Processo di configurazione

In questa sezione viene fornito un esempio del processo per abilitare la delegazione Kerberos.

  1. Server Tableau necessita di un ticket di servizio Kerberos per la delegazione per conto dell’utente che sta avviando la chiamata al database. Devi creare un account di dominio che verrà utilizzato per la delegazione al database specificato. Questo account viene definito account di servizio Esegui come. In questo argomento, l’utente di esempio configurato come account Esegui come è tabsrv@EXAMPLE.COM.

    L’account deve essere configurato per la delega in Active Directory:

    1. In un server Windows connesso al dominio utente, apri Utenti e computer di Active Directory.
    2. Nella pagina Proprietà dell’account di servizio Esegui come, fai clic sulla scheda Delega e seleziona Utente attendibile per la delega solo ai servizi specificati e Utilizza un qualsiasi protocollo di autenticazione.
  2. Crea un file keytab per l’account di servizio Esegui come.

    Nell’esempio seguente viene utilizzato lo strumento ktab fornito con il JDK. Puoi scaricare lo strumento da AdoptOpenJDK(Il collegamento viene aperto in una nuova finestra). Quando usi ktab per creare il keytab, utilizza un’entità di accesso in formato UPN (ad esempio, service@EXAMPLE.COM) anziché un nome dell’entità servizio (ad esempio, HTTP/service.example.com@EXAMPLE.COM). Puoi anche generare file keytab con l’utilità ktpass, nel qual caso puoi usare entrambi gli stili per i nomi di entità.

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

    Tableau Server utilizzerà l’account di servizio Esegui come e il keytab associato per l’autenticazione e per creare una connessione diretta al database.

  3. Copia il file keytab nella directory dei dati di Tableau Server e verifica che l’account servizio Esegui come possa accedere e leggere il file keytab. Per impostazione predefinita, la directory dei dati di Tableau Server è C:\ProgramData\Tableau. Se esegui Tableau Server in una distribuzione distribuita, esegui questa procedura in ogni nodo del cluster.

  4. Crea un file krb5.conf e installalo in C:\Windows su tutti i nodi di Tableau Server.

    Se hai già un file krb5.ini distribuito nei computer della tua organizzazione, copia tale file e utilizzalo per Tableau Server. Per maggiori informazioni, consulta l’argomento krb5.conf(Il collegamento viene aperto in una nuova finestra) della documentazione di MIT Kerberos.

    Per modificare la posizione del file di configurazione Kerberos, esegui il seguente comando TSM:

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

    Di seguito è riportato un esempio di file krb5.conf. L’assistenza di Tableau non può fornire supporto per la creazione di file krb5.conf.

    [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. Esegui i comandi TSM seguenti per attivare la delegazione Kerberos, impostare l’account di servizio di delegazione e associare il file keytab all’account di servizio:

    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

    In alcuni casi, TSM potrebbe restituire un errore che riporta --force-keys. Se visualizzi questo errore, esegui di nuovo il comando con il parametro --force-keys aggiunto all’argomento.

  6. Esegui il seguente comando TSM per applicare le modifiche a Tableau Server:

    tsm pending-changes apply

    Se le modifiche in sospeso richiedono il riavvio del server, il comando pending-changes apply visualizzerà un messaggio per segnalare che verrà eseguito un riavvio. Questo messaggio viene visualizzato anche se il server è stato arrestato, ma in questo caso il riavvio non viene eseguito. Puoi eliminare la richiesta usando l’opzione --ignore-prompt, ma questo non modifica il comportamento del riavvio. Se le modifiche non richiedono un riavvio, vengono applicate senza visualizzare alcun messaggio. Per maggiori informazioni, consulta tsm pending-changes apply.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!