Einrichten von Amazon Redshift IAM Identity Center OAuth
Ab Tableau 2023.3.2 für lokale Versionen (Tableau Desktop, Tableau Server und Tableau Prep) können Sie OAuth 2.0/OIDC verwenden, um Identitäten von einem externen Identitätsanbieter in Amazon Redshift zu bündeln.
Diese Anweisungen gelten für den neueren AWS IAM IDC-Dienst. Informationen zur ursprünglichen IAM-Integration finden Sie unter Einrichten von Amazon Redshift IAM OAuth.
Je nach Identitätsanbieter sind unterschiedliche Schritte zur Konfiguration der Integration erforderlich. Dies ist eine allgemeine Anleitung. Tableau kann keine detaillierten Anweisungen zur Konfiguration von AWS oder IDP bereitstellen – die allgemeine Vorgehensweise sieht jedoch wie folgt aus. Ein ausführliches Beispiel zur Implementierung von Authentifizierung mit Redshift finden Sie in dem Blogbeitrag „Integrate Tableau and Okta with Amazon Redshift using AWS IAM Identity Center(Link wird in neuem Fenster geöffnet) (Integrieren von Tableau und Okta mit Amazon Redshift mittels AWS IAM Identity Center)“.
Schritt 1: Konfigurieren des IDP
Erstellen Sie OAuth-Clients bei dem IDP für Tableau Desktop und Tableau Server oder Tableau Cloud. Am Desktop-Client sollte
PKCE
aktiviert sein undhttp://localhost
-Weiterleitungen sollten verwendet werden.Fügen Sie benutzerdefinierte Ansprüche hinzu, die für die Autorisierung von Rollen verwendet werden sollen.
Erstellen Sie die Tableau-OAuth-Konfigurationsdateien. Informationen dazu finden Sie in der Dokumentation auf Github(Link wird in neuem Fenster geöffnet) und in den Beispielen(Link wird in neuem Fenster geöffnet). Wir freuen uns über Beispiele für andere IDPs.
Achten Sie darauf, den Tableau-OAuth-Konfigurations-IDs die Zeichenfolge
custom_
voranzustellen.Wenn Ihr IDP den dynamischen Localhost-Port unterstützt, deaktivieren Sie
OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL
. Wenn dies nicht der Fall ist, stellen Sie sicher, dass Sie diverse Localhost-Rückruf-URLs zur Zulassungsliste in der Konfigurationsdatei und bei dem IDP hinzufügen.
Installieren Sie die neuen Tableau-OAuth-Konfigurationsdateien in dem
OAuthConfigs
-Ordner, der auf Desktop-Hosts (Tableau Desktop, Tableau Prep Builder, Tableau Bridge) mit den einzelnen Anwendungen verknüpft ist, und auf jeder Tableau Server- und Tableau Cloud-Site, die OAuth verwenden wird.
Schritt 2: Konfigurieren von IDP und Rollen in AWS
Wie das geht, erfahren Sie in Ihrer AWS-Dokumentation.
Schritt 3: Herstellen einer Verbindung zu Redshift
Stellen Sie eine Verbindung zu Redshift her.
Wählen Sie als Authentifizierung „OAuth“ aus.
Wählen Sie als Zusammenführungstyp „Identity Center“ aus.
(Optional) Falls erforderlich, geben Sie den Identity Center-Namespace an.
Wenn ordnungsgemäß konfiguriert, werden Sie zu dem IDP weitergeleitet, um Token für Tableau zu authentifizieren und zu autorisieren. Tableau wird ein Zugriffstoken und Aktualisierungstoken erhalten. Das Zugriffstoken wird zur Authentifizierung an den Treiber gesendet.
Token
In der Standardeinstellung übergibt Redshift OAuth to IAM IDC das Zugriffstoken an den Treiber. Für lokale Kunden – inklusive von Kunden, die Tableau Bridge verwenden – können Sie stattdessen eine TDC-Datei verwenden, um das ID-Token zu übergeben.
<connection-customization class='redshift' enabled='true' version='10.0'> <vendor name='redshift' /> <driver name='redshift' /> <customizations> <customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/> </customizations> </connection-customization>
Weitere Informationen über das Konfigurieren und Installieren von TDC-Dateien finden Sie unter Anpassen und Optimieren einer Verbindung(Link wird in neuem Fenster geöffnet) und Verwenden einer .tdc-Datei mit Tableau Server(Link wird in neuem Fenster geöffnet).
Okta
Wenn Sie Okta verwenden, ist es besser, einen „benutzerdefinierten Autorisierungsserver“ anstelle des „Organisations-Autorisierungsservers“ zu verwenden. Die benutzerdefinierten Autorisierungsserver sind flexibler. Ein benutzerdefinierter Autorisierungsserver wird standardmäßig erstellt und mit dem Namen „default“ (Standard) versehen. Die Autorisierungs-URL sollte wie folgt aussehen:
https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize
Aktualisieren des Treibers
Für Redshift OAuth unter Verwendung des IAM IDC-Dienstes müssen Sie mindestens die Version 2.x des ODBC-Treibers verwenden. Laden Sie die neueste Version des Redshift ODBC-Treibers von der folgenden Stelle herunter: https://github.com/aws/amazon-redshift-odbc-driver/tags(Link wird in neuem Fenster geöffnet). Beachten Sie, dass es für OSX noch keinen v2-Treiber gibt.
Fehlerbehebung bei Redshift IAM IDC OAuth
Diese Fehler lassen sich am besten untersuchen, indem Sie Tableau außen vor lassen. Sie können die Tests stattdessen mithilfe des Treibermanagers oder einem ähnlichen Tool durchführen. Dies gilt nur für die Fehlerbehebung – für die reguläre Verwendung dieses Features sollten Sie keinen DSN- oder „anderen ODBC“-Port verwenden. Damit der Test aussagekräftig ist, sollten die Parameter – mit Ausnahme der Cluster-, Datenbank-, Token- und Namespace-Informationen – dieselben sein wie unten aufgeführt.
Wenn der Treiber beim ersten Herstellen einer Verbindung eine Fehlermeldung bezüglich eines ungültigen/abgelaufenen Tokens zurückgibt (mit einem SQLState-Fehlercode wie [28000] oder [08001]), bedeutet dies, dass Tableau den OAuth-Ablauf erfolgreich abgeschlossen hat und der Fehler ist im Treiber vorliegt. Dies bedeutet, dass entweder bei AWS oder beim IDP eine fehlerhafte Konfiguration vorliegt. Möglicherweise werden vom Treiber auch Berechtigungs- oder Autorisierungsfehler zurückgegeben, was ebenfalls außerhalb der Kontrolle von Tableau liegt.
Vor Beginn des Tests müssen Sie ein Zugriffstoken (Standard für IAM IDC) oder ein Aktualisierungstoken (sofern angepasst) erhalten, das an den Treiber gesendet werden soll.
Hier ist ein Beispiel mit Okta. Fast alle IDPs bieten diese Möglichkeit, die bei allen sehr ähnlich ist. Beachten Sie, dass Sie zur Verwendung dieses Schemas den Kennwort-Gewährungstyp "Ressourcenbesitzer" aktiviert haben müssen. Ersetzen Sie die IDP-URL, den geheimen Clientschlüssel, die Client-ID, den Benutzernamen und das Kennwort.
curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"
Sobald Sie das Token haben, können Sie einen DSN zum Testen verwenden. Unter Windows können Sie den ODBC-Treibermanager verwenden. Unter Linux können Sie das isql-Befehlszeilentool verwenden, das in Tableau Server im Ordner "customer-bin" verfügbar ist.
Tableau empfiehlt, zum Testen keine anderen Plug-Ins zu verwenden, da diese in einer Serverumgebung möglicherweise nicht funktionieren. Sie verwenden entweder ein festes AWS-Profil oder erfordern direkten Zugriff auf einen Browser.
Nachfolgend finden Sie ein Beispiel für die Verwendung des ODBC-Treibermanagers unter Windows.