---
schema_version: "1"
id: 52889d482a81db6c5b22aa1d191568784e0b7de03162c421988d03b4bbb3c8c7
title: "Konfigurieren von externem OAuth für Snowflake: Flow für Client-Anmeldeinformationen"
collection: tableau
version: next
locale: de-de
portal_url: https://docs.salesforce.com/tableau/next/de-de/server-linux/config_oauth_snowflake_client_creds.md
canonical_url: https://help.tableau.com/v0.0/server-linux/de-de/config_oauth_snowflake_client_creds.htm
source_site: help.tableau.com
content_type: documentation
content_hash: d4698f5423f8aa31ccfa0b9ee13170f00e8687c81e3e608064217d71d515eb35
description: Configure Azure AD OAuth and modern authentication for Azure and Microsoft connectors in Tableau Server.
---
[Zum Hauptinhalt springen](#main-content)

# Konfigurieren von externem OAuth für Snowflake: Flow für Client-Anmeldeinformationen

Die Authentifizierung mit OAuth-Client-Anmeldeinformationen ermöglicht Computer-zu-Computer-Verbindungen zu Snowflake

ohne Benutzerinteraktion. Diese Methode ist ideal geeignet für:

- Dienstkonten für automatisierte Datenaktualisierungen
- Geplante Extraktaufträge
- CI/CD-Pipelines
- Veröffentlichte Datenquellen, die eingebettete Anmeldeinformationen erfordern

Im Gegensatz zu gewöhnlichem OAuth (das den Autorisierungscode-Flow verwendet) werden Benutzer beim Flow für Client-Anmeldeinformationen nicht aufgefordert,

sich anzumelden. Stattdessen authentifiziert sich Tableau direkt bei Ihrem Identitätsanbieter mithilfe von

Client-ID und -Geheimnis.

**Hinweis:** Der Flow für Client-Anmeldeinformationen erfordert das externe OAuth-Feature von Snowflake mit einem unterstützten Identitätsanbieter. Das ist der Unterschied zu nativem OAuth von Snowflake.

## Voraussetzungen

Zum Verwenden von OAuth-Client-Anmeldeinformationen mit Snowflake benötigen Sie Folgendes:

| Anforderung | Beschreibung |
| --- | --- |
| Identitätsanbieter | Okta, Azure AD oder Ping Federate, zum Gewähren von Client-Anmeldeinformationen konfiguriert |
| Snowflake-Konto | Enterprise Edition (oder höher) mit ACCOUNTADMIN-Zugriff |
| OAuth-Anwendung | API-Dienste (Okta), App-Registrierung (Azure AD) oder gleichwertig |
| Benutzerdefinierte Bereiche | Bereiche für Snowflake-Rollenzuweisung (z. B. „session:role:SYSADMIN“) |

## Konfigurieren Ihres Identitätsanbieters

In den folgenden Schritten wird Okta als Beispiel verwendet. Informationen über die Konfiguration von Client-Anmeldeinformationen bei anderen Anbietern entnehmen Sie bitte deren Dokumentation.

### Schritt 1: Erstellen einer API-Dienste-Anwendung

1. Melden Sie sich in Ihrer Okta-Administratorkonsole an.
2. Wechseln Sie zu \*\***Applications** > **Applications** (Anwendungen > Anwendungen).
3. Wählen Sie \*\* **Create App Integration** App-Integration erstellen) aus.
4. Wählen Sie \*\***API Services**\*\* (API-Dienste) und dann \*\***Next** (Weiter) aus.
5. Geben Sie einen Anwendungsnamen ein (z. B. `snowflake-tableau-service`).
6. Wählen Sie **Save** (Speichern) aus.
7. Kopieren Sie die **Client-ID** und das **Client-Geheimnis**. Sie benötigen diese Werte später.

### Schritt 2: Deaktivieren von DPoP (falls aktiviert)

Für den Client-Anmeldeinformationen-Flow muss DPoP (Demonstrating Proof of Possession) deaktiviert sein.

1. Wechseln Sie in Ihren Anwendungseinstellungen zu **General** > **Client Credentials** (Allgemein > Client-Anmeldeinformationen).
2. Deaktivieren Sie das Kontrollkästchen **Require Demonstrating Proof of Possession (DPoP) header in token requests** (Erfordert DPoP-Kopfzeile in Tokenanforderungen).
3. Wählen Sie **Save** (Speichern) aus.

### Schritt 3: Hinzufügen benutzerdefinierter Bereiche

Snowflake benötigt benutzerdefinierte Bereiche, um der authentifizierten Sitzung Rollen zuzuweisen.

1. Wechseln Sie zu **Security** > **API** > **Authorization Servers** (Sicherheit > API > Autorisierungsserver).
2. Wählen Sie den standardmäßigen Autorisierungsserver (**Default**) aus (oder Ihren benutzerdefinierten Server).
3. Wählen Sie die Registerkarte **Scopes** (Bereiche) aus, und klicken Sie dann auf **Add Scope** (Bereich hinzufügen).
4. Fügen Sie die folgenden Bereiche hinzu:
    
    | Bereichsname | Beschreibung |
    | --- | --- |
    | snowflake | Allgemeiner Zugriffsbereich für Snowflake |
    | session:role:SYSADMIN | Weist die SYSADMIN-Rolle zu (die Sie an Ihre Rolle anpassen müssen) |
    
    **Hinweis:** Erstellen Sie weitere Bereiche für alle anderen Rollen, die Ihr Dienstkonto benötigt.

### Schritt 4: Konfigurieren einer Zugriffsrichtlinie

1. Wählen Sie die Registerkarte **Access Policies** (Zugriffsrichtlinien) aus.
2. Wählen Sie eine vorhandene Richtlinie aus, oder erstellen Sie eine neue.
3. Fügen Sie eine Regel mit den folgenden Einstellungen hinzu:
    
    - **Grant type** (Berechtigungstyp): Client-Anmeldeinformationen
    - **Scopes** (Bereiche): Beliebige Bereiche (oder wählen Sie bestimmte Bereiche aus)
4. Klicken Sie auf **Create Rule** (Regel erstellen) oder **Save** (Speichern).

## Konfigurieren von Snowflake

Führen Sie die folgenden SQL-Anweisungen in Snowflake als ACCOUNTADMIN aus. Ersetzen Sie die Platzhalterwerte durch Ihre Konfiguration.

### Schritt 1: Erstellen der externen OAuth-Integration

USE ROLE ACCOUNTADMIN;

CREATE OR REPLACE SECURITY INTEGRATION okta\_oauth\_integration
  TYPE = EXTERNAL\_OAUTH
  ENABLED = TRUE
  EXTERNAL\_OAUTH\_TYPE = OKTA
  EXTERNAL\_OAUTH\_ISSUER = 'https://<your-okta-domain>.okta.com/oauth2/default'
  EXTERNAL\_OAUTH\_JWS\_KEYS\_URL = 'https://<your-okta-domain>.okta.com/oauth2/
default/v1/keys'
  EXTERNAL\_OAUTH\_TOKEN\_USER\_MAPPING\_CLAIM = 'sub'
  EXTERNAL\_OAUTH\_SNOWFLAKE\_USER\_MAPPING\_ATTRIBUTE = 'login\_name'
  EXTERNAL\_OAUTH\_AUDIENCE\_LIST = ('api://default', 'snowflake')
EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE = 'ENABLE';

| Parameter | Beschreibung |
| --- | --- |
| `EXTERNAL_OAUTH_TYPE` | Ihr Identitätsanbieter: `OKTA` , `AZURE` oder `PING_FEDERATE` |
| `EXTERNAL_OAUTH_ISSUER` | Die Aussteller-URL von Ihrem Autorisierungsserver |
| `EXTERNAL_OAUTH_JWS_KEYS_URL` | Der JWKS-Endpunkt für die Tokenvalidierung |
| `EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLA IM` | Der JWT-Anspruch, der den Benutzer identifiziert. Verwenden Sie `sub` für Okta. |
| `EXTERNAL_OAUTH_ANY_ROLE_MODE` | Legen Sie `ENABLE` fest, um Rollenzuweisung über Bereiche zu erlauben. |

### Schritt 2: Erstellen eines Dienstbenutzers

Erstellen Sie einen Snowflake-Benutzer mit einem Anmeldenamen (`LOGIN_NAME`), der mit der OAuth-Client-ID übereinstimmt.

CREATE USER IF NOT EXISTS service\_account\_user  
  LOGIN\_NAME = '<your-okta-client-id>'  
  DISPLAY\_NAME = 'OAuth Service Account'  
  MUST\_CHANGE\_PASSWORD = FALSE  
  DISABLED = FALSE;
  
\-- Grant role to the service user  
GRANT ROLE SYSADMIN TO USER service\_account\_user;
  
\-- Set the default role  
ALTER USER service\_account\_user SET DEFAULT\_ROLE = 'SYSADMIN';
  
\-- Grant warehouse access  
GRANT USAGE ON WAREHOUSE <your-warehouse> TO USER service\_account\_user;
  
\-- Grant database and schema access  
GRANT USAGE ON DATABASE <your-database> TO USER service\_account\_user;  
GRANT USAGE ON SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;  
GRANT SELECT ON ALL TABLES IN SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;

**Wichtig:** Der `LOGIN_NAME` muss exakt mit dem `sub`\-Anspruch in dem OAuth-Token übereinstimmen. Bei Okta-API-Dienste-Anwendungen ist dies die Client-ID.

## Herstellen einer Verbindung von Tableau Desktop aus

1. Wählen Sie in Tableau Desktop **Verbinden** > **Snowflake** aus.
2. Geben Sie die Einzelheiten Ihrer Verbindung ein:
    
    | Feld | Wert |
    | --- | --- |
    | Server | Ihre Snowflake-Konto-URL (z. B. `account.snowflakecomputing.com`) |
    | Rolle | Die zu verwendende Rolle (z. B. `SYSADMIN`) |
    | Warehouse | Ihr Snowflake-Warehouse |
    | Authentifizierung | OAuth-Client-Anmeldeinformationen |
3. Geben Sie die OAuth-Konfiguration ein:
    
    | Feld | Wert |
    | --- | --- |
    | OAuth-Token-Anforderungs-URL | `https://<your-okta-domain>.okta.com/oauth2/default/ v1/token` |
    | Benutzername | Ihre OAuth-Client-ID |
    | Kennwort | Ihr OAuth-Client-Geheimnis |
    | OAuth-Bereich | `snowflake session:role:SYSADMIN` |
    
    **Hinweis:** Der OAuth-Bereich muss alle benutzerdefinierten Bereiche beinhalten, die Sie für die Rollenzuweisung konfiguriert haben.
4. Wählen Sie **Anmelden** aus.

## Veröffentlichen in Tableau Cloud oder Tableau Server

Beim Veröffentlichen einer Arbeitsmappe oder Datenquelle, die OAuth-Client-Anmeldeinformationen verwendet, müssen Sie wie folgt durchführen:

1. Wählen Sie im Dialogfeld **Veröffentlichen** die Option **Bearbeiten** neben **Datenquellen** aus.
2. Wählen Sie bei **Authentifizierung** die Option **Eingebettetes Kennwort** aus.
3. Die Client-Anmeldeinformationen werden in dem veröffentlichten Inhalt eingebettet.

**Wichtig:** Anders als bei gewöhnlichem OAuth werden Client-Anmeldeinformationen als eingebettete Kennwörter behandelt. Benutzer, die auf die veröffentlichten Inhalte zugreifen, verwenden die Dienstkonto-Anmeldeinformationen, nicht ihre eigene Identität.

### Rotieren der Anmeldeinformationen

Wenn Ihr OAuth-Client-Geheimnis rotiert wird, müssen Sie die eingebetteten Anmeldeinformationen in Tableau Cloud aktualisieren:

1. Melden Sie sich in Tableau Cloud an.
2. Navigieren Sie zu der veröffentlichten Datenquelle.
3. Wählen Sie **Verbindungen** aus.
4. Aktualisieren Sie die Verbindung mit dem neuen Client-Geheimnis.

Verwenden Sie bei automatisierter Rotation die Tableau-REST API, um Verbindungs-Anmeldeinformationen programmgesteuert zu aktualisieren.

## Häufig gestellte Fragen

### Wann sollte ich OAuth-Client-Anmeldeinformationen anstelle von gewöhnlichem OAuth verwenden?

Verwenden Sie Client-Anmeldeinformationen, wenn Sie eine unbeaufsichtigte Authentifizierung (von Computer-zu-Computer) benötigen. Bei gewöhnlichem

OAuth ist eine Benutzerinteraktion für die erstmalige Anmeldung und dann in regelmäßigen Abständen eine erneute Authentifizierung erforderlich. Bei Client-Anmeldeinformationen

wird eine Dienstkontoidentität verwendet, und Benutzerinteraktionen sind nicht erforderlich.

### Kann ich Client-Anmeldeinformationen mit nativem OAuth von Snowflake verwenden?

Nein. Natives OAuth von Snowflake unterstützt nur den Autorisierungscode-Flow. Client-Anmeldeinformationen erfordern externes OAuth mit einem unterstützten Identitätsanbieter (Okta, Azure AD oder Ping Federate).

### Wie nehme ich die Rotation von Geheimnissen für veröffentliche Inhalte vor?

Wenn Ihr OAuth-Client-Geheimnis rotiert wird, müssen Sie die eingebetteten Anmeldeinformationen in Tableau Cloud aktualisieren. Sie können dies manuell über die Tableau Cloud-Benutzeroberfläche oder programmgesteuert über die Tableau-REST API durchführen. Erwägen Sie, diesen Vorgang im Rahmen Ihres Workflows für die Rotation von Geheimnissen zu automatisieren.

### Warum schlägt meine Verbindung mit einem Rollenfehler fehl, obwohl „EXTERNAL\_OAUTH\_ABUSY\_ROLE\_MODE“ aktiviert ist?

Snowflake benötigt Rolleninformationen im OAuth-Token. Fügen Sie Ihrem Autorisierungsserver einen benutzerdefinierten Bereich hinzu (z. B. `session:role:SYSADMIN`), und tragen Sie ihn in dem Feld „OAuth-Bereich“ ein, wenn Sie eine Verbindung von Tableau aus herstellen.

## Problembehebung

| Fehlermeldung | Ursache | Lösung |
| --- | --- | --- |
| „Benutzer ist nicht vorhanden oder nicht autorisiert“ | Snowflake-Benutzer `LOGIN_NAME` stimmt nicht mit der OAuth-Client-ID überein | Legen Sie den `LOGIN_NAME` (Anmeldename) des Benutzers so fest, dass er mit dem `sub`\-Anspruch (Client-ID für Okta) übereinstimmt. |
| „Die angeforderte Rolle ist im Zugriffstoken nicht aufgeführt“ | Rollenbereich im Token fehlt | Fügen Sie `session:role:<ROLE>` zu Ihrem Autorisierungsserver hinzu, und nehmen Sie ihn in den OAuth-Bereich auf. |
| „Ungültiger DPoP-Beweis“ | DPoP ist in Okta aktiviert | Deaktivieren Sie „Require Demonstrating Proof of Possession (DPoP)“ in Ihrer Okta-App. |
| „Ungültiger Bereich“ | Benutzerdefinierte Bereiche nicht konfiguriert | Fügen Sie Ihrem Autorisierungsserver die erforderlichen Bereiche hinzu, tragen Sie `openid` nicht mit ein. |
| Fehler bei der Tokenvalidierung | Falsche(r) JWKS-URL oder -Aussteller | Vergewissern Sie sich, dass `EXTERNAL_OAUTH_JWS_KEYS _URL` und `EXTERNAL_OAUTH_ISSUER` mit Ihrem Autorisierungsserver übereinstimmen. |

## Siehe auch

- [Konfigurieren von OAuth für Snowflake-Verbindungen in Tableau Server](https://help.tableau.com/v0.0/server-linux/de-de/config_oauth_snowflake.htm) – Erfahren Sie mehr über gewöhnliche OAuth-Authentifizierung mit Snowflake.
- [External OAuth Security Integrations](https://docs.snowflake.com/en/user-guide/oauth-external-overview) (Externe OAuth-Sicherheitsintegrationen) – Snowflake-Dokumentation über die Konfiguration externer OAuth-Anbieter.
- [Okta Client Credentials Flow](https://developer.okta.com/docs/guides/implement-grant-type/clientcreds/main/) (Flow für Okta-Client-Anmeldeinformationen) – Okta-Dokumentation zum Implementieren von Client-Anmeldeinformationen.
- [Aktualisieren einer Datenquellenverbindung](https://help.tableau.com/current/api/rest_api/de-de/REST/rest_api_ref_data_sources.htm#update_data_source_connection) – Referenz zur Tableau-REST API für das Aktualisierungen von Anmeldeinformationen.