Konfigurera anslutna program med OAuth 2.0-förtroende

Som Tableau Server-administratör kan du registrera en eller flera externa auktoriseringsservrar (EAS) för att etablera en betrodd relation mellan Tableau Server och EAS med hjälp av standardprotokollet OAuth 2.0.

Viktigt:

  • Vissa av procedurerna i detta ämne kräver konfiguration med programvara och tjänster från tredje part. Vi har gjort vårt bästa för att verifiera procedurerna för att aktivera EAS-funktionen på Tableau Server. Programvara och tjänster från tredje part kan emellertid ändras eller så kan din organisation vara annorlunda. Om det uppstår problem kan du hänvisa till din dokumentation från tredje part för auktoritativ konfigurationsinformation och support.
  • För att aktivera inbäddning via EAS måste Tableau Server konfigureras till att använda SSL för HTTP-trafik.
  • För att sessionstoken ska vara giltig måste klockorna för det externa programmet och servern, som är värd för det externa programmet, ställas in till Koordinerad universell tid (UTC). Om någon av klockorna använder en annan standard kommer det anslutna programmet inte att vara betrott.

Så här fungerar Tableau-anslutna program med OAuth 2.0-förtroende

Förtroenderelationen mellan Tableau Server-platsen och det anslutna programmet upprättas och verifieras via en autentiseringstoken i JSON-format.

När inbäddat Tableau-innehåll läses in i det externa programmet används OAuth-auktoriseringskodflödet. När användarna har loggat in till sin identitetsprovider loggas de automatiskt in på Tableau Server. Följ stegen nedan för att registrera den externa auktoriseringsservern med Tableau Server.

Viktiga komponenter i anslutna program

Följande komponenter i ett anslutet program samverkar med JWT i ert externa program för att autentisera användare och visa inbäddat innehåll.

  • Extern auktoriseringsserver (EAS): Den server, vanligtvis er identitetsprovider, som fungerar som gränssnitt mellan användarna och det externa programmet. Servern autentiserar och auktoriserar användare för åtkomst till det skyddade Tableau-innehållet.

  • Utfärdar-URL: Den webbadress som unikt identifierar EAS-instansen.

Arbetsflöde för anslutna program

Inbäddningsarbetsflöden

I diagrammet nedan ser du hur autentiseringen mellan den externa auktoriseringsservern (EAS), det externa programmet (webbserver och webbsida) och det Tableau-anslutna programmet fungerar.

  1. Användaren besöker webbsidan: När en användare besöker det inbäddade innehållet på en webbsida skickar sidan en GET-begäran till det externa programmet.

  2. Det externa programmet omdirigerar begäran till EAS: Det externa programmet svarar med en webbsida som omdirigerar till den externa auktoriseringsservern (EAS).

  3. Användaren autentiserar med EAS: Användaren autentiserar och auktoriserar med den externa auktoriseringsservern.

  4. EAS svarar webbsidan med en auktoriseringskod: Den externa auktoriseringsservern svarar sidan med en auktoriseringskod och dirigerar tillbaka till webbsidan.

  5. EAS konverterar auktoriseringskoden till JWT: Webbsidan anropar den externa auktoriseringsservern för att konvertera auktoriseringskoden till en JSON-webbtoken, som webbsidan lägger in i det inbäddade innehållets URL.

  6. Webbsidan begär innehåll från Tableau: Webbsidan läser in iframe-elementet och skickar en GET-begäran till Tableau.

  7. Tableau validerar token: Tableau validerar JSON-webbtoken i URL:en med signaturen och svarar med innehållet samt respekterar de inbäddningsomfång som definierats i JSON-webbtoken.

Skapa ett anslutet program

Steg 1: Innan du börjar

För att registrera en EAS med Tableau Server måste du redan ha en EAS konfigurerat. Dessutom måste EAS skicka en giltig JSON-webbtoken (JWT) med registrerade anspråk och rubriker som anges i tabellen nedan.

AnspråkNamnBeskrivning eller obligatoriskt värde
kidNyckel-IDObligatoriskt (i rubriken). En unik nyckelidentifierare från identitetsprovidern.
issUtgivareObligatoriskt (i sidhuvudet eller som ett anspråk). Unik utfärdar-URIsom identifierar det betrodda anslutna programmet och dess signeringsnyckel.
algAlgoritmObligatoriskt (i rubriken). JWT-signeringsalgoritm. Namn på algoritmer som stöds finns på sidan Klass JWSAlgorithm(Länken öppnas i ett nytt fönster) i javadoc.io-dokumentation. Signeringsalgoritmen kan konfigureras med kommandot vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
subÄmneAnvändarnamnet för den autentiserade Tableau Server-användaren.
audMålgrupp

Värdet måste vara: ”tableau

expUtgångstidEn giltig JWT får inte förfalla. Förfallotiden (i UTC) för JWT måste ligga inom den konfigurerade längsta giltighetstiden. Maximal giltighetsperiod kan konfigureras med kommandot vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes.
jtiJWT-IDGenom ID-anspråket får JWT en skiftlägeskänslig, unik identifierare.
scpOmfattning

För inbäddning av arbetsflöden inkluderar de värden som stöds:

tableau:views:embed
tableau:views:embed_authoring(Tillagt i Tableau Server 2022.3)
tableau:metrics:embed” (Utfasat i Tableau Server 2023.3)
tableau:ask_data:embed”(Tillagt i Tableau Server 2023.1. Kommer att utfasas från och med Tableau Server 2024.2)

Obs!

  • Värdena måste skickas som en listtyp.
  • För tableau:views:embed tar omfattningen hänsyn till de användarbehörigheter som redan har konfigurerats i Tableau Server och ger användarna möjlighet att interagera med verktygen i den inbäddade vyn om de är tillgängliga i den ursprungliga vyn.
  • Vi rekommenderar att verktygsfältsparametern utelämnas i den inbäddade koden. Mer information finns i avsnittet Kända problem (endast inbäddningsarbetsflöden) nedan.

För REST API-auktoriseringsarbetsflöden läser du REST API-metoder som stöder JWT-auktorisering.

För de av metadata-API:ets arbetsflöden som använder REST API för autentisering är den enda omfattning som stöds tableau:content:read.

https://tableau.com/groupsDynamiskt gruppmedlemskapEndast för inbäddningsarbetsflöden.

Värdet måste matcha namnet på en eller flera grupper i Tableau Server. Mer information finns i avsnittet Dynamiskt gruppmedlemskap (endast inbäddade arbetsflöden) nedan.

Obs! JWT-anspråken som nämns ovan finns i avsnittet Registrerade anspråksnamn(Länken öppnas i ett nytt fönster) i den dokumentation som distribueras av organisationen Internet Engineering Task Force (IETF).

Steg 2: Registrera din EAS hos Tableau Server

Genom att registrera din EAS hos Tableau Server etablerar du en betrodd relation mellan EAS och Tableau Server. Detta innebär att när användare får tillgång till Tableau-innehåll som är inbäddat i ditt externa program omdirigeras de för att autentisera med IdP. EAS genererar autentiseringstoken som skickas till Tableau Server för verifiering. Efter att den betrodda relationen har verifierats beviljas användarna åtkomst till det inbäddade innehållet.

Obs! Vissa EAS stöder alternativet att visa en dialogruta som samtycke som frågar efter användarnas godkännande så att programmet får tillgång till Tableau-innehåll. För att säkerställa att dina användare får bästa möjliga upplevelse rekommenderar vi att du konfigurerar din EAS så att den automatiskt samtycker till det externa programmets begäran för användarnas räkning.

Om EAS på platsnivå

Från och med Tableau Server 2024.2 kan du konfigurera EAS på platsnivå. Anslutna program måste vara aktiverade i Tableau Server Manager (TSM) för att du ska kunna registrera en EAS på platsnivå.

Det finns två sätt att registrera serveromfattande EAS: med TSM-webbgränssnittet eller med TSM CLI.

Efter registreringen av EAS gäller den etablerade betrodda relationen för alla platser på Tableau Server.

Alternativ 1: Använd TSM-webbgränssnittet

  1. Som Tableau Server-administratör loggar du in på webbgränssnittet för Tableau Services Manager (TSM). Du hittar mer information i Logga in på webbgränssnittet för Tableau Services Manager.

  2. Gör något av följande:

    • I Tableau Server 2024.2 och senare går du till sidan Användaridentitet och åtkomst > fliken Anslutna program.

    • I Tableau Server 2023.3 och tidigare går du till sidan Användaridentitet och åtkomst > fliken Auktoriseringsserver.

  3. Gör något av följande:
    • I Tableau Server 2024.2 och senare:

      1. Markera kryssrutan Aktivera anslutna program.

      2. Välj den andra alternativknappen Tillåt anslutna program (konfigurera på platsnivå) och serveromfattande OAuth 2.0-förtroende (konfigurera nedan).

      3. I textrutan Utgivar-URL klistrar du in utgivar-URL för EAS.

      4. Klicka på knappen Spara väntande ändringar.

    • I Tableau Server 2023.3 och tidigare:

      1. Markera kryssrutan Aktivera OAuth-åtkomst för inbäddat innehåll.

      2. I textrutan Utgivar-URL klistrar du in utgivar-URL för EAS.

      3. Klicka på knappen Spara väntande ändringar.

  4. Gör följande när du är klar:
    1. Klicka på knappen Väntande ändringar längst upp till höger på sidan.

    2. Längst ned på sidans högra hörn klickar du på knappen Tillämpa ändringar och starta om för att stoppa och starta om Tableau Server.

Alternativ 2: Använd TSM CLI

  1. Öppna en kommandotolk som administratör på den första noden (där TSM är installerat) i klustret.
  2. Kör följande kommandon:

    tsm configuration set -k vizportal.oauth.external_authorization.enabled -v true
    tsm configuration set -k vizportal.oauth.external_authorization_server.issuer -v "<issuer_url_of_EAS>"
    tsm restart

Från och med Tableau Server 2024.2 kan du registrera en eller flera EAS för en plats. Efter att ha registrerat EAS på platsnivå gäller den etablerade betrodda relationen endast för den platsen.

Obs! En förutsättning för att konfigurera EAS på platsnivå är att anslutna program är aktiverade i TSM.

Steg 1: Aktivera anslutna program

  1. Som Tableau Server-administratör loggar du in på webbgränssnittet för Tableau Services Manager (TSM). Du hittar mer information i Logga in på webbgränssnittet för Tableau Services Manager.

  2. Gå till sidan Användaridentitet och åtkomst > fliken Anslutna program.

  3. Markera kryssrutan Aktivera anslutna program.

  4. Gör något av följande:

    • Välj den första alternativknappen – Tillåt anslutna appar (konfigurera på platsnivå) – för att endast möjliggöra registrering av EAS på platsnivå.

    • (Standard) Välj den andra alternativknappen Tillåt anslutna program (konfigurera på platsnivå) och serveromfattande OAuth 2.0-förtroende (konfigurera nedan) för att möjliggöra registrering av EAS både på platsnivå och serveromfattande. Om du väljer det här alternativet ska du kontrollera att utgivar-URL:n som anges på platsnivå skiljer sig från den serveromfattande utgivar-URL:n.

  5. Klicka på knappen Spara väntande ändringar.

  6. Gör följande när du är klar:
    1. Klicka på knappen Väntande ändringar längst upp till höger på sidan.

    2. Längst ned på sidans högra hörn klickar du på knappen Tillämpa ändringar och starta om för att stoppa och starta om Tableau Server.

Steg 2: Registrera EAS

  1. Logga in i Tableau Server som Tableau Server-administratör.

  2. Välj Inställningar > Anslutna program i den vänstra rutan.

  3. Klicka på listrutan Nytt anslutet program och välj OAuth 2.0-förtroende.

  4. Gör följande i dialogrutan Skapa anslutet program:
    1. Skriv ett namn för det anslutna programmet i textrutan Namn.

    2. I textrutan Utgivar-URL klistrar du in utgivar-URL för EAS.

    3. Välj Aktivera anslutet program. Av säkerhetsskäl är anslutna program som standard inaktiverade när de skapas.

    4. När du är klar klickar du på knappen Skapa.

  5. När det anslutna programmet har skapats kopierar du dess plats-ID. Plats-ID:t används för JWT:s "aud"-anspråk (målgrupp) som beskrivs i steg 1 ovan.

Steg 3: Nästa steg

För inbäddningsarbetsflöden

När du har konfigurerat Tableau Server- för att använda din EAS måste du lägga till inbäddningskod till ditt externa program. Se till att du inkluderar den giltiga JWT som genereras av din EAS enligt beskrivningen i steg 1 i den webbkomponent som det externa programmet anropar.

Mer information om hur du bäddar in Tableau-innehåll finns i följande avsnitt:

Obs! För att användarna ska kunna autentiseras när de öppnar inbäddat innehåll måste webbläsarna vara konfigurerade att tillåta kakor från tredje part.

Reglera var innehåll kan bäddas in med hjälp av listan över tillåtna domäner för inbäddning

Från och med Tableau Server 2023.3 kan du och användarna styra över huruvida Tableau-innehåll kan bäddas in utan några begränsningar eller om det ska begränsas till vissa domäner, med metoden Uppdatera inbäddningsinställningar för platser i Tableau REST API:et.

Som standard är platsinställningen för inbäddning unrestrictedEmbedding satt till true för att tillåta obegränsad inbäddning. Alternativt kan du och användare sätta inställningen till false och ange de domäner där Tableau-innehåll i externa program kan bäddas in med hjälp av parametern allowList.

Se en eller båda av följande för mer information:

För REST API-auktoriseringsarbetsflöden

När JSON-webbtoken har konfigurerats måste du lägga till den giltiga JSON-webbtoken i REST API-inloggningsbegäran för auktoriserad åtkomst. Mer information finns i Åtkomstomfång för anslutna program.

För metadata-API:ets arbetsflöden

När JSON-webbtoken har konfigurerats måste du lägga till den giltiga JSON-webbtoken i REST API-inloggningsbegäran. Mer information finns i Åtkomstomfång för anslutna program.

Hantera ett anslutet program

Dynamiskt gruppmedlemskap (endast inbäddade arbetsflöden)

Från och med Tableau Server 2024.2 kan du dynamiskt styra gruppmedlemskap genom anpassade anspråk som ingår i det JWT som skickas av det externa programmet, förutsatt att anslutna program är konfigurerade och funktionsinställningen är aktiverad.

När det är konfigurerat skickar det externa programmet det JWT som innehåller två anpassade anspråk för gruppmedlemskap under användarautentiseringen: grupp ((https://tableau.com/groups) och gruppnamn (till exempel ”Group1” och ”Group2”) att tilldela användaren till. Tableau validerar JWT och möjliggör sedan åtkomst till grupperna och innehållet vars behörigheter är beroende av dessa grupper.

Mer information finns i Dynamiskt gruppmedlemskap med intyg.

Kända problem (endast inbäddningsarbetsflöden)

Det finns ett par kända problem när man använder anslutna appar som kommer att åtgärdas i en framtida version.

  • Funktioner i verktygsfältet: När inbäddat innehåll har parametern för verktygsfältet definierad, fungerar inte alla funktioner i verktygsfältet. För att kringgå det här problemet rekommenderar vi att du döljer verktygsfältsparametern såsom i exemplet nedan.

    <tableau-viz id='tab-viz' src='https://<your_server>/t/<your_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

  • Publicerade datakällor: Publicerade datakällor som är inställda på Fråga användare om inloggningsuppgifter för databasen, visas inte. För att kringgå det här problemet rekommenderar vi, om möjligt, att datakällans ägare istället bäddar in inloggningsuppgifterna för databasen.

  • Inbäddade vyer på flera webbplatser: I Tableau Server 2023.1 och tidigare orsakar växling mellan vyer på olika webbplatser i samma webbläsare fel 1008: Det gick inte att hämta hemligheten för Connect-appen. Undvik det här problemet genom att uppgradera till Tableau Server 2023.3 eller senare.

Felsöka

När det inbäddade innehållet inte visas i det externa programmet eller när Tableau REST API-auktoriseringen misslyckas, kan du använda en webbläsares utvecklarverktyg för att kontrollera och identifiera felkoder som kan vara kopplade till den EAS-funktion som är aktiverad på Tableau Server.

Tabellen nedan innehåller en beskrivning av felkoden och en möjlig lösning.

FelkodSammanfattningBeskrivningMöjlig lösning eller beskrivning
5SYSTEM_USER_NOT_FOUNDDet gick inte att hitta Tableau-användaren
Det här problemet kan ofta lösas genom att kontrollera att anspråksvärdet 'sub' (Ämne) i JWT är "username" för den auktoriserade Tableau Server. Det här värdet är skiftlägeskänsligt.
16LOGIN_FAILEDInloggningen misslyckadesDet här felet beror vanligtvis på något av följande problem med anspråk i JWT:
67FEATURE_NOT_ENABLEDÅtkomst på begäran stöds inteÅtkomst på begäran är bara tillgängligt via licensierade Tableau Cloud-platser.
10081COULD_NOT_RETRIEVE_IDP_METADATASlutpunkt för saknade EAS-metadataDu kan lösa det här problemet genom att kontrollera att rätt utfärdare för den externa auktoriseringsserverns anropas.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIEDSaknad utfärdareDu kan ofta lösa det här problemet genom att kontrollera att rätt utfärdare anropas. Om du vill ändra utfärdarens URL kan du använda kommandot vizportal.oauth.external_authorization_server.issuer.
10083BAD_JWTJWT-sidhuvudet innehåller problemAnspråken 'kid' (hemligt ID) eller 'clientId' (utfärdare) saknas i JWT-rubriken. Kontrollera att den här informationen finns med och se om det löser problemet.
10084JWT_PARSE_ERRORJWT innehåller problemKontrollera följande och se om det löser problemet:
  • Värdet 'aud' (målgrupp) som refereras till i JWT använder värdet "tableau". Det här värdet är skiftlägeskänsligt.
  • 'aud' (målgrupp) och 'sub' (ämne) ingår i JWT.
10085COULD_NOT_FETCH_JWT_KEYSJWT kunde inte hitta nycklarnaDet gick inte att hitta hemligheten.

Du kan ofta lösa det här problemet genom att kontrollera att rätt utfärdare anropas. Om du vill ändra utfärdarens URL kan du använda kommandot vizportal.oauth.external_authorization_server.issuer.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNUtfärda med JWT-signeringsalgoritmenDu kan ofta lösa det här problemet genom att ta bort signeringsalgoritmen. Mer information finns i vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
10088RSA_KEY_SIZE_INVALIDUtfärda med JWT-signeringskravFör att lösa detta problem verifierar du med EAS eller IdP att JWT undertecknas med en RSA-nyckelstorlek på 2048.
10091JTI_ALREADY_USEDJWT måste vara unikJWT har redan använts i autentiseringsprocessen. För att lösa detta problem måste EAS eller IdP generera en ny JWT.
10092NOT_IN_DOMAIN_ALLOW_LISTDomänen för det inbäddade innehållet har inte specificeratsFör att lösa det här problemet ska du se till att inställningen unrestrictedEmbedding är satt till true eller att parametern domainAllowlist inkluderar de domäner där Tableau-innehåll är inbäddat, med hjälp av metoden Uppdatera inbäddningsinställningarna för platsen(Länken öppnas i ett nytt fönster) i Tableau REST API:et.
10094MISSING_REQUIRED_JTIJWT-ID saknasKontrollera att 'jti' (JWT-ID) ingår i JWT för att lösa problemet.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD 'exp' (förfallotid) överskrider den standardiserade längsta giltighetstiden. Du kan ofta lösa det här problemet genom att kontrollera vilka registrerade anspråk(Länken öppnas i ett nytt fönster) som krävs för en giltig JWT och bekräfta att rätt värde används. Om du vill ändra den längsta giltighetstiden kan du använda kommandot vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes.
10097SCOPES_MALFORMEDProblem med omfattningsanspråkDet här felet kan uppstå när anspråket 'scp' (Omfattning) antingen saknas i JWT eller inte har godkänts som en listtyp. Det här problemet kan lösas genom att verifiera att 'scp ' ingår i JWT och skickas som en listtyp. Se Debugger(Länken öppnas i ett nytt fönster) på auth0-webbplatsen för felsökningshjälp med en JWT.
10098JWT_UNSIGNED_OR_ENCRYPTEDJWT är osignerad eller krypteradTableau har inte stöd för osignerade eller krypterade JWT:er.
10099SCOPES_MISSING_IN_JWTAnspråk om saknade omfattningarJWT saknar anspråket 'scp' (Omfattning) som krävs. Kontrollera att 'scp' (JWT-ID) ingår i JWT för att lösa problemet. Se Debugger(Länken öppnas i ett nytt fönster) på auth0-webbplatsen för felsökningshjälp med en JWT.
10100JTI_PERSISTENCE_FAILEDOväntat JWT ID-felDet inträffade ett oväntat fel med 'jti' (JWT ID). En ny JWT med en ny 'jti' måste genereras för att lösa det här problemet.
10103JWT_MAX_SIZE_EXCEEDEDJWT överskrider maximal storlekDet här felet kan uppstå när JWT-storleken överstiger 8 000 byte. Du löser det här problemet genom att se till att bara de nödvändiga anspråken skickas till Tableau Server.
Tack för din feedback!Din feedback har skickats in. Tack!