Als Tableau Server-Administrator können Sie einen externen Autorisierungsserver (External Authorization Server, EAS) registrieren, um mithilfe des OAuth 2.0-Standardprotokolls eine Vertrauensbeziehung zwischen Ihrem Tableau Server und dem EAS herzustellen. Der Aufbau einer Vertrauensbeziehung ermöglicht Ihnen Folgendes:

  • Sie können Ihren Benutzern die Möglichkeit geben, über den Identitätsanbieter (Identity Provider, IdP), den Sie bereits für Tableau Server konfiguriert haben, mittels einmaliger Anmeldung (Single Sign-On, SSO) auf Tableau-Inhalte zuzugreifen, die in Ihren externen Anwendungen eingebettet sind.
  • Sie können den Zugriff auf die Tableau-REST API im Namen der Benutzer programmgesteuert mithilfe eines JSON-Web-Tokens (JWT) autorisieren.

Wenn eingebettete Tableau-Inhalte in Ihre externe Anwendung geladen werden, wird ein standardmäßiges OAuth-Schema verwendet. Nach der erfolgreichen Anmeldung beim IdP sind Benutzer automatisch bei Tableau Server angemeldet. Führen Sie die unten aufgeführten Schritte durch, um Ihren EAS bei Tableau Server zu registrieren.

Wichtig:

  • Einige der in diesem Thema beschrieben Verfahren erfordern eine Konfiguration mit Software und Diensten von Drittanbietern. Wir haben uns nach Kräften bemüht, die Verfahren zur Aktivierung der EAS-Funktion in Tableau Server zu verifizieren. Software und Dienste von Drittanbietern können sich jedoch ändern oder in Ihrer Organisation anders ausfallen. Sollten Probleme auftreten, entnehmen Sie offizielle Konfigurationsdetails und Supportinformationen bitte der Dokumentation Ihrer Drittanbieter.
  • Um das Einbetten über EAS zu ermöglichen, muss Tableau Server für die Verwendung von SSL für HTTP-Datenverkehr konfiguriert werden.
  • Wenn Ihre verbundene App in einem Container (z. B. eine EC2-Instanz) ausgeführt wird, müssen sowohl die Uhr des Containers als auch die des Hosts auf UTC eingestellt sein, damit das Sitzungs-Token gültig ist. Wenn eine der Uhren einen anderen Standard verwendet, wird der verbundenen App nicht vertraut.

Schritt 1: Bevor Sie beginnen

Um einen EAS bei Tableau Server- zu registrieren, müssen Sie über einen EAS verfügen, der bereits konfiguriert ist. Außerdem muss der EAS ein gültiges JSON-Webtoken (JSON Web Token, JWT) senden, das die in der folgenden Tabelle aufgeführten registrierten Ansprüche und Header enthält.

AnspruchBeschreibung oder erforderlicher Wert
"kid" (Schlüssel-ID)Erforderlich (im Header). Eine eindeutige Schlüsselkennung des Identitätsanbieters.
"iss" (Issuer, Aussteller)Erforderlich (im Header oder als Anspruch). Eindeutiger Aussteller-URI, der die vertrauenswürdige verbundene App und ihren Signaturschlüssel identifiziert.
"alg" (Algorithm, Algorithmus)Erforderlich (im Header). JWT-Signaturalgorithmus. Unterstützte Algorithmusnamen sind in der javadoc.io-Dokumentation auf der Seite Class JWSAlgorithm(Link wird in neuem Fenster geöffnet) aufgeführt. Der Signaturalgorithmus kann mit dem Befehl vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms konfiguriert werden.
"sub" (Subject, Antragsteller)Benutzername des authentifizierten Tableau Server-Benutzers.
"aud" (Audience, Zielgruppe)

Der Wert muss sein: "tableau"

"exp" (Ablaufzeit)Ein gültiges JWT darf nicht abgelaufen sein. Die Ablaufzeit (in UTC) des JWT muss innerhalb der konfigurierten maximalen Gültigkeitsdauer liegen. Die maximale Gültigkeitsdauer kann mit dem Befehl vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes konfiguriert werden.
"jti" (JWT-ID)Der JWT-ID-Anspruch stellt einen eindeutigen Bezeichner für das JWT bereit und unterscheidet zwischen Groß- und Kleinschreibung.
"scp" (Scope, Geltungsbereich)

Zu den unterstützten Werten für Einbettungs-Workflows gehören:

"tableau:views:embed"
"tableau:views:embed_authoring" (Hinzugefügt in Tableau Server 2022.3)
"tableau:metrics:embed"

Hinweise:

  • Werte müssen als ein Listentyp übergeben werden.
  • Bei tableau:views:embed berücksichtigt der Bereich die bereits in Tableau Server konfigurierten Benutzerberechtigungen und ermöglicht den Benutzern die Interaktion mit den Tools in der eingebetteten Ansicht, wenn diese in der ursprünglichen Ansicht verfügbar sind.
  • Wir empfehlen, den Parameter für die Symbolleiste im Einbettungscode nicht zu verwenden. Weitere Informationen finden Sie weiter unten unter Bekannte Probleme (nur Einbettungs-Workflows).

Informationen zu REST API-Autorisierungs-Workflows finden Sie unter REST API-Methoden, die JWT-Autorisierung unterstützen.

Hinweis: Die oben aufgeführten JWT-Ansprüche sind im Abschnitt Registered Claim Names(Link wird in neuem Fenster geöffnet) (Namen registrierter Ansprüche) in der von der IETF (Internet Engineering Task Force) vertriebenen Dokumentation dokumentiert.

Schritt 2: Registrieren Ihres EAS bei Tableau Server

Durch die Registrierung Ihres EAS bei Tableau Server stellen Sie eine Vertrauensbeziehung zwischen dem EAS und Tableau Server- her. Das bedeutet, wenn Benutzer auf Tableau-Inhalte zugreifen, die in Ihre externe Anwendung eingebettet sind, werden sie umgeleitet, um sich beim IdP zu authentifizieren. Der EAS generiert das Authentifizierungstoken, das zur Überprüfung an Tableau Server übergeben wird. Nachdem die Vertrauensstellung überprüft wurde, wird Benutzern der Zugriff auf den eingebetteten Inhalt gewährt.

Nach der Registrierung des EAS gilt die hergestellte Vertrauensstellung für alle Sites auf Tableau Server.

Hinweis: Einige EAS unterstützen die Option zum Anzeigen eines Dialogfelds, in dem die Benutzer um die Zustimmung gebeten werden, dass die Anwendung auf Tableau-Inhalte zugreifen darf. Um die beste Erfahrung für Ihre Benutzer zu gewährleisten, empfehlen wir Ihnen, Ihren EAS so zu konfigurieren, dass er auf die Anfrage der externen Anwendung automatisch im Namen der Benutzer die Zustimmung erteilt.

  1. Melden Sie sich als Tableau Server-Administrator bei der Weboberfläche von TSM (Tableau Services Manager) an. Weitere Informationen finden Sie unter Anmelden bei der Webschnittstelle von Tableau Services Manager.

  2. Navigieren Sie zu "Benutzeridentität und Zugriff" > "Autorisierungsserver" und gehen Sie wie folgt vor:
    1. Aktivieren Sie das Kontrollkästchen OAuth-Zugriff für eingebettete Inhalte aktivieren.

    2. Fügen Sie im Textfeld Aussteller-URL die Aussteller-URL des EAS ein.

    3. Klicken Sie auf die Schaltfläche Ausstehende Änderungen speichern.

  3. Wenn Sie fertig sind, gehen Sie wie folgt vor:
    1. Klicken Sie rechts oben auf der Seite auf die Schaltfläche Ausstehende Änderungen.

    2. Klicken Sie rechts unten auf der Seite auf die Schaltfläche Änderungen übernehmen und neu starten, um Tableau Server zu beenden und neu zu starten.

  1. Öffnen Sie als Administrator eine Eingabeaufforderung auf dem Ausgangsknoten (auf dem TSM installiert ist) in dem Cluster.
  2. Führen Sie die folgenden Befehle aus:

    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

Schritt 3: Einbetten nächster Schritte

Für Einbettungs-Workflows

Nachdem Sie Tableau Server- für die Verwendung Ihres EAS konfiguriert haben, müssen Sie Ihrer externen Anwendung Einbettungscode hinzufügen. Stellen Sie sicher, dass Sie das gültige JWT, das von Ihrem EAS generiert wurde (wie in Schritt 1 beschrieben), in die Webkomponente einschließen, die Ihre externe Anwendung aufruft.

Weitere Informationen zum Einbetten von Tableau-Inhalten finden Sie in einem oder beiden der folgenden Abschnitte:

Hinweis: Damit Benutzer beim Zugriff auf eingebettete Inhalte erfolgreich authentifiziert werden, müssen Browser so konfiguriert sein, dass sie Cookies von Drittanbietern zulassen.

Für REST API-Autorisierungs-Workflows

Nachdem das JWT konfiguriert wurde, müssen Sie das gültige JWT der REST API-Anmeldeanforderung für autorisierten Zugriff hinzufügen. Weitere Informationen finden Sie unter Zugriffsbereiche für verbundene Apps.

Bekannte Probleme (nur Einbettungs-Workflows)

Bei der Verwendung von verbundenen Apps gibt es einige bekannte Probleme, die in einer zukünftigen Version behoben werden.

  • Symbolleistenfeatures: Wenn für eingebettete Inhalte der Symbolleistenparameter definiert ist, funktionieren manche Symbolleistenfeatures nicht. Um dieses Problem zu umgehen, empfehlen wir Ihnen, den Symbolleistenparameter (wie im folgenden Beispiel gezeigt) auszublenden.

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

  • Veröffentlichte Datenquellen: Veröffentlichte Datenquellen, für die festgelegt ist, dass Benutzer Datenbankanmeldeinformationen eingeben müssen, werden nicht angezeigt. Um dieses Problem zu umgehen, empfehlen wir, dass Datenquellenbesitzer stattdessen ihre eigenen Datenbankanmeldeinformationen einbetten (sofern möglich).

Problembehebung

Wenn eingebettete Inhalte in Ihrer externen Anwendung nicht angezeigt werden oder wenn die Tableau-REST API-Autorisierung fehlschlägt, können Sie die Entwicklertools eines Browsers verwenden, um Fehlercodes zu überprüfen und zu identifizieren, die möglicherweise mit dem in Tableau Server aktivierten EAS-Feature im Zusammenhang stehen.

In der folgenden Tabelle finden Sie die Beschreibungen der Fehlercodes und der möglichen Lösung.

FehlercodeZusammenfassungBeschreibungMögliche Lösung oder Erklärung
5SYSTEM_USER_NOT_FOUNDTableau-Benutzer konnte nicht gefunden werden
Um dieses Problem zu beheben, überprüfen Sie, ob der Anspruchswert "sub" (Subjekt) im JWT der "username" (Benutzername) für den authentifizierten Tableau Server ist. Bei dem Wert wird die Groß-/Kleinschreibung berücksichtigt.
16LOGIN_FAILEDFehler beim AnmeldenDieser Fehler wird meist durch eines der folgenden Anspruchsprobleme im JWT verursacht:
  • Die Ablaufzeit "exp" (Expiration Time) überschreitet die standardmäßig maximale Gültigkeitsdauer. Um dieses Problem zu beheben, überprüfen Sie registrierte Ansprüche(Link wird in neuem Fenster geöffnet), die für ein gültiges JWT erforderlich sind, und stellen Sie sicher, dass der richtige Wert verwendet wird. Um die maximale Gültigkeitsdauer zu ändern, können Sie den Befehl vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes verwenden.
  • "sub" (Subjekt) ruft einen unbekannten Benutzer auf. Um dieses Problem zu beheben, vergewissern Sie sich, dass der Anspruch "sub" den Wert "username" hat. Bei dem Wert wird die Groß-/Kleinschreibung berücksichtigt.
10081COULD_NOT_RETRIEVE_IDP_METADATAEAS-Metadaten-Endpunkt fehltUm dieses Problem zu beheben, überprüfen Sie, ob der EAS richtig konfiguriert ist und der richtige Aussteller aufgerufen wird.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIEDFehlender AusstellerUm dieses Problem zu beheben, überprüfen Sie, ob der richtige Aussteller aufgerufen wird. Zum Ändern der Aussteller-URL können Sie den Befehl vizportal.oauth.external_authorization_server.issuer verwenden.
10083BAD_JWTDer JWT-Header enthält Probleme.Im JWT-Header fehlen die Ansprüche "kid" (geheime ID) or "clientId" (Issuer, Aussteller). Um dieses Problem zu beheben, stellen Sie sicher, dass diese Informationen enthalten sind.
10084JWT_PARSE_ERRORJWT enthält ProblemeÜberprüfen Sie Folgendes, um dieses Problem zu beheben:
  • Ob der im JWT referenzierte Wert "aud" (Audience, Zielgruppe) den Wert "tableau" verwendet. Bei dem Wert wird die Groß-/Kleinschreibung berücksichtigt.
  • Ob die Angaben "aud" (Audience, Zielgruppe) und "sub" (Subjekt) sind im JWT enthalten.
10085COULD_NOT_FETCH_JWT_KEYSJWT konnte Schlüssel nicht findenDas Geheimnis konnte nicht gefunden werden.

Um dieses Problem zu beheben, überprüfen Sie, ob der richtige Aussteller aufgerufen wird. Zum Ändern der Aussteller-URL können Sie den Befehl vizportal.oauth.external_authorization_server.issuer verwenden.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNEs gibt ein Problem mit dem JWT-Signaturalgorithmus.Um das Problem zu beheben, können Sie den Signaturalgorithmus entfernen. Weitere Informationen finden Sie unter vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
10088RSA_KEY_SIZE_INVALIDEin Problem mit JWT-Signaturanforderungen liegt vor.Um dieses Problem zu beheben, überprüfen Sie mit dem EAS oder IdP, dass das JWT mit einer RSA-Schlüsselgröße von 2.048 signiert ist.
10091JTI_ALREADY_USEDEindeutiges JWT erforderlichDas JWT wurde bereits im Authentifizierungsprozess verwendet. Um dieses Problem zu beheben, muss der EAS oder IdP ein neues JWT generieren.
10094MISSING_REQUIRED_JTIFehlende JWT-IDUm dieses Problem zu beheben, stellen Sie sicher, dass die "jti" (JWT-ID) im JWT enthalten ist.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD Die Ablaufzeit "exp" (ExpirationTime) überschreitet die standardmäßig maximale Gültigkeitsdauer. Um dieses Problem zu beheben, überprüfen Sie registrierte Ansprüche(Link wird in neuem Fenster geöffnet), die für ein gültiges JWT erforderlich sind, und stellen Sie sicher, dass der richtige Wert verwendet wird. Um die maximale Gültigkeitsdauer zu ändern, können Sie den Befehl vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes verwenden.
10097SCOPES_MALFORMEDProbleme mit GeltungsbereichsansprüchenDieser Fehler kann auftreten, wenn der Anspruch "scp" (Scope) entweder im JWT fehlt oder nicht als Listentyp übergeben wird. Um dieses Problem zu beheben, überprüfen Sie, ob "scp" im JWT enthalten ist und als Listentyp übergeben wird. Hilfe zur Fehlerbehebung bei einem JWT finden Sie unter Debugger(Link wird in neuem Fenster geöffnet) auf der auth0-Site.
10098JWT_UNSIGNED_OR_ENCRYPTEDDas JWT ist unsigniert oder verschlüsseltTableau unterstützt keine unsignierten oder verschlüsselten JWT.
10099SCOPES_MISSING_IN_JWTAnspruch auf fehlende BereicheDem JWT fehlt der erforderliche Anspruch "scp" (Geltungsbereich). Um dieses Problem zu beheben, stellen Sie sicher, dass "scp" im JWT enthalten ist. Hilfe zur Fehlerbehebung bei einem JWT finden Sie unter Debugger(Link wird in neuem Fenster geöffnet) auf der auth0-Site.
10100JTI_PERSISTENCE_FAILEDUnerwarteter JWT-ID-FehlerEs ist ein unerwarteter Fehler mit der "jti" (JWT-ID) aufgetreten. Um dieses Problem zu beheben, muss ein neues JWT mit einem neuen "jti" generiert werden.
Vielen Dank für Ihr Feedback!