Konfigurera OAuth för Amazon Redshift IAM Identity Center

Från och med Tableau 2023.3.2 för lokala installationer (Tableau Desktop, Tableau Server och Tableau Prep) och från och med april 2024 för Tableau Cloud kan du använda OAuth 2.0/OIDC för att federera identitet från en extern identitetsprovider till Amazon Redshift.

Obs! Den här funktionen är inte tillgänglig för OSX på grund av drivrutinsbegränsningar.

De här instruktionerna avser den nyare AWS IAM IDC-tjänsten. Om det gäller ursprunglig IAM-integrering läser du Konfigurera OAuth för Amazon Redshift IAM Identity Center.

Beroende på identitetsprovider finns det olika steg som måste genomföras för att konfigurera integreringen. Detta är en översikt. Tableau kan inte lämna detaljerade anvisningar om hur du konfigurerar AWS eller identitetsprovidern, men detta är det allmänna tillvägagångssättet.

Konfigurera identitetsprovidern

  1. Skapa OAuth-klienter hos identitetsprovidern för Tableau Desktop och Tableau Server eller Tableau Cloud. Tableau Desktop-klienten ska aktivera PKCE och använda http://localhost-omdirigeringar.

  2. Lägg till eventuella anpassade anspråk som ska användas för auktorisering till roller.

  3. Skapa Tableau OAuth-konfigurationsfilerna. Läs dokumentationen hos GitHub(Länken öppnas i ett nytt fönster) och exempel här(Länken öppnas i ett nytt fönster). Vi tar gärna emot exempel för andra identitetsprovider.

    1. Se till att lägga till prefixet ”custom_” i konfigurations-ID:na för Tableau OAuth.

    2. Om identitetsprovidern har stöd för en dynamisk localhost-port inaktiverar du OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL. Om inte, ser du till att lägga till flera URL:er för localhost-återanrop i godkännandelistan i konfigurationsfilen och hos identitetsprovidern.

  4. Installera Tableau OAuth-konfigurationsfiler på stationära datorer och Tableau Server- eller Tableau Cloud-platser.

Steg 2: Konfigurera identitetsprovider och roller i AWS

Läs AWS-dokumentationen för information om hur du gör detta.

Steg 3: Ansluta till Redshift

  1. Anslut till Redshift.

  2. Välj OAuth som Authentication (Autentisering).

  3. Välj Identity Center som Federation Type (Federationstyp).

  4. (Valfritt) Ange Identity Center Namespace (Namnrymd för Identity Center) vid behov.

När allt har konfigurerats korrekt omdirigeras du till identitetsprovidern för att autentisera och auktorisera token för Tableau. Tableau får en åtkomsttoken och uppdateringstoken. Tableau skickar åtkomsttoken till drivrutinen för autentisering.

Okta

Om du använder Okta är det bättre att använda en ”custom authorization server” (anpassad auktoriseringsserver) i stället för ”org authorization server” (organisationens auktoriseringsserver). De anpassade auktoriseringsservrarna är mer flexibla. En anpassad auktoriseringsserver skapas som standard och kallas ”default”. Auktoriserings-URL:en bör se ut så här:

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

Uppdatera drivrutinen

För OAuth med Redshift IAM IDC-tjänsten måste du använda Redshifts ODBC-drivrutin version 2.0.1.0 och senare, som du kan hämta på https://github.com/aws/amazon-redshift-odbc-driver/tags(Länken öppnas i ett nytt fönster). Observera att det inte finns någon v2-drivrutin för OSX.

Felsöka OAuth för Redshift IAM IDC

Om det visas ett felmeddelande om ogiltig/förfallen token från drivrutinen vid den första anslutningen (med en SQLState-felkod som [28000] eller [08001] i felmeddelandet), så har Tableau slutfört OAuth-flödet utan fel men misslyckats med drivrutinen. Detta betyder att det finns en felkonfiguration antingen på AWS-sidan eller hos identitetsprovidern. Det kan också finnas behörighets- eller auktoriseringsfel som returneras från drivrutinen, vilket också ligger utanför Tableaus kontroll.

Det bästa sättet att diagnostisera de här felen är att plocka bort Tableau ur bilden. Du måste först få en åtkomsttoken (standard för IAM IDC) eller uppdateringstoken (om anpassad) att skicka till drivrutinen.

Här är ett exempel med Okta. Nästan alla identitetsprovider gör detta på ungefär samma sätt. Tänk på att du måste ha aktiverat lösenord som behörighetstyp för resursägaren för att använda det här flödet. Ersätt identitetsproviderns URL, klienthemligheten, klient-ID:t, användarnamnet och lösenordet.

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"

När du väl har token kan du använda ett DSN för att testa. Nedan visas ett exempel på hur du använder ODBC-drivrutinshanteraren i Windows. På Mac kan du använda iODBC-drivrutinshanterarens gränssnitt. På Linux kan du använda kommandoradsverktyget isql som ingår i Tableau Server i mappen customer-bin.

Tack för din feedback!Din feedback har skickats in. Tack!