Appendice - Livello Web con distribuzione di esempio di Apache

Questo argomento fornisce una procedura end-to-end che descrive come implementare il livello Web nell’architettura di riferimento AWS. La configurazione di esempio è composta dai seguenti componenti:

  • Servizio di bilanciamento del carico dell’applicazione AWS
  • Server proxy Apache
  • Modulo di autenticazione Mellon
  • IdP Okta
  • Autenticazione SAML

Nota: la configurazione del livello Web di esempio presentata in questa sezione include procedure dettagliate per la distribuzione di software e servizi di terze parti. Abbiamo fatto del nostro meglio per verificare e documentare le procedure necessarie per abilitare lo scenario del livello Web. Tuttavia, il software di terze parti potrebbe cambiare o lo scenario potrebbe differire dall’architettura di riferimento descritta in questo documento. Fai riferimento alla documentazione di terze parti per i dettagli della configurazione e il supporto.

Gli esempi relativi a Linux in questa sezione mostrano i comandi per le distribuzioni di tipo RHEL. In particolare, i comandi riportati di seguito sono stati sviluppati con la distribuzione Amazon Linux 2. Se esegui una distribuzione di Ubuntu, modifica i comandi di conseguenza.

La distribuzione del livello Web in questo esempio adotta una configurazione graduale e una procedura di verifica. La configurazione principale del livello Web comprende le fasi seguenti per abilitare HTTP tra Tableau e Internet. Apache viene eseguito e configurato per il proxy inverso/bilanciamento del carico dietro il servizio di bilanciamento del carico dell’applicazione AWS:

  1. Installare Apache
  2. Configurare il proxy inverso per testare la connettività verso Tableau Server
  3. Configurare il bilanciamento del carico sul proxy
  4. Configurare il servizio di bilanciamento del carico dell’applicazione AWS

Dopo aver configurato il livello Web e verificato la connettività con Tableau, configura l’autenticazione con un provider esterno.

Installare Apache

Esegui questa procedura su entrambi gli host EC2 (Proxy 1 e Proxy 2). Se stai eseguendo la distribuzione in AWS secondo l’esempio dell’architettura di riferimento, dovrebbero essere presenti due aree di disponibilità con un singolo server proxy in ogni area.

  1. Installa Apache:

    sudo yum update -y
    sudo yum install -y httpd
  2. Configura l’avvio di Apache al riavvio:

    sudo systemctl enable --now httpd

  3. Verifica che la versione di httpd che hai installato includaproxy_hcheck_module:

    sudo httpd -M

    proxy_hcheck_module è obbligatorio. Se la tua versione di httpd non include questo modulo, esegui l’aggiornamento a una versione di httpd che lo includa.

Configurare il proxy per testare la connettività verso Tableau Server

Esegui questa procedura su uno degli host proxy (Proxy 1). Lo scopo di questa fase è verificare la connettività tra Internet, il server proxy e Tableau Server nel gruppo di sicurezza privato.

  1. Crea un file denominato tableau.conf e aggiungilo alla directory /etc/httpd/conf.d.

    Copia il codice seguente e specifica le chiavi ProxyPass e ProxyPassReverse con l’indirizzo IP privato del Nodo 1 di Tableau Server.

    Importante: la configurazione mostrata di seguito non è sicura e non deve essere utilizzata in produzione. Questa configurazione deve essere utilizzata solo durante il processo di installazione per verificare la connettività end-to-end.

    Ad esempio, se l’indirizzo IP privato del Nodo 1 è 10.0.30.32, il contenuto del file tableau.conf sarà:

    <VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass "/" "http://10.0.30.32:80/"
    ProxyPassReverse "/" "http://10.0.30.32:80/"
    </VirtualHost>
  2. Riavvia httpd:

    sudo systemctl restart httpd

Verifica: configurazione della topologia di base

Dovresti essere in grado di accedere alla pagina di amministrazione di Tableau Server visitando http://<proxy-public-IP-address>.

Se la pagina di accesso di Tableau Server non viene caricata nel browser, segui queste fasi per la risoluzione dei problemi nell’host Proxy 1:

  • Arresta e quindi avvia httpd come prima fase per la risoluzione dei problemi.
  • Controlla il file tableau.conf. Verifica che l’IP privato di Nodo 1 sia corretto. Verifica le virgolette doppie e controlla attentamente la sintassi.
  • Esegui il comando curl sul server proxy inverso con l’indirizzo IP privato di Nodo 1, ad esempio curl 10.0.1.90. Se la shell non restituisce codice html, o se restituisce il codice html per la pagina Web di test di Apache, verifica la configurazione di protocollo/porta tra i gruppi di sicurezza Pubblico e Privato.
  • Esegui il comando curl con l’indirizzo IP privato di Proxy 1, ad esempio curl 10.0.0.163. Se la shell restituisce il codice html per la pagina Web di test di Apache, il file proxy non è configurato correttamente.
  • Riavvia sempre httpd (sudo systemctl restart httpd) dopo ogni modifica della configurazione del file proxy o dei gruppi di sicurezza.
  • Assicurati che TSM sia in esecuzione su Nodo 1.

Configurare il bilanciamento del carico sul proxy

  1. Sullo stesso host proxy (Proxy 1) in cui hai creato il file tableau.conf, rimuovi la configurazione dell’host virtuale esistente e modifica il file per includere la logica di bilanciamento del carico.

    Ad esempio:

    <VirtualHost *:80>
    ServerAdmin admin@example.com
    #Load balancing logic.
    ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    <Proxy balancer://tableau>
    #Replace IP addresses below with the IP addresses to the Tableau Servers running the Gateway service.
    BalancerMember http://10.0.3.40/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    BalancerMember http://10.0.4.151/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    ProxySet stickysession=ROUTEID
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / balancer://tableau/
    ProxyPassReverse / balancer://tableau/ 
    </VirtualHost>
  2. Arresta e quindi avvia httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifica la configurazione visitando l’indirizzo IP pubblico del Proxy 1.

Copiare la configurazione sul secondo server proxy

  1. Copia il file tableau.conf da Proxy 1 e salvalo nella directory /etc/httpd/conf.d sull’host Proxy 2.
  2. Arresta e quindi avvia httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifica la configurazione visitando l’indirizzo IP pubblico del Proxy 2.

Configurare il servizio di bilanciamento del carico dell’applicazione AWS

Configura il servizio di bilanciamento del carico come un listener HTTP. La procedura seguente descrive come aggiungere un servizio di bilanciamento del carico in AWS.

Fase 1. Creare un gruppo di destinazione

Un gruppo di destinazione è una configurazione di AWS che definisce le istanze EC2 che eseguono i server proxy. Questi sono le destinazioni per il traffico da LBS.

  1. EC2 > Gruppi di destinazione > Crea gruppo di destinazione

  2. Nella pagina Crea:

    • Inserisci un nome per il gruppo di destinazione, ad esempio TG-internal-HTTP
    • Tipo di destinazione: istanze
    • Protocollo: HTTP
    • Porta: 80
    • VPC: seleziona il VPC
    • In Controlli di integrità > Impostazioni avanzate controlli di integrità > Codici di riuscita aggiungi la lista dei codici da leggere:200,303.
    • Fai clic su Crea.
  3. Seleziona il gruppo di destinazione appena creato, quindi fai clic sulla scheda Destinazione

    • Fai clic su Modifica.
    • Seleziona le istanze EC2 (o una singola istanza se ne stai configurando una alla volta) che eseguono l’applicazione proxy, quindi fai clic su Aggiungi a registrati.
    • Fai clic su Salva.

Fase 2. Avviare la procedura guidata per il servizio di bilanciamento del carico

  1. EC2 > Servizi di bilanciamento del carico > Crea servizio di bilanciamento del carico

  2. Nella pagina "Seleziona il tipo di servizio di bilanciamento del carico" crea un servizio di bilanciamento del carico dell’applicazione.

Nota: l’interfaccia utente visualizzata per configurare il servizio di bilanciamento del carico non è uniforme tra i data center AWS. La procedura seguente, "Configurazione tramite procedura guidata", è associata alla procedura guidata di configurazione di AWS che inizia con Fase 1. Configurare il servizio di bilanciamento del carico

Se il tuo data center visualizza tutte le configurazioni in un’unica pagina che include un pulsante Crea servizio di bilanciamento del carico nella parte inferiore, segui la procedura "Configurazione con pagina singola" di seguito.

  1. Pagina Configura servizio di bilanciamento del carico:

    • Specifica il nome
    • Schema: internet-facing (predefinito)
    • Tipo di indirizzo IP: ipv4 (predefinito)
    • Listener (Listener e routing):
      1. mantieni il listener HTTP predefinito
      2. Fai clic su Aggiungi listener, quindi aggiungi HTTPS:443
    • VPC: seleziona il VPC in cui hai installato tutti i componenti
    • Aree di disponibilità:
      • Seleziona a e b per le regioni del data center
      • In ogni selettore a discesa corrispondente, seleziona la subnet pubblica (in cui risiedono i server proxy).
    • Fai clic su Configura impostazioni di sicurezza
  2. Pagina Configura impostazioni di sicurezza

    • Carica il certificato SSL pubblico.
    • Fai clic su Avanti: Configura gruppi di sicurezza.
  3. Pagina Configura gruppi di sicurezza:

    • Seleziona il gruppo di sicurezza Pubblico. Se è selezionato il gruppo di sicurezza Predefinito, deselezionarlo.
    • Fai clic su Avanti: Configura routing.
  4. Pagina Configura routing

    • Gruppo di destinazione: gruppo di destinazione esistente.
    • Nome: seleziona il gruppo di destinazione che hai creato in precedenza
    • Fai clic su Avanti: Registra destinazioni.
  5. Pagina Registra destinazioni

    • Dovrebbero essere visualizzate le due istanze del server proxy configurate in precedenza.
    • Fai clic su Avanti: Verifica.
  6. Pagina Verifica

    Fai clic su Crea.

Configurazione di base

  • Specifica il nome
  • Schema: internet-facing (predefinito)
  • Tipo di indirizzo IP: ipv4 (predefinito)

Mapping di rete

  • VPC: seleziona il VPC in cui hai installato tutti i componenti
  • Mapping:
    • seleziona le aree di disponibilità a e b (o equivalenti) per le regioni del data center
    • In ogni selettore a discesa corrispondente, seleziona la subnet pubblica (in cui risiedono i server proxy).

Gruppi di sicurezza

  • Seleziona il gruppo di sicurezza Pubblico. Se è selezionato il gruppo di sicurezza Predefinito, deselezionarlo.
  • Listener e routing

    • Mantieni il listener HTTP predefinito. Per Azione predefinita specifica il gruppo di destinazione impostato precedentemente.
    • Fai clic su Aggiungi listener, quindi aggiungi HTTPS:443. Per Azione predefinita specifica il gruppo di destinazione impostato precedentemente.

    Impostazioni del listener sicure

    • Carica il certificato SSL pubblico.

    Fai clic su Crea servizio di bilanciamento del carico.

    Fase 3. Abilitare la persistenza

    1. Dopo aver creato il servizio di bilanciamento del carico, è necessario abilitare la persistenza per il gruppo di destinazione.

      • Apri la pagina del gruppo di destinazione AWS (EC2 > Bilanciamento del carico > Gruppi di destinazione), quindi seleziona l’istanza del gruppo di destinazione appena configurata. Nel menu Azione seleziona Modifica attributi.
      • Nella pagina Modifica attributi seleziona Persistenza, specifica una durata di 1 day, quindi scegli Salva modifiche.
    2. Nel servizio di bilanciamento del carico, abilita la persistenza sul listener HTTP. Seleziona il servizio di bilanciamento del carico appena configurato, quindi fai clic sulla scheda Listener:

      • Per HTTP:80, fai clic su Visualizza/modifica regole. Nella pagina Regole visualizzata fai clic sull’icona di modifica (una volta nella parte superiore della pagina e quindi di nuovo accanto alla regola) per modificare la regola. Elimina la regola THEN esistente e sostituiscila facendo clic su Aggiungi azione > Inoltra a.... Nella configurazione THEN risultante specifica lo stesso gruppo di destinazione che hai creato. In Persistenza a livello di gruppo abilita la persistenza e imposta la durata su 1 giorno. Salva l’impostazione, quindi fai clic su Aggiorna.

    Fase 4. Impostare il timeout di inattività sul sistema di bilanciamento del carico

    Nel servizio di bilanciamento del carico aggiorna il timeout di inattività a 400 secondi.

    Seleziona il servizio di bilanciamento del carico che hai configurato per questa distribuzione, quindi fai clic su Azioni > Modifica attributi. Imposta Timeout di inattività su 400 secondi, quindi fai clic su Salva.

    Fase 5. Verificare la connettività di LBS

    Apri la pagina del servizio di bilanciamento del carico AWS (EC2 > Servizi di bilanciamento del carico), quindi seleziona l’istanza del servizio di bilanciamento del carico appena configurata.

    In Descrizione copia il nome DNS e incollalo in un browser per accedere alla pagina di accesso di Tableau Server.

    Se viene visualizzato un errore di livello 500, potrebbe essere necessario riavviare i server proxy.

    Aggiornare DNS con l’URL pubblico di Tableau

    Utilizza il nome della zona DNS del tuo dominio dalla descrizione del servizio di bilanciamento del carico AWS per creare un valore CNAME nel DNS. Il traffico verso il tuo URL (tableau.esempio.com) deve essere inviato al nome DNS pubblico di AWS.

    Verificare la connettività

    Al termine degli aggiornamenti del DNS, dovresti essere in grado di accedere alla pagina di accesso di Tableau Server inserendo il tuo URL pubblico, ad esempio https://tableau.example.com.

    Esempio di configurazione dell’autenticazione: SAML con IdP esterno

    L’esempio seguente descrive come impostare e configurare SAML con l’IdP Okta e il modulo di autenticazione Mellon per una distribuzione di Tableau in esecuzione nell’architettura di riferimento AWS. L’esempio descrive come configurare Tableau Server e i server proxy Apache per l’utilizzo di HTTP. Okta invierà la richiesta al sistema di bilanciamento del carico AWS tramite HTTPS, ma tutto il traffico interno sarà trasmesso tramite HTTP. Durante la configurazione per questo scenario, tieni presente i protocolli HTTP e HTTPS quando imposti le stringhe URL.

    Questo esempio utilizza Mellon come modulo del provider di servizi di pre-autenticazione sui server proxy inversi. Questa configurazione garantisce che solo il traffico autenticato si connetta a Tableau Server, che opera anche come provider di servizi con l’IdP Okta. Pertanto, devi configurare due applicazioni IdP: una per il provider di servizi Mellon e una per il provider di servizi Tableau.

    Creare l’account amministratore di Tableau

    Un errore comune durante la configurazione di SAML è dimenticare di creare un account amministratore su Tableau Server prima di abilitare SSO.

    Il primo passaggio consiste nel creare un account su Tableau Server con un ruolo di amministratore del server. Per lo scenario Okta di esempio, il nome utente deve essere in un formato di indirizzo email valido, per esempio, user@example.com. È necessario impostare una password per questo utente, ma la password non verrà utilizzata dopo la configurazione di SAML.

    Configurare l’applicazione di pre-autorizzazione Okta

    Lo scenario end-to-end descritto in questa sezione richiede due applicazioni Okta:

    • Applicazione di pre-autenticazione Okta
    • Applicazione Tableau Server Okta

    Ognuna di queste applicazioni è associata a diversi metadati, che dovrai configurare rispettivamente sul proxy inverso e su Tableau Server.

    Questa procedura descrive come creare e configurare l’applicazione di pre-autenticazione Okta. Più avanti in questo argomento verrà creata l’applicazione Tableau Server Okta. Per un account Okta di prova gratuito con utenti limitati, vedi la pagina Web degli sviluppatori Okta(Il collegamento viene aperto in una nuova finestra) .

    Crea un’integrazione dell’app SAML per il provider di servizi di pre-autenticazione Mellon.

    1. Apri la dashboard di amministrazione di Okta > Applicazioni > Crea integrazione app.

    2. Nella pagina Crea una nuova integrazione app seleziona SAML 2.0, quindi fai clic su Avanti.

    3. Nella scheda Impostazioni generali immetti un nome per l’app, ad esempio Tableau Pre-Auth, quindi fai clic su Avanti.

    4. Nella scheda Configura SAML:

      • URL Single Sign-On (SSO). L’elemento finale del percorso nell’URL Single Sign-On è indicato come MellonEndpointPath nel file di configurazione mellon.conf riportato più avanti in questa procedura. Puoi specificare qualsiasi endpoint desideri. In questo esempio, l’endpoint è sso. L’ultimo elemento, postResponse, è obbligatorio: https://tableau.example.com/sso/postResponse.
      • Deseleziona la casella di controllo: Utilizzalo per URL destinatario e URL di destinazione.
      • URL destinatario: uguale all’URL SSO, ma con HTTP. Ad esempio, http://tableau.example.com/sso/postResponse.
      • URL di destinazione: uguale all’URL SSO, ma con HTTP. Ad esempio, http://tableau.example.com/sso/postResponse.
      • URI destinatario (ID entità del provider di servizi). Ad esempio, https://tableau.example.com.
      • Formato ID nome: EmailAddress
      • Nome utente applicazione: Email
      • Dichiarazioni attributi: Nome = mail; Formato nome = Unspecified; Valore = user.email.

      Fai clic su Avanti.

    5. Nella scheda Feedback seleziona:

      • Sono un cliente Okta che aggiunge un’app interna
      • Questa è un’app interna che abbiamo creato
      • Fai clic su Fine.
    6. Crea il file di metadati IdP pre-autenticazione:

      • In Okta: Applicazioni > Applicazioni > La tua nuova applicazione (ad esempio, Tableau Pre-Auth) > Accesso
      • Accanto a Certificati di firma SAML, fai clic su Visualizza istruzioni di configurazione SAML.
      • Nella pagina Come configurare SAML 2.0 per l’applicazione <pre-auth>, scorri verso il basso fino alla sezione Facoltativa, Fornisci i seguenti metadati IDP al tuo fornitore di servizi.
      • Copia il contenuto del campo XML e salvalo in un file chiamato pre-auth_idp_metadata.xml.
    7. (Facoltativo) Configura l’autenticazione a più fattori:

      • In Okta: Applicazioni > Applicazioni > La tua nuova applicazione (ad esempio, Tableau Pre-Auth) > Accesso
      • In Criterio di accesso fai clic su Aggiungi regola.
      • In Regola di accesso all’app specifica un nome e le diverse opzioni MFA. Per testare la funzionalità, puoi mantenere tutte le opzioni predefinite. Tuttavia, in Azioni devi selezionare Richiedi fattore e quindi specificare la frequenza con cui gli utenti devono eseguire l’accesso. Fai clic su Salva.

    Creare e assegnare un utente Okta

    1. In Okta, crea un utente con lo stesso nome utente che hai creato in Tableau (utente@example.com): Directory > Persone > Aggiungi persona.
    2. Dopo che l’utente è stato creato, assegna la nuova app Okta a tale persona: fai clic sul nome utente, quindi assegna l’applicazione in Assegna applicazione.

    Installare Mellon per la pre-autenticazione

    1. Nelle istanze EC2 che eseguono il server proxy Apache esegui questi comandi per installare i moduli PHP e Mellon:

      sudo yum install httpd php mod_auth_mellon

    2. Crea la directory /etc/httpd/mellon

    Configurare Mellon come modulo di pre-autenticazione

    Esegui questa procedura su entrambi i server proxy.

    Devi disporre di una copia del file pre-auth_idp_metadata.xml che hai creato dalla configurazione di Okta.

    1. Cambia directory:

      cd /etc/httpd/mellon

    2. Crea i metadati del provider di servizi. Esegui lo script mellon_create_metadata.sh. Devi includere l’ID entità e l’URL restituito per la tua organizzazione nel comando.

      L’URL restituito è indicato come URL Single Sign-On in Okta. L’elemento finale del percorso nell’URL restituito è indicato come MellonEndpointPath nel file di configurazione mellon.conf riportato più avanti in questa procedura. In questo esempio, specifichiamo sso come percorso dell’endpoint.

      Ad esempio:

      sudo /usr/libexec/mod_auth_mellon/mellon_create_metadata.sh https://tableau.example.com "https://tableau.example.com/sso"

      Lo script restituisce il certificato, la chiave e i file dei metadati del provider di servizi.

    3. Rinomina i file del provider di servizi nella directory mellon per una maggiore leggibilità. Nella documentazione verrà fatto riferimento a questi file con i seguenti nomi:

      sudo mv *.key mellon.key
      sudo mv *.cert mellon.cert
      sudo mv *.xml sp_metadata.xml

    4. Copia il file pre-auth_idp_metadata.xml nella stessa directory.

    5. Crea il file mellon.conf nella directory /etc/httpd/conf.d:

      sudo nano /etc/httpd/conf.d/mellon.conf

    6. Copia i seguenti contenuti in mellon.conf.

      <Location />
      MellonSPPrivateKeyFile /etc/httpd/mellon/mellon.key
      MellonSPCertFile /etc/httpd/mellon/mellon.cert
      MellonSPMetadataFile /etc/httpd/mellon/sp_metadata.xml
      MellonIdPMetadataFile /etc/httpd/mellon/pre-auth_idp_metadata.xml
      MellonEndpointPath /sso
      MellonEnable "info"
      </Location>
    7. Aggiungi i seguenti contenuti al file tableau.conf esistente:

      Nel blocco <VirtualHost *:80> aggiungi il seguente contenuto. Aggiorna ServerName con il nome host pubblico nel tuo ID entità:

      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 

      Aggiungi il blocco Location al di fuori del blocco <VirtualHost *:80>. Aggiorna MellonCookieDomain con il dominio di primo livello per conservare le informazioni sui cookie, nel modo indicato:

      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com					
      </Location>

      Il file tableau.conf completo dovrebbe essere simile a quello nell’esempio seguente:

      <VirtualHost *:80>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember http://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember http://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 
      </VirtualHost>
      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com
      </Location>
    8. Verifica la configurazione. Esegui questo comando:

      sudo apachectl configtest

      Se il test della configurazione restituisce un errore, correggi gli eventuali errori ed esegui nuovamente configtest. Verrà restituito un messaggio che indica che la configurazione è corretta: Syntax OK.

    9. Riavvia httpd:

      sudo systemctl restart httpd

    Creare un’applicazione Tableau Server in Okta

    1. Nella dashboard di Okta: Applicazioni > Applicazioni > Sfoglia catalogo app
    2. In Sfoglia catalogo integrazione app cerca Tableau, seleziona il riquadro Tableau Server, quindi fai clic su Aggiungi.
    3. In Aggiungi Tableau Server > Impostazioni generali immetti un’etichetta, quindi fai clic su Avanti.
    4. In Opzioni di accesso, seleziona SAML 2.0, quindi scorri verso il basso fino ad Impostazioni di accesso avanzate:
      • ID entità SAML: inserisci l’URL pubblico, ad esempio https://tableau.example.com.
      • Formato nome utente applicazione: E-mail
    5. Fai clic sul collegamento Metadati del provider di identità per avviare un browser. Copia il collegamento nel browser. Questo è il collegamento che utilizzerai durante la configurazione di Tableau nella procedura seguente.
    6. Fai clic su Fine.
    7. Assegna la nuova app Okta Tableau Server all’utente (utente@example.com): fai clic sul nome utente, quindi assegna l’applicazione in Assegna applicazione.

    Abilitare SAML su Tableau Server per l’IdP

    Esegui questa procedura su Nodo 1 di Tableau Server.

    1. Scarica i metadati dell’applicazione Tableau Server da Okta. Usa il collegamento che hai salvato dalla procedura precedente:

      wget https://dev-66144217.okta.com/app/exk1egxgt1fhjkSeS5d7/sso/saml/metadata -O idp_metadata.xml

    2. Copia un certificato TLS e il relativo file chiave in Tableau Server. Il file chiave deve essere una chiave RSA. Per maggiori informazioni sui requisiti del certificato SAML e dell’IdP, consulta Requisiti SAML (Linux(Il collegamento viene aperto in una nuova finestra)).

      Per semplificare la gestione e la distribuzione dei certificati e come procedura consigliata per la sicurezza, è consigliabile utilizzare i certificati generati da un’importante e affidabile autorità di certificazione (CA) terza. In alternativa, puoi generare certificati autofirmati o utilizzare i certificati di un’infrastruttura a chiave pubblica per TLS.

      Se non disponi di un certificato TLS, puoi generare un certificato autofirmato utilizzando la procedura incorporata riportata di seguito.

      Generare un certificato autofirmato

      Esegui questa procedura su Nodo 1 di Tableau Server.

      1. Genera la chiave dell’autorità di certificazione (CA) radice di firma:

        openssl genrsa -out rootCAKey-saml.pem 2048

      2. Crea il certificato CA radice:

        openssl req -x509 -sha256 -new -nodes -key rootCAKey-saml.pem -days 3650 -out rootCACert-saml.pem

        Ti verrà richiesto di inserire i valori per i campi del certificato. Ad esempio:

        Country Name (2 letter code) [XX]:US
        State or Province Name (full name) []:Washington
        Locality Name (eg, city) [Default City]:Seattle
        Organization Name (eg, company) [Default Company Ltd]:Tableau
        Organizational Unit Name (eg, section) []:Operations
        Common Name (eg, your name or your server's hostname) []:tableau.example.com
        Email Address []:example@tableau.com
      3. Crea il certificato e la relativa chiave (server-saml.csr e server-saml.key nell’esempio seguente). Il nome del soggetto per il certificato deve corrispondere al nome host pubblico dell’host Tableau. Il nome del soggetto è impostato con l’opzione -subj con il formato "/CN=<host-name>", ad esempio:

        openssl req -new -nodes -text -out server-saml.csr -keyout server-saml.key -subj "/CN=tableau.example.com"

      4. Firma il nuovo certificato con il certificato CA che hai creato in precedenza. Il seguente comando invia in output anche il certificato nel formato crt:

        openssl x509 -req -in server-saml.csr -days 3650 -CA rootCACert-saml.pem -CAkey rootCAKey-saml.pem -CAcreateserial -out server-saml.crt

      5. Converti il file chiave in RSA. Tableau richiede un file chiave RSA per SAML. Per convertire la chiave, esegui questo comando:

        openssl rsa -in server-saml.key -out server-saml-rsa.key

    3. Configura SAML. Esegui questo comando, specificando l’ID dell’entità e l’URL restituito, nonché i percorsi del file dei metadati, del file del certificato e del file chiave:

      tsm authentication saml configure --idp-entity-id "https://tableau.example.com" --idp-return-url "https://tableau.example.com" --idp-metadata idp_metadata.xml --cert-file "server-saml.crt" --key-file "server-saml-rsa.key"

      tsm authentication saml enable

    4. Se la tua organizzazione esegue Tableau Desktop 2021.4 o versione successiva, devi eseguire questo comando per abilitare l’autenticazione tramite i server proxy inversi.

      Le versioni di Tableau Desktop 2021.2.1-2021.3 funzioneranno senza eseguire questo comando, a condizione che il modulo di pre-autenticazione (ad esempio, Mellon) sia configurato in modo da consentire la conservazione dei cookie del dominio di primo livello.

      tsm configuration set -k features.ExternalBrowserOAuth -v false

    5. Applica le modifiche alla configurazione:

      tsm pending-changes apply

    Convalidare la funzionalità SAML

    Per convalidare la funzionalità SAML end-to-end, accedi a Tableau Server con l’URL pubblico (ad esempio, https://tableau.example.com) tramite l’account amministratore di Tableau creato all’inizio di questa procedura.

    Risoluzione dei problemi di convalida

    Richiesta non valida: un errore comune per questo scenario è l’errore "Richiesta non valida" di Okta. Spesso questo problema si verifica quando il browser memorizza nella cache i dati della sessione precedente di Okta. Ad esempio, se gestisci le applicazioni Okta come amministratore di Okta e quindi tenti di accedere a Tableau con un diverso account abilitato per Okta, i dati della sessione dai dati dell’amministratore potrebbero causare l’errore "Richiesta non valida". Se questo errore persiste anche dopo aver cancellato la cache del browser locale, prova a convalidare lo scenario di Tableau connettendoti con un browser diverso.

    Un’altra causa dell’errore "Richiesta non valida" è un errore di battitura in uno dei tanti URL che inserisci durante i processi di configurazione di Okta, Mellon e SAML. Controllali tutti attentamente.

    Spesso il file httpd error.log nel server Apache specificherà quale URL sta causando l’errore.

    Non trovato - L’URL richiesto non è stato trovato su questo server: questo errore indica uno di diversi possibili errori di configurazione.

    Se l’utente è autenticato con Okta e riceve questo errore, probabilmente hai caricato l’applicazione di pre-autenticazione Okta in Tableau Server quando hai configurato SAML. Verifica di avere configurato in Tableau Server i metadati dell’applicazione Tableau Server Okta, anziché i metadati dell’applicazione di pre-autenticazione Okta

    Altre fasi per la risoluzione dei problemi:

    • Esamina attentamente tableau.conf per verificare se sono presenti errori di battitura o di configurazione
    • Esamina le impostazioni dell’applicazione di pre-autenticazione Okta. Verifica che i protocolli HTTP e HTTPS siano impostati come specificato in questo argomento.
    • Riavvia httpd su entrambi i server proxy.
    • Verifica che sudo apachectl configtest restituisca "Sintassi OK" in entrambi i server proxy.
    • Verifica che l’utente di test sia assegnato a entrambe le applicazioni in Okta.
    • Verifica che la permanenza sia impostata sul servizio di bilanciamento del carico e sui gruppi di destinazione associati

    Configurare SSL/TLS dal servizio di bilanciamento del carico a Tableau Server

    Alcune organizzazioni richiedono un canale di crittografia end-to-end dal client al servizio back-end. L’architettura di riferimento predefinita, come descritto fino a questo punto, specifica SSL dal client al servizio di bilanciamento del carico in esecuzione nel livello Web dell’organizzazione.

    Per configurare SSL dal servizio di bilanciamento del carico a Tableau Server, procedi come segue:

    • Installa un certificato SSL valido sia in Tableau che nei server proxy.
    • Configura SSL dal servizio di bilanciamento del carico ai server proxy inversi.
    • Configura SSL dai server proxy a Tableau Server.
    • Puoi anche configurare SSL da Tableau Server all’istanza PostgreSQL.

    Il resto del presente argomento descrive questa implementazione nel contesto dell’architettura di riferimento AWS di esempio.

    Esempio: configurare SSL/TLS nell’architettura di riferimento AWS

    Questa sezione descrive come configurare SSL su Tableau e configurare SSL su un server proxy Apache, il tutto in esecuzione nell’architettura di riferimento AWS di esempio.

    Le procedure relative a Linux in questo esempio mostrano i comandi per le distribuzioni di tipo RHEL. In particolare, i comandi riportati di seguito sono stati sviluppati con la distribuzione Amazon Linux 2. Se esegui una distribuzione di Ubuntu, modifica i comandi di conseguenza.

    Fase 1. Raccogliere i certificati e le relative chiavi

    Per semplificare la gestione e la distribuzione dei certificati e come procedura consigliata per la sicurezza, è consigliabile utilizzare i certificati generati da un’importante e affidabile autorità di certificazione (CA) terza.

    In alternativa, puoi generare certificati autofirmati o utilizzare i certificati di un’infrastruttura a chiave pubblica per TLS.

    La procedura seguente spiega come generare i certificati autofirmati. Se stai utilizzando certificati di terze parti come consigliato, puoi saltare questa procedura.

    Esegui questa procedura su uno degli host proxy. Dopo aver generato il certificato e la chiave associata, li condividerai con l’altro host proxy e con Nodo 1 di Tableau Server.

    1. Genera la chiave dell’autorità di certificazione (CA) radice di firma:

      openssl genrsa -out rootCAKey.pem 2048

    2. Crea il certificato CA radice:

      openssl req -x509 -sha256 -new -nodes -key rootCAKey.pem -days 3650 -out rootCACert.pem

      Ti verrà richiesto di inserire i valori per i campi del certificato. Ad esempio:

      Country Name (2 letter code) [XX]:US
      State or Province Name (full name) []:Washington
      Locality Name (eg, city) [Default City]:Seattle
      Organization Name (eg, company) [Default Company Ltd]:Tableau
      Organizational Unit Name (eg, section) []:Operations
      Common Name (eg, your name or your server's hostname) []:tableau.example.com
      Email Address []:example@tableau.com
    3. Crea il certificato e la relativa chiave (serverssl.csr e serverssl.key nell’esempio seguente). Il nome del soggetto per il certificato deve corrispondere al nome host pubblico dell’host Tableau. Il nome del soggetto è impostato con l’opzione -subj con il formato "/CN=<host-name>", ad esempio:

      openssl req -new -nodes -text -out serverssl.csr -keyout serverssl.key -subj "/CN=tableau.example.com"

    4. Firma il nuovo certificato con il certificato CA che hai creato nella fase 2. Il seguente comando invia in output anche il certificato nel formato crt:

      openssl x509 -req -in serverssl.csr -days 3650 -CA rootCACert.pem -CAkey rootCAKey.pem -CAcreateserial -out serverssl.crt

    Fase 2. Configurare il server proxy per SSL

    Esegui questa procedura su entrambi i server proxy.

    1. Installa il modulo SSL di Apache:

      sudo yum install mod_ssl

    2. Crea la directory /etc/ssl/private:

      sudo mkdir -p /etc/ssl/private

    3. Copia i file .crt e .key nei percorsi /etc/ssl/ seguenti:

      sudo cp serverssl.crt /etc/ssl/certs/

      sudo cp serverssl.key /etc/ssl/private/

    4. Aggiorna il file tableau.conf esistente con i seguenti aggiornamenti:

      • Aggiungi il blocco di riscrittura SSL:
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =tableau.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      • Nel blocco di riscrittura SSL aggiorna il nome del server RewriteCond: aggiungi il tuo nome host pubblico, ad esempio tableau.example.com
      • Cambia <VirtualHost *:80> in <VirtualHost *:443>.
      • Racchiudi i blocchi <VirtualHost *:443> e <Location /> con <IfModule mod_ssl.c> ... </IfModule>.
      • BalancerMember: cambia il protocollo dahttp in https.
      • Aggiungi elementi SSL* all’interno del blocco <VirtualHost *:443>:
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/serverssl.crt
        SSLCertificateKeyFile /etc/ssl/private/serverssl.key
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
      • Nell’elemento LogLevel: aggiungi ssl:warn.
      • Facoltativo: se hai installato e configurato un modulo di autenticazione, potrebbero essere presenti ulteriori elementi nel file tableau.conf. Ad esempio, il blocco <Location /> </Location> includerà elementi.

      Un esempio di file tableau.conf configurato per SSL è mostrato di seguito:

      RewriteEngine on
      RewriteCond %{SERVER_NAME} =tableau.example.com
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      
      <IfModule mod_ssl.c>
      <VirtualHost *:443>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember https://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember https://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info ssl:warn
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/serverssl.crt
      SSLCertificateKeyFile /etc/ssl/private/serverssl.key
      SSLProxyEngine on
      SSLProxyVerify none
      SSLProxyCheckPeerName off
      SSLProxyCheckPeerExpire off
      </VirtualHost>
      <Location />
      #If you have configured a pre-auth module (e.g. Mellon) include those elements here.
      </Location>
      </IfModule>
    5. Aggiungi il file index.html per eliminare gli errori 403:

      sudo touch /var/www/html/index.html
    6. Riavvia httpd:

      sudo systemctl restart httpd

    Fase 3. Configurare Tableau Server per SSL esterno

    Copia i file serverssl.crt e serverssl.key dall’host Proxy 1 al sistema Tableau Server iniziale (Nodo 1).

    Esegui questo comando su Nodo 1:

    tsm security external-ssl enable --cert-file serverssl.crt --key-file serverssl.key
    tsm pending-changes apply

    Fase 4. Configurare l’autenticazione facoltativa

    Se hai configurato un provider di identità esterno per Tableau, probabilmente dovrai aggiornare gli URL restituiti nella dashboard amministrativa dell’IdP.

    Ad esempio, se utilizzi un’applicazione di pre-autenticazione Okta, dovrai aggiornare l’applicazione in modo da utilizzare il protocollo HTTPS per l’URL destinatario e l’URL di destinazione.

    Fase 5. Configurare il servizio di bilanciamento del carico AWS per HTTPS

    Se stai eseguendo la distribuzione con il servizio di bilanciamento del carico AWS come documentato in questa guida, riconfigura il servizio di bilanciamento del carico AWS in modo da inviare il traffico HTTPS ai server proxy:

    1. Annulla la registrazione del gruppo di destinazione HTTP esistente:

      In Gruppi di destinazione seleziona il gruppo di destinazione HTTP che è stato configurato per il servizio di bilanciamento del carico, fai clic su Azioni e quindi su Registra e annulla la registrazione dell’istanza.

      Nella pagina Registra e annulla la registrazione delle destinazioni seleziona le istanze attualmente configurate, fai clic su Annulla registrazione e quindi su Salva.

    2. Crea il gruppo di destinazione HTTPS:

      Gruppi di destinazione > Crea gruppo di destinazione

      • Seleziona "Istanze"
      • Inserisci un nome per il gruppo di destinazione, ad esempio TG-internal-HTTPS
      • Seleziona il VPC
      • Protocollo: HTTPS 443
      • In Controlli di integrità > Impostazioni avanzate controlli di integrità > Codici di riuscita aggiungi la lista dei codici da leggere:200,303.
      • Fai clic su Crea.
    3. Seleziona il gruppo di destinazione appena creato, quindi fai clic sulla scheda Destinazione

      • Fai clic su Modifica.
      • Seleziona le istanze EC2 che eseguono l’applicazione proxy, quindi fai clic su Aggiungi a registrate.
      • Fai clic su Salva.
    4. Dopo aver creato il gruppo di destinazione, è necessario abilitare la persistenza:

      • Apri la pagina del gruppo di destinazione AWS (EC2 > Bilanciamento del carico > Gruppi di destinazione), quindi seleziona l’istanza del gruppo di destinazione appena configurata. Nel menu Azione seleziona Modifica attributi.
      • Nella pagina Modifica attributi seleziona Persistenza, specifica una durata di 1 day, quindi scegli Salva modifiche.
    5. Sul servizio di bilanciamento del carico, aggiorna le regole del listener. Seleziona il servizio di bilanciamento del carico che hai configurato per questa distribuzione, quindi fai clic sulla scheda Listener.

      • Per HTTP:80, fai clic su Visualizza/modifica regole. Nella pagina Regole visualizzata fai clic sull’icona di modifica (una volta nella parte superiore della pagina e quindi di nuovo accanto alla regola) per modificare la regola. Elimina la regola THEN esistente e sostituiscila facendo clic su Aggiungi azione > Reindirizza a.... Nella configurazione THEN risultante, specifica HTTPS e la porta 443 e mantieni le impostazioni predefinite per le altre opzioni. Salva l’impostazione, quindi fai clic su Aggiorna.
      • Per HTTP:443, fai clic su Visualizza/modifica regole. Nella pagina Regole visualizzata fai clic sull’icona di modifica (una volta nella parte superiore della pagina e quindi di nuovo accanto alla regola) per modificare la regola. Nella configurazione THEN, in Inoltra a..., cambia il gruppo di destinazione nel gruppo HTTPS appena creato. In Persistenza a livello di gruppo abilita la persistenza e imposta la durata su 1 giorno. Salva l’impostazione, quindi fai clic su Aggiorna.

    Fase 6. Verificare SSL

    Verifica la configurazione visitando https://tableau.example.com.

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