Konfigurieren von verbundenen Apps mit OAuth 2.0-Vertrauensstellung

Als Administrator einer Tableau Cloud-Site können Sie einen externen Autorisierungsserver (External Authorization Server, EAS) registrieren, um mithilfe des OAuth 2.0-Standardprotokolls eine Vertrauensbeziehung zwischen Ihrer Tableau Cloud-Site 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 Ihre Tableau Cloud-Site 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 Cloud angemeldet. Führen Sie die unten aufgeführten Schritte durch, um Ihren EAS bei Ihrer Tableau Cloud-Site 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 Cloud 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.
  • Damit das Sitzungs-Token gültig ist, müssen die Uhren der externen Anwendung und des Servers, der die externe Anwendung hostet, auf koordinierte Weltzeit (UTC) eingestellt sein. Wenn eine der Uhren einen anderen Standard verwendet, wird der verbundenen App nicht vertraut.

Schritt 1: Bevor Sie beginnen

Um einen EAS bei Ihrer Tableau Cloud-Site 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, in HTTPS, 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.
"sub" (Subject, Antragsteller)Benutzername (E-Mail-Adresse) des authentifizierten Tableau Cloud-Benutzers.
"aud" (Audience, Zielgruppe)

Der Wert muss sein: "tableau:<site_luid>"

Um die Site-LUID zu erhalten, können Sie die Anmeldemethode der Tableau-REST-API verwenden oder die folgenden Schritte ausführen, um die Site-LUID zu kopieren. Hinweis: Bevor Sie die Site-ID kopieren können, müssen Sie einen EAS nach dem hier beschriebenen Verfahren registrieren.

  1. Wählen Sie Einstellungen > Verbundene Apps aus und wählen Sie dann die verbundene App Externer Autorisierungsserver aus.
  2. Klicken Sie auf die Schaltfläche Site-ID kopieren.

"exp" (Ablaufzeit)

Ein gültiges JWT darf nicht abgelaufen sein. Die Ablaufzeit (in UTC) des JWT muss innerhalb der maximalen Gültigkeitsdauer liegen, die 10 Minuten beträgt.

"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"
"tableau:metrics:embed"
"tableau:ask_data:embed"

Hinweise:

  • Werte müssen als ein Listentyp übergeben werden.
  • Bei tableau:views:embed berücksichtigt der Bereich die bereits in Tableau Cloud 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.

(Benutzerattribute)

Nur für Einbettungs-Workflows.

Sie können Benutzerattribute in das JWT aufnehmen. Wenn Benutzerattributfunktionen dann in eingebetteten Inhalten verwendet werden, überprüft Tableau den Kontext des authentifizierten Benutzers und stellt fest, welche Daten zur Laufzeit angezeigt werden können.

Hinweise:

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 Cloud

Durch die Registrierung Ihres EAS bei Tableau Cloud stellen Sie eine Vertrauensbeziehung zwischen dem EAS und Ihrer Tableau Cloud-Site 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 Cloud übergeben wird. Nachdem die Vertrauensstellung überprüft wurde, wird Benutzern der Zugriff auf den eingebetteten Inhalt gewährt.

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 Site-Administrator bei Tableau Cloud an.

  2. Wählen Sie im linken Bereich Einstellungen > Verbundene Apps aus.

  3. Klicken Sie auf die Schaltfläche mit dem Dropdown-Pfeil "Neue verbundene App" und wählen Sie OAuth 2.0-Vertrauensstellung aus.

  4. Gehen Sie im Dialogfeld "Verbundene App erstellen" folgendermaßen vor:
    1. Fügen Sie im Textfeld Aussteller-URL die Aussteller-URL des EAS ein.

    2. Wählen Sie die Option Verbundene App aktivieren aus. Aus Sicherheitsgründen wird eine verbundene App beim Erstellen standardmäßig auf "Deaktiviert" gesetzt.

    3. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Erstellen.

  5. Nachdem die verbundene App erstellt wurde, kopieren Sie die Standort-ID der verbundenen App . Die Website-ID wird für den oben in Schritt 1 beschriebenen Anspruch „aud“ (Zielgruppe) des JWT verwendet.

Schritt 3: Nächste Schritte

Für Einbettungs-Workflows

Nachdem Sie Ihre Tableau Cloud-Site 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.

Steuern, wo Inhalte eingebettet werden können, indem Sie die Domänen-Zulassungsliste zum Einbetten verwenden

Ab Juni 2023 (Tableau-Version 2023.2) können Sie und Ihre Benutzer mithilfe der Methode „Einbettungseinstellungen für Website aktualisieren“ in der Tableau-REST-API steuern, ob Tableau-Inhalte ohne Einschränkung eingebettet werden können oder dies auf bestimmte Domänen beschränkt sein soll.

Standardmäßig ist die Site-Einstellung unrestrictedEmbedding für die Einbettung auf true festgelegt, um ein uneingeschränktes Einbetten zu ermöglichen. Alternativ können Sie und Ihre Benutzer die Einstellung auf false festlegen und mithilfe des Parameters allowList die Domänen angeben, in denen Tableau-Inhalte in externen Anwendungen eingebettet werden können.

Weitere Informationen finden Sie unter einem der beiden folgenden Themen:

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://online.tableau.com/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 Ihrer Tableau Cloud -Site 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 werdenUm dieses Problem zu beheben, überprüfen Sie, ob der Anspruchswert "sub" (Subjekt) im JWT der Benutzername (E-Mail-Adresse) des authentifizierten Tableau Cloud-Benutzers 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 korrekte Wert 10 Minuten nicht überschreitet.
  • Der Wert in "sub" (Subjekt) ruft einen unbekannten Benutzer auf. Um dieses Problem zu beheben, vergewissern Sie sich, dass der Wert "sub" der Benutzername (E-Mail-Adresse) des authentifizierten Tableau Cloud-Benutzers ist.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDEAS nicht gefundenUm dieses Problem zu beheben, überprüfen Sie, ob der richtige Aussteller aufgerufen wird.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDEAS-Limit überschrittenDie Site hat die maximal zulässige Anzahl (1) registrierter externer Autorisierungsserver (EAS) erreicht.
144INVALID_ISSUER_URLUngültige Aussteller-URLDie Aussteller-URL ist ungültig oder das Attribut "iss" (Issuer, Aussteller) fehlt im JWT.
149EAS_INVALID_JWKS_URIFehlender JWKS-URIDer JWKS-URI ist in den IdP-Metadaten nicht vorhanden oder der JWKS-URI ist in Tableau nicht konfiguriert. Um dieses Problem zu beheben, konfigurieren Sie einen gültigen JWKS-URI.
150EAS_RETRIEVE_JWK_SOURCE_FAILEDFehler beim Abrufen der SchlüsselquelleUm dieses Problem zu beheben, überprüfen Sie, ob der JWKS-URI richtig konfiguriert ist.
151EAS_RETRIEVE_METADATA_FAILEDFehler beim Abrufen von Metadaten von issuerUrlUm dieses Problem zu beheben, überprüfen Sie, ob der JWKS-URI richtig konfiguriert ist.
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.
10083BAD_JWTDer JWT-Header enthält Probleme.Im JWT-Header fehlen die Ansprüche "kid" (geheime ID) oder "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) im JWT enthalten sind.
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.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNEs gibt ein Problem mit dem JWT-Signaturalgorithmus.Um das Problem zu beheben, können Sie den Signaturalgorithmus entfernen.
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.
10092NOT_IN_DOMAIN_ALLOW_LISTDie Domäne des eingebetteten Inhalts ist nicht angegebenUm dieses Problem zu beheben, stellen Sie sicher, dass die Einstellung unrestrictedEmbedding auf true festgelegt ist oder der Parameter domainAllowlist die Domänen enthält, in die Tableau-Inhalte mithilfe der Methode Einbettungseinstellungen für die Site aktualisieren(Link wird in neuem Fenster geöffnet) in der Tableau REST-API eingebettet werden.
10094MISSING_REQUIRED_JTIFehlende JWT-IDUm dieses Problem zu beheben, stellen Sie sicher, dass die "jti" (JWT-ID) im JWT enthalten ist.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS deaktiviertDie verbundene App für das in der Site registrierte EAS ist deaktiviert.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  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 korrekte Wert 10 Minuten nicht überschreitet.
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 für Bereiche fehltDem 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!