Registrera extern auktoriseringsserver för att aktivera enkel inloggning för inbäddat innehåll

Som en Tableau Server-administratör kan du registrera en extern auktoriseringsserver (EAS) för att etablera en förtroenderelation mellan Tableau Server och EAS med hjälp av 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 Server
  • Auktorisera åtkomst till Tableau REST API (och metadata-API:et från och med Tableau Server 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 Server. Följ stegen nedan för att registrera din EAS med Tableau Server.

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.

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.

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 förtroenderelation 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.

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

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. 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. Navigera till Användaridentitet och åtkomst > Auktoriseringsserver och gör följande:
    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.

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

  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

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.

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.

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