Prima di configurare SAML in Tableau Server, verifica che l'ambiente soddisfi i requisiti.

Importante: per le configurazioni SAML, sia con l'IdP che in Tableau Server, viene applicata la distinzione tra maiuscole e minuscole. Ad esempio, gli URL configurati con l'IdP e in Tableau Server devono corrispondere esattamente.

Requisiti del certificato e dell'identity provider (IdP)

Per configurare Tableau Server per SAML, ti servono i seguenti requisiti:

  • File di certificato. File di certificato x509 con codifica PEM ed estensione .crt. Questo file viene utilizzato da Tableau Server, non dall'IdP. Se hai un certificato SSL, in alcune circostanze puoi utilizzare lo stesso certificato con SAML. Per ulteriori informazioni, vedi Utilizzo del certificato SSL e dei file chiave per SAML più avanti in questo articolo.

    Tableau Server richiede una coppia certificato-chiave per firmare la richiesta che viene inviata all'IdP. Ciò riduce la minaccia di un attacco man-in-the-middle, data la difficoltà di falsificare una richiesta firmata. Inoltre, Tableau Server verifica che la risposta AuthNResponse che riceve provenga dall'IdP attendibile. Tableau Server verifica la risposta AuthNResponse utilizzando la firma fornita dall'IdP. I metadati del certificato IdP vengono forniti a Tableau Server nell'ambito del processo di configurazione iniziale di SAML.

    Le richieste firmate non sono sempre necessarie per tutti gli IdP. Per impostazione predefinita, Tableau Server richiede richieste firmate. È consigliabile mantenere questa configurazione per garantire una trasmissione delle comunicazioni più sicura con l'IdP. Collabora con il team IdP per determinare se è necessario disabilitare le richieste firmate. Per disabilitare le richieste firmate, consulta Entità samlSettings.

  • Algoritmo di firma. Il certificato deve utilizzare un algoritmo di firma sicuro, ad esempio SHA-256. Se tenti di configurare Tableau Server per SAML con un certificato che utilizza l'hash della firma SHA-1, Tableau Server rifiuterà il certificato. Puoi configurare Tableau Server per accettare l'hash SHA-1 meno sicuro impostando la chiave di configurazione tsm wgserver.saml.blocklisted_digest_algorithms.

  • Dimensioni della chiave RSA e della curva ECDSA. Il certificato di Tableau Server deve avere una complessità della chiave RSA di 2048 e il certificato IdP deve avere una complessità della chiave RSA di 2048 o una dimensione della curva ECDSA di 256.

    Puoi configurare Tableau Server per accettare le dimensioni meno sicure impostando le rispettive chiavi di configurazione, wgserver.saml.min_allowed.rsa_key_size e wgserver.saml.min_allowed.elliptic_curve_size.

  • File chiave del certificato. Un file chiave privato RSA o DSA con l'estensione .key. Le chiavi RSA devono essere in formato PKCS#1 o PKCS#8.

    I requisiti per la protezione con password sono i seguenti:

    • Il file PKCS#1 della chiave RSA non può essere protetto da password.
    • Per utilizzare un file chiave protetto da password, devi configurare SAML con un file RSA PKCS#8. Nota: i file PKCS#8 con una password vuota non sono supportati.

    • I file chiave protetti da password non sono supportati nelle distribuzioni SAML specifiche del sito.

    Riepilogo del supporto

    Formato di file chiave Supporto per SAML a livello di server Supporto per SAML a livello di sito
    PKCS#8 RSA No
    PKCS#8 (nessuna password/Null) No No
    PKCS#1 RSA
    PKCS#1 RSA (password) No No
    PKCS#1 DSA (password) No No
  • L'IdP deve firmare le asserzioni SAML con un algoritmo di firma sicuro. Per impostazione predefinita, Tableau Server rifiuterà le asserzioni SAML firmate con l'algoritmo SHA-1. Puoi configurare Tableau Server per accettare le asserzioni firmate con l'hash SHA-1 meno sicuro impostando la chiave di configurazione tsm wgserver.saml.blocklisted_digest_algorithms.

  • Account IdP che supporta SAML 2.0 o successive. Necessiti di un account con un fornitore di identità esterno. Alcuni esempi sono PingFederate, SiteMinder e Open AM.

  • Provider IdP che supporta l'importazione e l'esportazione di metadati XML. Anche se un file di metadati creato manualmente potrebbe funzionare, il servizio di assistenza tecnica di Tableau non può aiutare a generare il file o a risolvere i problemi.

  • Nome utente: obbligatorio. La configurazione IdP deve includere l'attributo "nome utente" o la richiesta. Anche l'attributo di configurazione SAML corrispondente su Tableau Server deve essere impostato su "nome utente".

Off-load SSL

Se l'organizzazione interrompe le connessioni SSL dall'IdP a un server proxy prima di inviare la richiesta di autenticazione a Tableau Server, potrebbe essere necessario effettuare una configurazione proxy. In questo scenario, SSL viene "scaricato" sul server proxy, il che significa che la richiesta https viene terminata sul server proxy e quindi inoltrata a Tableau Server tramite http.

Tableau Server convalida il messaggio di risposta SAML restituito dall'IdP. Poiché SSL è scaricato sul proxy, Tableau Server convaliderà con il protocollo che riceve (http), ma la risposta IdP è formattata con https, quindi la convalida avrà esito positivo a meno che il server proxy non includa l'intestazione X-Forwarded-Proto impostato su https. Vedi Configurare Tableau Server per l'utilizzo con un server proxy inverso.

Utilizzo del certificato SSL e dei file chiave per SAML

Se utilizzi un file di certificato x509 con codifica PEM per SSL, puoi utilizzare lo stesso file per SAML. Per SSL, il file di certificato viene utilizzato per crittografare il traffico. Per SAML, il certificato viene utilizzato per l'autenticazione.

Oltre ai requisiti indicati nella precedente sezione Requisiti del certificato e dell'identity provider (IdP), per utilizzare lo stesso certificato per SSL e SAML, è necessario che il certificato soddisfi la condizione seguenti per il funzionamento di SAML:

  • Verifica che il certificato includa solo il certificato che si applica a Tableau Server e non ad altri certificati o chiavi.

    A tale scopo, puoi creare una copia di backup del file di certificato e quindi aprire la copia in un editor di testo per visualizzarne il contenuto.

Requisiti per la gestione degli utenti

Quando attivi SAML, l'autenticazione degli utenti viene eseguita all'esterno di Tableau, dall'IdP. Tuttavia, la gestione degli utenti viene effettuata da un archivio di identità: un archivio di identità esterno (Active Directory o LDAP) o da Tableau Server in un archivio di identità locale. Per maggiori informazioni sulla pianificazione della gestione degli utenti con Tableau Server, consulta Archivio di identità.

Quando configuri l'archivio di identità durante l'installazione, devi selezionare l'opzione che riflette la modalità in cui utilizzare SAML. Se desideri utilizzare lo standard SAML specifico del sito, devi configurare SAML su tutto il server prima di configurare i singoli siti.

  • Per l'autenticazione SAML specifica del sito: se hai più siti in Tableau Server e desideri configurare ogni sito per un IdP o un'applicazione IdP specifici (oppure configurare alcuni siti in modo che non utilizzino SAML), configura Tableau Server in modo da gestire gli utenti con un archivio di identità locale. Per l'autenticazione SAML specifica del sito, Tableau Server utilizza l'IdP per l'autenticazione e non utilizza password.

  • Per l'autenticazione SAML a livello di server: se configuri SAML a livello di server con un solo IdP, puoi configurare Tableau Server in modo da utilizzare l'archivio di identità locale o un archivio di identità esterno. Se utilizzi Active Directory, devi disabilitare l'opzione Abilita accesso automatico.

  • Autenticazione SAML per tutto il server e autenticazione SAML specifica del sito. In un ambiente multi-sito, tutti gli utenti eseguono l'autenticazione attraverso un IdP SAML configurato a livello di sito. In questo scenario, viene specificato un IdP SAML predefinito a livello di server per gli utenti che appartengono a più siti. Per configurare questo scenario, Tableau Server deve essere configurato con un archivio di identità locale.

Nota: l'API REST e tabcmd non supportano l'autenticazione SAML SSO. Per effettuare l'accesso, devi specificare il nome e la password di un utente creato nel server. L'utente può essere gestito dall'archivio di identità locale o da un archivio di identità esterno, a seconda di come è stato configurato Tableau Server. Per Tableau Cloud, puoi specificare le credenziali TableauID dell'utente. Le chiamate dell'API REST o tabcmd avranno le autorizzazioni dell'utente con cui hai eseguito l'accesso.

Note di compatibilità e requisiti di SAML

  • Nomi utente corrispondenti: il nome utente archiviato in Tableau Server deve corrispondere all'attributo del nome utente configurato inviato dall'IdP nell'asserzione SAML. Per impostazione predefinita, Tableau Server prevede che l'asserzione in entrata contenga un attributo denominato "username" con le informazioni relative all'utente. Ad esempio, se il nome utente di Rosa Bianchi è archiviato in PingFederate come rbianchi, deve essere archiviato anche in Tableau Server come rbianchi.

    Quando si configura SAML durante l'autenticazione

    Se configuri SAML come parte della configurazione iniziale di Tableau Server, verifica che l'account che prevedi di utilizzare esista nel tuo IdP prima di eseguire la configurazione. Durante la configurazione di Tableau Server crei l'account dell'amministratore server.

    Quando si eseguono più domini

    Se utilizzi un archivio di identità esterno Active Directory o LDAP e hai più domini (ovvero gli utenti appartengono a più domini oppure la tua installazione di Tableau Server include più domini), l'IdP deve inviare gli attributi del nome utente e del dominio per un utente nell'asserzione SAML. Entrambi questi attributi di nome utente e dominio devono corrispondere esattamente al nome utente e al dominio archiviati in Tableau Server. Esegui una di queste operazioni:

    • Imposta domain\username nel campo nome utente.
    • Imposta il dominio nel campo dominio e imposta il nome utente nel campo nome utente.

    Quando imposti l'attributo di dominio, puoi utilizzare il nome di dominio completo (FQDN) o il nome breve.

    Se il dominio non è specificato, sarà considerato il dominio predefinito.

    Per maggiori informazioni, consulta Supporto per più domini e la sezione relativa alla corrispondenza delle asserzioni nella scheda Usare l'interfaccia della riga di comando di TSM di Configurare SAML a livello di server.

  • Algoritmo di firma: Tableau Server utilizza l'algoritmo di firma SHA256.

  • Single logout (SLO): Tableau Server supporta SLO avviato dal provider di servizi (SP) e avviato dal provider di identità (IdP), sia per SAML a livello di server che per SAML specifico del sito.

  • Tipi di autenticazione esterna: Tableau Server supporta l'utilizzo di un tipo di autenticazione esterno alla volta.

  • Autenticazione SSL reciproca: Tableau Server non supporta l'autenticazione SSL reciproca (SSL bidirezionale) e SAML insieme. Se desideri utilizzare l'autenticazione SSL reciproca, puoi configurarla nell'IdP.

  • Codifica delle asserzioni: le asserzioni devono avere la codifica UTF-8.

  • Crittografia e asserzioni SAML: se configurato per SAML a livello di server, Tableau Server supporta le asserzioni crittografate dall'IdP. Le asserzioni di crittografia sono abilitate dal certificato caricato durante la configurazione iniziale per SAML a livello di server.

    Se configurato per SAML specifico del sito, Tableau Server non supporta le asserzioni crittografate dall'IdP. Tuttavia, tutte le richieste e le risposte SAML vengono inviate tramite HTTPS.

  • Identità dell'utente in Tableau Server per utenti tabcmd: Come descritto nella sezione precedente Requisiti per la gestione degli utenti, devi accedere come un utente definito nel server. Non puoi utilizzare account SAML con tabcmd.

  • Utilizzo dell'accesso SSO SAML con Tableau Desktop: per impostazione predefinita, Tableau Desktop consente l'autenticazione SAML avviata dal provider di servizi.

    Se il tuo IdP non supporta questa funzionalità, puoi disabilitare l'accesso SAML per Tableau Desktop utilizzando il comando seguente:

    tsm authentication saml configure --desktop-access disable

    Per ulteriori informazioni, vedi tsm authentication saml <comandi>.

  • Installazioni distribuite: le versioni TSM di Tableau Server (2018.2 e successive) utilizzano Servizio file client per condividere i file in un cluster multi-nodo. Dopo aver configurato SAML sul nodo iniziale del cluster, Servizio file client distribuirà i file dei certificati e delle chiavi agli altri nodi.

  • URL di accesso: per rendere possibile l'accesso a gli utenti, devi configurare il tuo IdP con l'endpoint di accesso SAML che invia una richiesta POST all'URL seguente:

    https://<tableauserver>/wg/saml/SSO/index.html.

  • URL di disconnessione: per consentire agli utenti di disconnettersi dopo l'accesso con SAML (disconnessione singola o SLO) devi configurare l'account IdP con un endpoint di disconnessione SAML che invia una richiesta POST all'URL seguente:

    https://<tableauserver>/wg/saml/SingleLogout/index.html.

    Nota: Tableau Server supporta SLO avviato dal provider di servizi (SP) e avviato dal provider di identità (IdP), sia per SAML a livello di server che per SAML specifico del sito.

  • URL di reindirizzamento successivo alla disconnessione: per impostazione predefinita, quando un utente si disconnette da Tableau Server, viene visualizzata la pagina di accesso. 

    Per visualizzare una pagina diversa dopo la disconnessione, utilizzare il comando tsm authentication saml configure con l'opzione -su o --signout-url.

    • Per specificare un URL assoluto, utilizza un URL completamente qualificato che inizia con http:// o https://, come in questo esempio:

      tsm authentication saml configure -su https://example.com

    • Per specificare un URL relativo all'host di Tableau Server, utilizza una pagina che inizia con una / (barra):

      tsm authentication saml configure -su /ourlogoutpage.html

  • Active Directory Federation Service (AD FS): devi configurare AD FS in modo che restituisca ulteriori attributi per l'autenticazione su Tableau con SAML. Gli attributi ID nome e nome utente possono essere mappati verso lo stesso attributo AD: SAM-Nome-Account.

    Per informazioni sulla configurazione, vedi Configurare SAML con AD FS su Tableau Server.

  • AuthNContextClassRef: AuthNContextClassRef è un attributo SAML facoltativo che applica la convalida di determinati "contesti" di autenticazione nei flussi avviati dall'IdP. È possibile impostare valori separati da virgole per questo attributo con TSM. Quando questo attributo è impostato, Tableau Server verifica che la risposta SAML contenga almeno uno dei valori elencati. Se la risposta SAML non contiene uno dei valori configurati, l'autenticazione verrà rifiutata, anche se l'utente ha eseguito correttamente l'autenticazione con l'IdP.

    Se si lascia vuoto questo attributo facoltativo, verrà applicato il comportamento predefinito: qualsiasi risposta SAML autenticata correttamente comporterà la concessione a un utente di una sessione in Tableau Server.

    Questo valore viene valutato solo per SAML a livello di server. Se SAML è configurato a livello di sito, l'attributo AuthNContextClassRef verrà ignorato.

    Per impostare questo valore con l'interfaccia Web di TSM, consulta Configurare SAML a livello di server.

    Per impostare questo valore con tsm configuration set, utilizza la chiave wgserver.saml.authcontexts per impostare un elenco di valori separati da virgole.

    Per impostare questo valore con un file di configurazione JSON, consulta Entità samlSettings.

Utilizzare SSO SAML con applicazioni client Tableau

Gli utenti di Tableau Server con credenziali SAML possono accedere al server da Tableau Desktop o dall'app Tableau Mobile. Per la compatibilità completa, è consigliabile che la versione dell'applicazione client Tableau corrisponda a quella presente sul server. Per connettersi tramite SAML specifica del sito, è necessario che gli utenti eseguano la versione 10.0 o successiva dell'applicazione client Tableau.

La connessione a Tableau Server da Tableau Desktop o Tableau Mobile utilizza una connessione avviata dal provider di servizi (SP).

Reindirizzare gli utenti autenticati ai client Tableau

Quando un utente accede a Tableau Server, Tableau Server invia una richiesta SAML (AuthnRequest) all'IdP includendo il valore RelayState dell'applicazione Tableau. Se l'utente ha effettuato l'accesso a Tableau Server da un client Tableau come Tableau Desktop o Tableau Mobile, è importante che il valore RelayState sia restituito all'interno della risposta SAML dell'IdP a Tableau.

Quando il valore RelayState non viene restituito correttamente in questo scenario, l'utente passa alla sua home page di Tableau Server nel browser Web, invece di essere reindirizzato all'applicazione da cui ha effettuato l'accesso.

Lavora con il tuo provider di identità e il team IT interno per assicurarti di includere questo valore come parte della risposta SAML dell'IdP e quindi preservarlo da qualsiasi dispositivo di rete (come un proxy o un load balancer) tra l'IdP e Tableau Server.

Requisiti per i dati XML

Nell'ambito della configurazione SAML, scambi metadati XML tra Tableau Server e l'IdP. I metadati XML vengono utilizzati per verificare le informazioni di autenticazione di un utente quando questo avvia il processo di accesso a Tableau Server.

Tableau Server e l'IdP generano ognuno i propri metadati. Ogni insieme di metadati deve contenere le informazioni descritte nell'elenco seguente. Se da uno degli insiemi mancano informazioni, possono verificarsi errori durante la configurazione SAML o durante il tentativo di accesso degli utenti.

  • HTTP POST: Tableau Server supporta solo richieste HTTP POST per le comunicazioni SAML. HTTP Redirect non è supportato.

  • Con l'attributo Binding impostato su HTTP-POST, i metadati SAML esportati da Tableau Server e dall'IdP devono contenere gli elementi seguenti.

    • L'elemento che specifica l'URL verso cui l'IdP reindirizza al termine di un'autenticazione riuscita. Questo è richiesto nei metadati del provider di servizi, non nei metadati del provider di identità.

      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://<tableau-server>/wg/saml/SSO/index.html index="0" isDefault="true"/>

      Per il SAML del sito, l'endpoint Location è /samlservice/public/sp/metadata?alias=<site alias>.

    • Questo endpoint di disconnessione viene visualizzato nei metadati di Tableau Server e specifica l'URL che l'IdP utilizzerà per l'endpoint di disconnessione di Tableau Server. Se questo elemento non è presente nei metadati IdP, Tableau Server non può negoziare un endpoint di disconnessione con l'IdP e la funzionalità di disconnessione da SAML non sarà disponibile in Tableau Server:

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"

      Nota: SLO avviato dal provider di servizi è supportato sia per SAML a livello di server che specifico del sito. Tuttavia, SLO avviato dall'IdP non è supportato.

    • Verifica che il codice XML dei metadati dal IdP includa un elemento SingleSignOnService, in cui l'associazione sia impostata su HTTP-POST, come nell'esempio seguente:

      <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/SSO.saml2"/>

    • Questo elemento dovrebbe apparire nei metadati dell'IdP e specifica l'URL che Tableau Server utilizzerà per l'endpoint di disconnessione dell'IdP.

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"/>

  • Attributo nome utente: devi configurare l'IdP in modo che restituisca un'asserzione che include l'attributo username nell'elemento saml:AttributeStatement. Il tipo di attributo dell'asserzione deve essere xs:string (non deve essere digitato come xs:any).

    L'esempio seguente mostra un possibile risultato.

    <saml:Assertion assertion-element-attributes>
      <saml:Issuer>issuer-information</saml:Issuer>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        ...
      </Signature>
      <saml:Subject>
        ...
      </saml:Subject>
      <saml:Conditions condition-attributes >
        ...
      </saml:Conditions>
      <saml:AuthnStatement authn-statement-attributes >
        ...
      </saml:AuthnStatement>
    
      <saml:AttributeStatement>
        <saml:Attribute Name="username" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
              user-name
        </saml:AttributeValue>
        </saml:Attribute>
      </saml:AttributeStatement>
    </saml:Assertion>

    Per impostazione predefinita, Tableau Server leggerà l'attributo username nell'elemento AuthNResponse restituito dall'IdP. Tuttavia, alcuni IdP possono restituire un attributo diverso con lo scopo di identificare l'utente.

    Per modificare l'attributo SAML che passa il valore username, esegui il comando di TSM seguente:

    tsm authentication saml map-assertions --user-name <USER-NAME>.

    Consulta tsm authentication.

Grazie per il tuo feedback.