Bilaga – Exempel på driftsättning på webbnivå med Apache

Detta ämne ger dig en procedur från början till slut som beskriver hur du implementerar webbnivån i exemplet med AWS-referensarkitektur. En exempelkonfiguration består av följande komponenter:

  • Lastbalanserare för AWS-programmet
  • Apache-proxyservrar
  • Mellon-autentiseringsmodul
  • IdP för Okta
  • SAML-autentisering

Obs! Det exempel på webbnivåkonfiguration som visas i det här avsnittet innehåller detaljerade procedurer för att distribuera programvara och tjänster från tredje part. Vi har gjort vårt bästa för att verifiera och dokumentera procedurerna för att möjliggöra webbnivåscenariot. Programvara från tredje part kan dock ändras eller så kan ditt scenario skilja sig från den referensarkitektur som beskrivs här. Se dokumentationen från tredje part för konfigurationsinformation och support som har företräde.

Linux-exemplen i detta avsnitt visar kommandon för RHEL-liknande distributioner. Mer specifikt har kommandona här utvecklats med Amazon Linux 2-distributionen. Om du kör Ubuntu-driftsättningen redigerar du kommandona på lämpligt sätt.

Driftsättning av webbnivån i det här exemplet följer en stegvis konfigurations- och verifieringsprocedur. Konfigurationen av kärnwebbnivån består av följande steg för att aktivera HTTP mellan Tableau och internet. Apache körs och konfigureras för omvänd proxy/lastbalansering bakom lastbalanserare för AWS-programmet:

  1. Installera Apache
  2. Konfigurera omvänd proxy för att testa anslutning till Tableau Server
  3. Konfigurera lastbalansering på proxyn
  4. Konfigurera lastbalanserare för AWS-program

Efter att webbnivån konfigurerats och anslutning med Tableau verifierats så konfigurerar du autentisering med den externa leverantören.

Installera Apache

Kör följande procedur på bägge EC2-värdar (Proxy 1 och Proxy 2). Om du distribuerar i AWS enligt referensarkitekturexemplet så borde du ha två tillgänglighetszoner där en enskild proxyserver körs i varje zon.

  1. Installera Apache:

    sudo yum update -y
    sudo yum install -y httpd
  2. Konfigurera för att starta Apache vid omstart:

    sudo systemctl enable --now httpd

  3. Verifiera att den version av httpd du har installerad inkluderar proxy_hcheck_module:

    sudo httpd -M

    proxy_hcheck_module krävs. Om din version av httpd inte inkluderar den här modulen så uppdaterar du till en version av httpd som inkluderar den.

Konfigurera proxy för att testa anslutning till Tableau Server

Kör den här proceduren på en av proxyvärdarna (Proxy 1). Syftet med det här steget är att verifiera anslutningen mellan internet till din proxyserver till Tableau Server i den privata säkerhetsgruppen.

  1. Skapa en fil med namnet tableau.conf och lägg till den i katalogen /etc/httpd/conf.d.

    Kopiera följande kod och ange nycklarna ProxyPass och ProxyPassReverse med den privata IP-adressen för Tableau Server nod 1.

    Viktigt: Den konfiguration som visas nedan är inte säker och bör inte användas i produktion. Konfigurationen bör endast användas under installationsprocessen för att verifiera anslutning från slutpunkt till slutpunkt.

    Om den privata IP-adressen för nod 1 till exempel är 10.0.30.32 så skulle innehållet i filen tableau.conf vara:

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

    sudo systemctl restart httpd

Verifiering: bastopologikonfiguration

Du borde kunna komma åt adminsidan för Tableau Server genom att gå till http://<proxy-public-IP-address>.

Om inloggningssidan för Tableau Server inte öppnas i din webbläsare så kan du följa följande steg på Proxy 1-värden:

  • Stoppa och starta om httpd som ett första felsökningssteg.
  • Dubbelkolla filen tableau.conf. Verifiera att den privata IP-adressen till nod 1 stämmer. Verifiera dubbla citattecken och kontrollera syntax noggrant.
  • Kör curl-kommandot på den omvända proxyservern med den privata IP-adressen för nod 1, till exempel curl 10.0.1.90. Om kommandotolken inte returnerar html eller om den returnerar html för Apache-testwebbsidan så kan du verifiera protokoll-/portkonfigurationen mellan de offentliga och privata säkerhetsgrupperna.
  • Kör curl-kommandot med den privata IP-adressen för proxy 1, till exempel curl 10.0.0.163. Om kommandotolken returnerar html-kod för Apache-testwebbsidan så har proxyfilen inte konfigurerats korrekt.
  • Starta alltid om httpd (sudo systemctl restart httpd) efter konfigurationsändringar av proxyfilen eller säkerhetsgrupper.
  • Se till att TSM körs på nod 1.

Konfigurera lastbalansering på proxyn

  1. På samma proxyvärd (Proxy 1) där du skapade tableau.conf-filen tar du bort den befintliga konfigurationen för virtuell värd och redigerar filen så att den inkluderar logik för lastbalansering.

    Exempel:

    <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. Stoppa och starta om httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Kontrollera konfigurationen genom att gå till den offentliga IP-adressen för proxy 1.

Kopiera konfigurationen till den andra proxyservern

  1. Kopiera tableau.conf-filen från proxy 1 och spara den till katalogen /etc/httpd/conf.d på proxy 2-värden.
  2. Stoppa och starta om httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Kontrollera konfigurationen genom att gå till den offentliga IP-adressen för proxy 2.

Konfigurera lastbalanserare för AWS-program

Konfigurera belastningsutjämnaren som en HTTP-lyssnare. Här beskrivs hur du lägger till en belastningsutjämnare i AWS:

Steg 1: Skapa målgrupp

Målgruppen är en AWS-konfiguration där de EC2-instanser som körs för dina proxyservrar definieras. Dessa är målen för LBS-trafik.

  1. EC2 >Målgrupper > Skapa målgrupp

  2. På sidan Skapa:

    • Ange ett namn på målgruppen, till exempel TG-internal-HTTP
    • Måltyp: instanser
    • Protokoll: HTTP
    • Port: 80
    • VPC: Välj VPC
    • Under Hälsokontroller > Avancerade inställningar för hälsokontroller > Framgångskoder lägger du till kodlistan enligt följande: 200,303.
    • Klicka på Skapa
  3. Välj den målgrupp som du just skapade och klicka sedan på fliken Mål

    • Klicka på Redigera.
    • Välj de EC2-instanser (eller en instans om du konfigurerar en i taget) som kör proxyprogram och klicka sedan på Lägg till bland registrerade.
    • Klicka på Spara.

Steg 2: Starta guiden för belastningsutjämnaren

  1. EC2 > Belastningsutjämnare > Create Load Balancer (Skapa belastningsutjämnare)

  2. Skapa en belastningsutjämnare för program på sidan ”Välj typ av belastningsutjämnare”.

Obs! Gränssnittet som visas för konfigurering av belastningsutjämnaren är inte samma på alla AWS-datacenter. Via stegen i Guidekonfiguration nedan får du åtkomst till AWS-konfigurationsguiden som börjar med steg 1 Konfigurera belastningsutjämnare

Om alla konfigurationer visas på samma sida i datacentret där knappen Skapa belastningsutjämnare visas längst ned följer du proceduren ”Konfiguration för enskild sida” nedan.

  1. Sidan Konfigurera belastningsutjämnare:

    • Ange namn
    • Schema: internetanpassat (standard)
    • IP-adresstyp: ipv4 (standard)
    • Lyssnare (lyssnare och dirigering):
      1. Lämna HTTP-standardlyssnaren
      2. Klicka på Lägg till lyssnare och lägg till HTTPS:443
    • VPC: välj den VPC där du har installerat allt
    • Tillgänglighetszoner:
      • Välj a och b för dina datacenterregioner
      • I varje motsvarande listruta väljer du det offentliga undernätet (där dina proxyservrar finns).
    • Klicka på Configure Security Settings (Konfigurera säkerhetsinställningar)
  2. Sidan Konfigurera säkerhetsinställningar

    • Ladda upp ditt offentliga SSL-certifikat.
    • Klicka på Next: Configure Security Groups (Nästa: Konfigurera säkerhetsgrupper).
  3. Sidan Konfigurera säkerhetsgrupper:

    • Välj den offentliga säkerhetsgruppen. Om standardvalet för säkerhetsgrupp väljs, ska valet rensas.
    • Klicka på Next: Configure Routing (Nästa: Konfigurera dirigering).
  4. Sidan Configure Routing (Konfigurera dirigering).

    • Målgrupp: Befintlig målgrupp.
    • Namn: Välj den målgrupp som du skapade tidigare.
    • Klicka på Next: Register Targets (Nästa: Registrera mål).
  5. Sidan Register Targets (Registrera mål)

    • Du borde se de två proxyserverinstanserna som du konfigurerade tidigare.
    • Klicka på Next: Review (Nästa: Granska).
  6. Sidan Review (Granska)

    Klicka på Skapa.

Grundläggande konfiguration

  • Ange namn
  • Schema: internetanpassat (standard)
  • IP-adresstyp: ipv4 (standard)

Nätverkskartläggning

  • VPC: välj den VPC där du har installerat allt
  • Kartläggningar:
    • Välj tillgänglighetszoner a och b (eller liknande) för dina datacenterregioner
    • I varje motsvarande listruta väljer du det offentliga undernätet (där dina proxyservrar finns).

Säkerhetsgrupper

  • Välj den offentliga säkerhetsgruppen. Om standardvalet för säkerhetsgrupp väljs, ska valet rensas.
  • Lyssnare och dirigering

    • Lämna HTTP-standardlyssnaren. För Standardåtgärd anger du Målgruppen som du ställde in tidigare.
    • Klicka på Lägg till lyssnare och lägg till HTTPS:443. För Standardåtgärd anger du Målgruppen som du ställde in tidigare.

    Skydda lyssnarinställningarna

    • Ladda upp ditt offentliga SSL-certifikat.

    Klicka på Create load balancer (Skapa belastningsutjämnare).

    Steg 3: Aktivera varaktighet

    1. När belastningsutjämnaren har skapats ska varaktigheten aktiveras i målgruppen.

      • Öppna sidan AWS-målgrupp (EC2 > Belastningsutjämning > Målgrupper) och välj den målgruppsinstans som du just konfigurerade. I Åtgärdsmenyn väljer du Redigera attribut.
      • På sidan Redigera attribut väljer du Varaktighet, anger en varaktigheten 1 day och trycker sedan på Spara ändringar.
    2. Aktivera varaktighet för belastningsutjämnaren för HTTP-lyssnaren. Välj den belastningsutjämnare som du just konfigurerade och klicka sedan på fliken Lyssnare:

      • För HTTP:80 klickar du på Visa/redigera regler. Öppna sidan Regler och klicka därefter på redigeringsikonen (en gång högst upp på sidan och sedan igen bredvid regeln) för att redigera regeln. Ta bort befintlig THEN-regel och ersätt genom att klicka på Lägg till åtgärd > Vidarebefordra till .... Ange den målgrupp som du har skapat i återstående DÅ-konfiguration. Aktivera varaktighet under Varaktighet på gruppnivå och ange varaktigheten till 1 dag. Spara inställningen och klicka sedan på Uppdatera.

    Steg 4: Ställ in tidsgräns för inaktivitet för belastningsutjämnaren

    Uppdatera tidsgränsen för inaktivitet till 400 sekunder för belastningsutjämnaren.

    Välj den belastningsutjämnare du har konfigurerat för den här driftsättningen och klicka sedan på Åtgärder > Redigera attribut. Ställ in tidsgränsen för inaktivitet400 sekunder och klicka sedan på Spara.

    Steg 5: Verifiera LBS-anslutning

    Öppna sidan AWS-belastningsutjämnare (EC2> Belastningsutjämnare) och välj den belastningsutjämnare som du just konfigurerade.

    Kopiera DNS-namnet som visas i Beskrivning och klistra in i webbläsaren för att komma åt inloggningssidan för Tableau Server.

    Om ett 500-nivåfel uppstår måste du starta om proxyservrarna.

    Uppdatera DNS med den offentliga Tableau-URL:en

    Använd domänens DNS-zonnamn från beskrivningen för AWS-belastningsutjämnaren för att skapa ett CNAME-värde i din DNS. Trafik till din URL (tableau.example.com) borde skickas till ditt offentliga AWS DNS-namn.

    Verifiera anslutning

    Efter att dina DNS-uppdateringar slutförts borde du kunna gå till inloggningssidan för Tableau Server genom att ange din offentliga URL, till exempel https://tableau.example.com.

    Exempel på autentiseringskonfiguration: SAML med extern IdP

    Följande exempel beskriver hur du installerar och konfigurerar SAML med IdP för Okta och Mellon-autentiseringsmodulen för en Tableau-driftsättning som kör AWS-referensarkitekturen. Det här exemplet beskriver hur du konfigurerar Tableau Server och Apache-proxyservrar att använda HTTP. Okta skickar begäranden till AWS-belastningsutjämnaren över HTTPS men all intern trafik går över HTTP. När du konfigurerar för det här scenariot bör du vara medveten om HTTP- kontra HTTPS-protokollen när du anger URL-strängar.

    Det här exemplet använder sig av Mellon som tjänstleverantörsmodul för förautentisering på de omvända proxyservrarna. Med den här konfigurationen ser du till att endast autentiserad trafik ansluter till Tableau Server, som även agerar som tjänsteleverantör med IdP för Okta. Därmed behöver du konfigurera två IdP-applikationer: en för Mellon-tjänsteleverantören och en för Tableau-tjänsteleverantören.

    Skapa ett Tableau-administratörskonto

    Ett vanligt misstag när man konfigurerar SAML är att inte skapa ett administratörskonto på Tableau Server innan SSO aktiveras.

    Första steget är att skapa ett konto på Tableau Server med rollen som serveradministratör. För exemplet med Okta-scenariot måste användarnamnet vara i ett giltigt e-postadressformat, såsom användare@exempel.com. Du måste ange ett lösenord för den här användaren. Lösenordet kommer dock inte att användas efter att SAML har konfigurerats.

    Konfigurera Okta-program med förautentisering

    Scenariot från slutpunkt till slutpunkt som beskrivs i det här avsnittet kräver två Okta-program:

    • Okta-program med förautentisering
    • Okta Tableau Server-program

    Var och en av dessa program är associerade med olika metadata som behöver konfigureras på den omvända proxyn och Tableau-servern, respektive.

    Den här proceduren beskriver hur man skapar och konfigurerar Okta-program med förautentisering. Längre fram i detta ämne kommer du att skapa Okta Tableau Server-programmet. Se Oktas webbplats för utvecklare(Länken öppnas i ett nytt fönster) för ett kostnadsfritt Okta-testkonto med begränsade användare.

    Skapa en SAML-appintegrering för Mellon-tjänsteleverantör med förautentisering.

    1. Öppna Oktas administrationsöversikt > ProgramSkapa appintegrering.

    2. På sidan Skapa en ny appintegrering kan du välja SAML 2.0 och sedan klicka på Nästa.

    3. På fliken Allmänna inställningar ska du ange ett appnamn, såsom Tableau Pre-Auth, och sedan klicka på Nästa.

    4. På fliken Konfigurera SAML:

      • URL för enkel inloggning. Det sista elementet av sökvägen i URL:en för enkel inloggning kallas för MellonEndpointPath i konfigurationsfilen mellon.conf som följer senare i den här proceduren. Du kan ange valfri slutpunkt. I det här exemplet är slutpunkten sso. Det sista elementet postResponse krävs : https://tableau.example.com/sso/postResponse.
      • Klicka ur kryssrutan: Använd detta för URL för mottagaren och destinationen.
      • URL för mottagaren: Samma som URL för SSO, men med HTTP. Till exempel http://tableau.example.com/sso/postResponse.
      • Mål-URL: samma som URL för enkel inloggning, men med HTTP. Till exempel http://tableau.example.com/sso/postResponse.
      • Audience URI (SP Entity ID). Till exempel https://tableau.example.com.
      • Format på namn-ID: EmailAddress
      • Användarnamn i programmet: Email
      • Attribututlåtanden: namn = mail; namnformat = Unspecified; värde = user.email.

      Klicka på Nästa.

    5. Välj följande på fliken Feedback:

      • Jag är Okta-kund och lägger till ett internt program
      • Det här är ett internt program som vi har skapat
      • Klicka på Slutför.
    6. Skapa metadatafilen för tjänsteleverantörens förautentisering:

      • I Okta: Program > Program > Ditt nya program (t.ex. Tableau Pre-Auth) > Logga in
      • Bredvid SAML-signeringscertifikat klickar du på Visa anvisningar om SAML-konfiguration.
      • På sidan Så här konfigurerar du SAML 2.0 för <pre-auth>-program rullar du nedåt till delen Valfritt , Uppge följande IdP-metadata för serviceleverantören.
      • Kopiera innehållet i XML-fältet och spara det i en fil med namnet pre-auth_idp_metadata.xml.
    7. (Valfritt) Konfigurera multifaktorautentisering:

      • I Okta: Program > Program > Ditt nya program (t.ex. Tableau Pre-Auth) > Logga in
      • Klicka på Lägg till regel under Inloggningspolicy.
      • Ange ett namn och de olika MFA-alternativen i Programmets inloggningsregel. Du kan lämna alla alternativ som standard för att testa funktionaliteten. Under Åtgärder måste du dock välja Fråga efter faktor och sedan ange hur ofta användare måste logga in. Klicka på Spara.

    Skapa och tilldela Okta-användare

    1. Skapa en användare, i Okta, med samma användarnamn som skapades i Tableau (användare@example.com): Katalog > Personer > Lägg till person.
    2. Tilldela dett nya Okta-programmet till den personen när användaren har skapats: Klicka på användarnamnet och tilldela sedan programmet i Tilldela program.

    Installera Mellon för förautentisering

    1. På de EC2-instanser som kör Apache-proxyservern kör du följande kommandon för att installera PHP- och Mellon-moduler:

      sudo yum install httpd php mod_auth_mellon

    2. Skapa katalogen /etc/httpd/mellon

    Konfigurerar Mellon som förautentiseringsmodul

    Kör den här proceduren på båda proxyservrarna.

    Du måste ha en kopia av pre-auth_idp_metadata.xml-filen som du skapade från Okta-konfigurationen.

    1. Ändra katalog:

      cd /etc/httpd/mellon

    2. Skapa metadata för tjänsteleverantören. Kör skriptet mellon_create_metadata.sh. Du måste inkludera entitets-ID och retur-URL för din organisation i kommandot.

      Retur-URL kallas för URL för enkel inloggning i Okta. Det slutliga elementet för sökvägen i retur-URL:en kallas för MellonEndpointPath i konfigurationsfilen mellon.conf som kommer senare i den här proceduren. I det här exemplet anger vi sso som slutpunktssökväg.

      Exempel:

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

      Skriptet returnerar tjänsteleverantörens certifikat, nyckel och metadatafiler.

    3. Byt namn på tjänsteleverantörens filer i katalogen mellon för ökad läsbarhet. Vi kallar dessa filer följande namn i dokumentationen:

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

    4. Kopiera pre-auth_idp_metadata.xml-filen till samma katalog.

    5. Skapa filen mellon.conf i katalogen /etc/httpd/conf.d:

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

    6. Kopiera följande innehåll till 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. Lägg till följande innehåll till den befintliga tableau.conf-filen:

      Inuti blocket <VirtualHost *:80> lägger du till följande innehåll. Uppdatera ServerName med det offentliga värdnamnet i din entitets-ID:

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

      Lägg till platsblocket utanför blocket <VirtualHost *:80>. Uppdatera MellonCookieDomain med toppnivådomänen för att bevara cookie-informationen så som visas:

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

      Den färdiga tableau.conf-filen borde se ut som i följande exempel:

      <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. Verifiera konfigurationen. Kör följande kommando:

      sudo apachectl configtest

      Om konfigurationstestet returnerar ett fel, åtgärdar du felen och kör konfigurationstestet igen. En lyckad konfiguration returnerar Syntax OK.

    9. Starta om httpd:

      sudo systemctl restart httpd

    Skapa Tableau Server-applikation i Okta

    1. På instrumentpanelen för Okta: Program > Program > Browse App Catalog (Bläddra i appkatalog).
    2. Sök efter Tableau i Browse App Integration Catalog (Bläddra i appintegreringskatalog), välj panelen för Tableau Server och klicka på Lägg till.
    3. Add Tableau Server (Lägg Tableau Server) > General Settings (Allmänna inställningar) anger du en etikett och klickar sedan på Nästa.
    4. Välj SAML 2.0 i Sign-On Options (Inloggningsalternativ) och rulla ned till Advanced Sign-on Settings (Avancerade inloggningsinställningar):
      • SAML Entity ID (Entitets-ID för SAML): Ange den offentliga URL:en, t.ex. https://tableau.example.com.
      • Application user name format (Format för användarnamn för programmet): E-postadress
    5. Starta en webbläsare genom att klicka på länken Identity Provider metadata (Metadata för identitetsprovider). Kopiera webbläsarlänken. Det här är länken du använder när du konfigurerar Tableau i stegen som följer.
    6. Klicka på Klart.
    7. Tilldela användaren (användare@företag.com) den nya Tableau Server Okta-appen: Klicka på användarnamnet och tilldela sedan programmet i Assign Application (Tilldela program).

    Aktivera SAML på Tableau Server för IdP

    Kör den här proceduren på Tableau Server-nod 1.

    1. Hämta metadata för Tableau Server-programvaran från Okta. Använd länken som du sparade från föregående procedur.

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

    2. Kopiera ett TLS-certifikat och den relaterade nyckelfilen till Tableau Server. Nyckelfilen måste vara en RSA-nyckel. Mer information om SAML-certifikat och IdP-krav finns i SAML-krav (Linux(Länken öppnas i ett nytt fönster)).

      För att underlätta certifikathanteringen och driftsättningen, och som en rekommenderad säkerhetsåtgärd, bör du använda certifikat genererade av någon av de stora betrodda certifikatutfärdarna (CA). Du kan också generera självsignerade certifikat eller använda certifikat från en PKI för TLS.

      Om du inte har något TLS-certifikat kan du skapa ett självsignerat certifikat med hjälp av den inbäddade proceduren nedan.

      Skapa ett självsignerat certifikat

      Kör den här proceduren på Tableau Server-nod 1.

      1. Generera signeringsnyckel för rotcertifikatutfärdare (CA, Certificate Authority):

        openssl genrsa -out rootCAKey-saml.pem 2048

      2. Skapa certifikat för rot-CA:

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

        Du uppmanas att ange värden i certifikatfälten. Exempel:

        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. Skapa certifikatet och relaterad nyckel (server-saml.csr och server-saml.key i nedanstående exempel). Certifikatmottagarens namn måste stämma överens med det offentliga värdnamnet för Tableau-värden. Certifikatmottagarens namn anges med alternativet -subj i formatet "/CN=<host-name>", till exempel:

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

      4. Signera det nya certifikatet med CA-certifikatet som du skapade ovan. Följande kommando skapar även certifikatet i crt-format:

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

      5. Konvertera nyckelfilen till RSA. Tableau behöver en RSA-nyckelfil för SAML. Kör följande kommando för att konvertera nyckeln:

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

    3. Konfigurera SAML. Kör följande kommando och ange ditt enhets-ID och din retur-URL, samt sökvägarna till metadatafilen, certifikatfilen och nyckelfilen:

      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. Om din organisation använder Tableau Desktop 2021.4 eller senare måste du köra följande kommando för att aktivera autentisering via omvända proxyservrar.

      Tableau Desktop-versioner 2021.2.1 – 2021.3 kommer att fungera utan att köra detta kommando, förutsatt att din förautentiseringsmodul (t.ex. Mellon) har konfigurerats för att tillåta att domäncookies bevaras på toppnivå.

      tsm configuration set -k features.ExternalBrowserOAuth -v false

    5. Tillämpa konfigurationsändringar:

      tsm pending-changes apply

    Validera SAML-funktion

    Validera SAML-funktion från slutpunkt till slutpunkt genom att logga in på Tableau Server med den offentliga URL:en (t.ex. https://tableau.example.com) med det Tableau-administratörskonto som du skapade i början av den här proceduren.

    Felsökning av validering

    Dålig begäran: Ett vanligt fel för det här scenariot är ett Dålig begäran-fel från Okta. Det här problemet uppstår ofta när webbläsaren cachelagrar data från tidigare Okta-sessioner. Om du till exempel hanterar Okta-applikationer som en Okta-administratör och därefter försöker få åtkomst till Tableau med ett annat Okta-aktiverat konto så kan sessionsdata från administratörsdata orsaka Dålig begäran-felet. Om felet kvarstår även efter att du rensat den lokala webbläsarens cacheminne så kan du testa att validera Tableau-scenariot genom att ansluta med en annan webbläsare.

    En annan orsak till felet ”Felaktig begäran” är ett stavfel i en av de många URL:er som du anger under Okta-, Mellon- och SAML-konfigurationsprocesserna. Kontrollera alla dessa noggrant.

    Ofta anger httpd-filen error.log på Apache-servern vilken URL som orsakar felet.

    Hittades inte – Den begärda URL:en hittades inte på den här servern: Det här felet indikerar ett av flera konfigurationsfel.

    Om användaren autentiserats med Okta och därefter stöter på det här felet så har du sannolikt laddat upp Okta förautentiseringsapplikationen till Tableau Server när du konfigurerade SAML. Verifiera att du har konfigurerat Okta-applikationsmetadata för Tableau Server på Tableau Server och inte applikationsmetadata för Okta förautentisering.

    Andra felsökningssteg:

    • Granska tableau.conf och se om det finns stavfel eller konfigurationsfel
    • Granska applikationsinställningarna för Okta förautentisering. Se till att HTTP- kontra HTTPS-protokollen angetts som specificerade i det här ämnet.
    • Starta om httpd på bägge proxyservrar.
    • Verifiera att sudo apachectl configtest returnerar Syntax OK för bägge proxyservrar.
    • Verifiera att testanvändaren tilldelats båda applikationerna i Okta.
    • Verifiera att ihållande angetts för lastbalanseraren och associerade målgrupper.

    Konfigurera SSL/TLS från belastningsutjämnare till Tableau Server

    Vissa organisationer kräver en komplett (”end-to-end”) krypteringskanal från klient till backend-tjänst. Standardreferensarkitekturen som beskrivs under denna punkt specificerar SSL från klienten till den belastningsutjämnare som körs på webbnivån i din organisation.

    För att konfigurera SSL från lastbalanserare till Tableau Server måste du göra följande:

    • Installera ett giltigt SSL-certifikat på både Tableau- och proxyservrarna.
    • Konfigurera SSL från lastbalanseraren till omvända proxyservrar.
    • Konfigurera SSL från proxyservrarna till Tableau Server.
    • Du kan också konfigurera SSL från Tableau Server till PostgreSQL-instansen.

    Resten av detta ämne beskriver denna implementering inom ramarna för exempelreferensarkitekturen för AWS.

    Exempel: Konfigurera SSL/TLS i AWS-referensarkitektur

    Det här avsnittet beskriver hur du konfigurerar SSL på Tableau och konfigurerar SSL på en Apache-proxyserver, allt som körs i AWS-referensarkitektur.

    Linux-procedurerna i detta exempel visar kommandon för RHEL-liknande distributioner. Mer specifikt har kommandona här utvecklats med Amazon Linux 2-distributionen. Om du kör Ubuntu-driftsättningen redigerar du kommandona på lämpligt sätt.

    Steg 1: Ta reda på certifikat och relaterade nycklar

    För att underlätta certifikathanteringen och driftsättningen, och som en rekommenderad säkerhetsåtgärd, bör du använda certifikat genererade av någon av de stora betrodda certifikatutfärdarna (CA).

    Du kan också generera självsignerade certifikat eller använda certifikat från en PKI för TLS.

    Följande procedur visar hur man genererar självsignerade certifikat. Om du använder certifikat från tredje part som vi rekommenderar kan du hoppa över den här proceduren.

    Kör den här proceduren på en av proxyvärdarna. När du har genererat certifikatet och tillhörande nyckel kommer du att dela detta med den andra proxyvärden och Tableau Server-nod 1.

    1. Generera signeringsnyckel för rotcertifikatutfärdare (CA, Certificate Authority):

      openssl genrsa -out rootCAKey.pem 2048

    2. Skapa certifikat för rot-CA:

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

      Du uppmanas att ange värden i certifikatfälten. Exempel:

      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. Skapa certifikatet och relaterad nyckel (serverssl.csr och serverssl.key i nedanstående exempel). Certifikatmottagarens namn måste stämma överens med det offentliga värdnamnet för Tableau-värden. Certifikatmottagarens namn anges med alternativet -subj i formatet "/CN=<host-name>", till exempel:

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

    4. Signera det nya certifikatet med det CA-certifikat som du skapade i steg 2. Följande kommando skapar även certifikatet i crt-format:

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

    Steg 2: Konfigurera proxyserver för SSL

    Kör den här proceduren på båda proxyservrarna.

    1. Installera SSL-modulen för Apache:

      sudo yum install mod_ssl

    2. Skapa katalogen /etc/ssl/private:

      sudo mkdir -p /etc/ssl/private

    3. Kopiera crt- och nyckelfilerna till följande /etc/ssl/-sökvägar:

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

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

    4. Uppdatera befintlig tableau.conf med följande uppdateringar:

      • Lägg till SSL-omskrivningsblocket:
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =tableau.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      • I SSL-omskrivningsblocket uppdaterar du servernamnet RewriteCond: Lägg till ditt offentliga värdnamn, till exempel tableau.example.com
      • Ändra <VirtualHost *:80> till <VirtualHost *:443>.
      • Omslut blocken <VirtualHost *:443> och <Location /> med <IfModule mod_ssl.c> ... </IfModule>.
      • BalancerMember: Ändra protokollet från http till https.
      • Lägg till SSL*-element inuti <VirtualHost *:443>-blocket:
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/serverssl.crt
        SSLCertificateKeyFile /etc/ssl/private/serverssl.key
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
      • I LogLevel-elementet: Lägg till ssl:warn.
      • Valfritt: Om du har installerat och konfigurerat en autentiseringsmodul kan du ha ytterligare element i filen tableau.conf. Till exempel kommer blocket <Location /> </Location> att innehålla element.

      Här visas ett exempel på en tableau.conf-fil som konfigurerats för SSL:

      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. Lägg till index.html fil för att undertrycka 403-fel:

      sudo touch /var/www/html/index.html
    6. Starta om httpd:

      sudo systemctl restart httpd

    Steg 3: Konfigurera Tableau Server för extern SSL

    Kopiera filerna serverssl.crt och serverssl.key från Proxy 1-värddatorn till den ursprungliga Tableau Server (nod 1).

    Kör följande kommandon på nod 1:

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

    Steg 4: Valfri autentiseringskonfiguration

    Om du har konfigurerat en extern identitetsleverantör för Tableau måste du sannolikt uppdatera returadresser (URL) i den administrativa instrumentpanelen för IdP.

    Om du till exempel använder ett förauktoriseringsprogram för Okta måste du uppdatera programmet för att använda HTTPS-protokollet för mottagaradressen och destinationsadressen.

    Steg 5: Konfigurera AWS-lastbalanserare för HTTPS

    Om du driftsätter med AWS-lastbalanserare enligt denna guide konfigurerar du om AWS-lastbalanseraren så att denna skickar HTTPS-trafik till proxyservrarna:

    1. Avregistrera befintlig HTTP-målgrupp:

      I Målgrupper väljer du den HTTP-målgrupp som har konfigurerats för lastbalanseraren, klickar på Åtgärder och sedan på Registrera och avregistrera instans.

      På sidan Registrera och avregistrera mål markerar du de instanser som för närvarande är konfigurerade, klickar på Avregistrera och sedan på Spara.

    2. Skapa HTTPS-målgrupp:

      Målgrupper > Skapa målgrupp

      • Välj ”Instanser”
      • Ange ett namn på målgruppen, till exempel TG-internal-HTTPS
      • Välj din VPC
      • Protokoll: HTTPS 443
      • Under Hälsokontroller > Avancerade inställningar för hälsokontroller > Framgångskoder lägger du till kodlistan enligt följande: 200,303.
      • Klicka på Skapa.
    3. Välj den målgrupp som du just skapade och klicka sedan på fliken Mål

      • Klicka på Redigera
      • Välj de EC2-instanser som kör proxyprogram och klicka sedan på Lägg till bland registrerade.
      • Klicka på Spara.
    4. När målgruppen har skapats måste du aktivera varaktighet:

      • Öppna sidan AWS-målgrupp (EC2 > Belastningsutjämning > Målgrupper) och välj den målgruppsinstans som du just konfigurerade. I Åtgärdsmenyn väljer du Redigera attribut.
      • På sidan Redigera attribut väljer du Varaktighet, anger en varaktigheten 1 day och trycker sedan på Spara ändringar.
    5. Uppdatera lyssnarreglerna vid belastningsutjämning. Välj den belastningsutjämnare du har konfigurerat för den här driftsättningen och klicka sedan på fliken Lyssnare.

      • För HTTP:80 klickar du på Visa/redigera regler. Öppna sidan Regler och klicka därefter på redigeringsikonen (en gång högst upp på sidan och sedan igen bredvid regeln) för att redigera regeln. Ta bort den befintliga THEN-regeln och ersätt den genom att klicka på Lägg till åtgärd > Omdirigera till .... I den resulterande THEN-konfigurationen anger du HTTPS och port 443 och låter övriga alternativ behålla standardinställningarna. Spara inställningen och klicka sedan på Uppdatera.
      • För HTTP:443 klickar du på Visa/redigera regler. Öppna sidan Regler och klicka därefter på redigeringsikonen (en gång högst upp på sidan och sedan igen bredvid regeln) för att redigera regeln. I konfigurationen för THen, under Vidarebefordra till ... ändrar du målgruppen till den grupp som du nyss skapat. Aktivera varaktighet under Varaktighet på gruppnivå och ange varaktigheten till 1 dag. Spara inställningen och klicka sedan på Uppdatera.

    Steg 6: Verifiera SSL

    Verifiera konfigurationen genom att gå till https://tableau.example.com.

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