Konfigurera anslutna program med OAuth 2.0-förtroende

Som en Tableau Cloud-platsadministratör kan du registrera en extern auktoriseringsserver (EAS) för att etablera en förtroenderelation mellan Tableau Cloud-platsen och EAS med standardprotokollet OAuth 2.0. Genom att etablera en förtroenderelation kan du:

  • Ge dina användare en enkel inloggningsupplevelse (SSO) till Tableau-innehåll som är inbäddat i dina externa program via identitetsprovidern (IdP) som du redan har konfigurerat för Tableau Cloud-platsen
  • Auktorisera åtkomst till Tableau REST API (och metadata-API:et från och med Tableau Cloud oktober 2023) programmatiskt för användarnas räkning med en JSON-webbtoken (JWT)

När inbäddat Tableau-innehåll laddas i ditt externa program används ett OAuth-standardflöde. 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 din EAS med Tableau Cloud-platsen.

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.

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.

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.

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 finns i avsnittet Åtkomst på begäran (endast inbäddningsarbetsflöden) 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 finns i avsnittet Åtkomst på begäran (endast inbäddningsarbetsflöden) nedan.

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

Endast för inbäddningsarbetsflöden.

Användarattribut kan inkluderas 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 förtroenderelation 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 något av 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 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.

Åtkomst på begäran (endast inbäddningsarbetsflöden)

Från och med oktober 2023, och om platsen är licensierad med den användningsbaserade modellen för inbäddad analys(Länken öppnas i ett nytt fönster), så kan du ge fler användare tillgång till det inbäddade Tableau-innehållet med hjälp av åtkomst på begäran. Med åtkomst på begäran tillåter du användarna att interagera med inbäddat Tableau-innehåll som autentiserats via det anslutna programmet och du slipper provisionera dessa användare på Tableau Cloud-platsen. Tack vare åtkomst på begäran slipper du lägga till och hantera användare i Tableau Cloud för att kunna ge dem tillgång till inbäddat innehåll.

Så här fungerar åtkomst på begäran

Tillgången till inbäddat Tableau-innehåll med hjälp av åtkomst på begäran beror på behörigheter på gruppnivå, som antingen ärvs av innehållet (till exempel på projektnivå) eller används direkt på innehållet. Användare som platsadministratörer, projektägare, projektledare och innehållsägare kan tilldela behörigheter på gruppnivå till innehåll. När användarna använder det inbäddade innehåll som aktiverats via funktionen för åtkomst på begäran kontrollerar Tableau att JSON-webbtoken innehåller rätt gruppmedlemskapsanspråk innan innehållet visas.

Förutsättningar

Följande villkor måste uppfyllas för att aktivera åtkomst på begäran för inbäddat innehåll:

  1. Platsen är licensierad med den användningsbaserade modellen för inbäddad analys(Länken öppnas i ett nytt fönster)
  2. Funktionen åtkomst på begäran har aktiverats för gruppen
  3. Gruppbehörigheter har angetts för Tableau-innehållet
  4. Det Tableau-anslutna programmet har skapats
  5. JSON-webbtoken som används av det anslutna programmet inkluderar anspråken https://tableau.com/oda och https://tableau.com/groups
  6. Tableau-innehållet har bäddats in i ett externt program

När de här villkoren är uppfyllda kan användarna interagera med det inbäddade Tableau-innehåll som aktiverats via funktionen för åtkomst på begäran.

Aktivera funktionen för åtkomst på begäran

Om du vill aktivera åtkomst på begäran för en grupp måste du markera kryssrutan Tillåt åtkomst på begäran när du skapar eller redigerar gruppen. Mer information om hur du skapar grupper finns i Skapa en grupp och lägga till användare i den.

Du kan också aktivera den här funktionen med hjälp av Tableaus REST API. Mer information finns i avsnitten om metoderna Create Group(Länken öppnas i ett nytt fönster) (Skapa grupp) och Update Group(Länken öppnas i ett nytt fönster) (Uppdatera grupp) i Tableau REST API-hjälpen.

Funktioner när åtkomst på begäran är aktiverat

Användare som har åtkomst till inbäddat Tableau-innehåll har behörighet(Länken öppnas i ett nytt fönster) att visa innehållet. Användarna har visningsbehörighet oavsett vald mall och oavsett vilka anpassade funktioner som har konfigurerats för gruppen (till exempel kan en användare med rollen Viewer aldrig ladda ner en datakälla, även om den behörigheten uttryckligen tilldelas dem för en specifik datakälla).

Övervaka åtkomst på begäran

Om du har Tableau Cloud med Advanced Management(Länken öppnas i ett nytt fönster) kan du använda aktivitetsloggen för att övervaka användningen av åtkomst på begäran. Händelser i aktivitetsloggen som visar åtkomst på begäran inkluderar, men är inte begränsade till, åtkomstvy och inloggning. Mer information om de här händelserna finns i Referens för händelsetypen Aktivitetslogg.

Begränsningar

Eftersom arbetsflöden för åtkomst på begäran medför att vissa användare som har tillgång till inbäddat Tableau-innehåll kan vara anonyma och kortlivade på Tableau Cloud, så är följande funktioner inte tillgängliga för användare som använder inbäddat innehåll som aktiverats via funktionen för åtkomst på begäran:

  • Skapa anpassade vyer
  • Dela innehåll med hjälp av innehållets delningsknapp
  • Prenumerera på innehåll för att få ögonblicksbilder via e-post

Obs! Från och med februari 2024 (Tableau 2024.1) kan Tableau REST API-förfrågningar göras som en användare med åtkomst på begäran.

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 ditt externa program eller när Tableau REST API-auktorisering misslyckas, kan du använda en webbläsares utvecklarverktyg för att kontrollera och identifiera felkoder som kan vara relaterade till den EAS-funktion som är aktiverad på din Tableau Cloud-plats.

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