Konfigurera anslutna program med OAuth 2.0-förtroende

Som Tableau Cloud-platsadministratör kan du registrera en eller flera externa auktoriseringsservrar (EAS) för att etablera en betrodd relation mellan Tableau Cloud-platsen och EAS med 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 i Tableau Cloud. 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 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 Cloud-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 Cloud. Följ stegen nedan för att registrera den externa auktoriseringsservern med Tableau Cloud-platsen.

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 din Tableau Cloud plats 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-URI, i HTTPS, som 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.
subÄmneAnvändarnamnet (e-postadressen) för den autentiserade Tableau Cloud-användaren.
audMålgrupp

Värdet måste vara: ”tableau:<site_luid>

För att få plats-LUID kan du använda Tableau REST API:ets inloggningsmetod eller följa stegen nedan för att kopiera plats-ID. Obs! Du måste registrera en EAS genom proceduren som beskrivs här innan du kan kopiera plats-ID.

  1. Välj Inställningar > Anslutna program och välj sedan det anslutna programmet extern auktoriseringsserver.
  2. Klicka på knappen Kopiera plats-ID.

    Information om den externa auktoriseringsservern, med en knapp för att kopiera plats-ID:t.

expUtgångstid

En giltig JWT får inte förfalla. Förfallotiden (i UTC) för JWT måste ligga inom den maximala giltighetstiden, som är 10 minuter.

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
tableau:metrics:embed” (Utfasat i oktober 2023 (Tableau 2023.3))
tableau:ask_data:embed”(Utfasat i februari 2024 (Tableau 2024.1))

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 Cloud 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.

För VizQL Data Service-arbetsflöden som använder REST API för autentisering är den enda omfattning som stöds tableau:viz_data_service:read.

https://tableau.com/odaÅtkomst på begäran – anspråk (aktivera funktion)Endast för inbäddningsarbetsflöden.

Värdet måste vara ”true” och en eller flera Tableau Cloud-grupper måste anges (se nästa rad). Mer information, inklusive förutsättningar som licensen för inbäddad analys, finns i avsnittet Konfigurera anslutna program med OAuth 2.0-förtroende nedan.

https://tableau.com/groupsÅtkomst på begäran – anspråk (ange gruppnamn)Endast för inbäddningsarbetsflöden.

Värdet måste matcha namnet på en eller flera grupper i Tableau Cloud. Mer information, inklusive förutsättningar som licensen för inbäddad analys, finns i avsnittet Konfigurera anslutna program med OAuth 2.0-förtroende nedan.

Dynamiskt gruppmedlemskapEndast för inbäddningsarbetsflöden.

Värdet måste matcha namnet på en eller flera grupper i Tableau Cloud. Mer information finns i avsnittet Konfigurera anslutna program med OAuth 2.0-förtroende nedan.

(Användarattribut)(Användarattributvärden)

Endast för inbäddningsarbetsflöden.

du inkludera användarattribut i JWT. När funktionerna för användarattribut sedan används i inbäddat innehåll kontrollerar Tableau den autentiserade användarens kontext och fastställer vilka data som kan visas under körning.

Obs!

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 Cloud

Genom att registrera din EAS hos Tableau Cloud etablerar du en betrodd relation mellan EAS och din Tableau Cloud-plats. 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 Cloud 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.

  1. Logga in på Tableau Cloud som platsadministratö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. Ett formulär för att skapa ett anslutet program, med fält för namn, URL:er och en kryssruta för att aktivera programmet.
  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.

    Information om den externa auktoriseringsservern, med en knapp för att kopiera plats-ID:t.

Steg 3: Nästa steg

För inbäddningsarbetsflöden

När du har konfigurerat din Tableau Cloud-plats 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 juni 2023 (Tableau 2023.2) 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.

För externa token för SCIM-arbetsflöden

När JSON-webbtoken har konfigurerats måste SAML-autentisering vara konfigurerat och SCIM-funktionen aktiverad. Mer information finns i Konfigurera anslutna program med OAuth 2.0-förtroende.

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://online.tableau.com/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.

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 Cloud-platsen.

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ändarenDet här problemet kan ofta lösas genom att kontrollera att anspråksvärdet 'sub' (Ämne) i JWT är användarnamnet (e-postadressen) för den autentiserade Tableau Cloud-användaren. 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:
  • 'exp' (förfallotid) överskrider den standardiserade längsta giltighetstiden. Lös det här problemet genom att granska registrerade anspråk(Länken öppnas i ett nytt fönster) som krävs för en giltig JWT och se till att det korrekta värdet inte överstiger 10 minuter.
  • 'sub' (ämne) anropar en okänd användare. Det här problemet kan lösas genom att kontrollera att värdet på 'sub' är användarnamnet (e-postadressen) för den autentiserade Tableau Cloud-användaren.
67FEATURE_NOT_ENABLEDÅtkomst på begäran stöds inteÅtkomst på begäran är bara tillgängligt via licensierade Tableau Cloud-platser.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDEAS hittades inteDu kan ofta lösa det här problemet genom att kontrollera att rätt utfärdare anropas.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDEAS-gränsen har överskriditsPlatsen har nått det högsta tillåtna antalet (1) registrerade externa auktoriseringsservrar (EAS).
144INVALID_ISSUER_URLOgiltig utfärdar-URLUtfärdarens URL är inte giltig eller så saknas attributet 'iss' (utfärdare) från JWT.
149EAS_INVALID_JWKS_URIJWKS-URI saknasJWKS URI finns inte i IdP-metadata eller JWKS URI har inte konfigurerats i Tableau. Lös det här problemet genom att konfigurera en giltig JWKS URI.
150EAS_RETRIEVE_JWK_SOURCE_FAILEDDet gick inte att hämta keysourceLös det här problemet genom att kontrollera att JWKS URI har konfigurerats korrekt.
151EAS_RETRIEVE_METADATA_FAILEDDet gick inte att hämta metadata från issuerUrlLös det här problemet genom att kontrollera att JWKS URI har konfigurerats korrekt.
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.
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.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNUtfärda med JWT-signeringsalgoritmenDu kan ofta lösa det här problemet genom att ta bort signeringsalgoritmen.
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.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS inaktiveradDet anslutna programmet för den externa auktoriseringsserver som är registrerad på platsen är inaktiverad.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  'exp' (förfallotid) överskrider den standardiserade längsta giltighetstiden. Lös det här problemet genom att granska registrerade anspråk(Länken öppnas i ett nytt fönster) som krävs för en giltig JWT och se till att det korrekta värdet inte överstiger 10 minuter.
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-platsen 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-platsen 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.
10101EPHEMERAL_USER_LOGIN_FAILED_SITE_NOT_UBP_ENABLEDÅtkomst på begäran stöds intePlatsen är inte licensierad med den användningsbaserade modell för inbäddad analys som krävs för att aktivera åtkomst på begäran. Mer information finns i Förstå licensmodeller.
10102EPHEMERAL_USER_NOT_SUPPORTEDÅtkomst på begäran stöds inte när iframe-auth-attributet är aktiveratDet här felet kan uppstå när iframe-auth-attributet är aktiverat. Du löser det här problemet genom att kontrollera att du använder Tableaus inbäddnings-API version 3.6 eller senare.
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 Cloud.
Tack för din feedback!Din feedback har skickats in. Tack!