Übersicht zu Snowflake OAuth¶
Snowflake OAuth verwendet den in Snowflake integrierten OAuth-Dienst, um eine OAuth-basierte Authentifizierung bereitzustellen.
Unter diesem Thema wird Snowflake OAuth und die Verwendung von Snowflake als OAuth-Ressource und Autorisierungsserver für den sicheren Zugriff auf Snowflake-Daten beschrieben.
Snowflake OAuth verwendet den integrierten OAuth-Dienst von Snowflake und unterstützt die folgenden Anwendungen:
Einmalige Verwendung von Aktualisierungstoken¶
You can use single-use refresh tokens to mitigate theft or reuse of refresh tokens. For more information, see Verwendung von Aktualisierungstoken zur einmaligen Verwendung für Snowflake OAuth-Sicherheitsintegrationen
Local applications¶
Snowflake bietet eine vereinfachte Möglichkeit, lokale Anwendungen, d. h. Desktop-Anwendungen, so einzurichten, dass Snowflake OAuth zum Authentifizieren verwendet wird. Die Anwendung kann sich durch Festlegen nur einer einzigen Verbindungsoption authentifizieren. Es ist keine zusätzliche Einrichtung erforderlich. Weitere Informationen dazu finden Sie unter Verwenden von Snowflake OAuth für lokale Anwendungen.
Partneranwendungen¶
Informationen zum Konfigurieren der Unterstützung finden Sie unter Snowflake OAuth für Partneranwendungen konfigurieren.
Weitere Informationen zur Verwendung von OAuth unter Umgehung des öffentlichen Internets finden Sie unter Partneranwendungen.
Kundenspezifische Clients¶
Snowflake unterstützt kundenspezifische Clients, die von Ihrer Organisation konfiguriert wurden. Informationen zum Konfigurieren der Unterstützung finden Sie unter Snowflake OAuth für kundenspezifische Clients konfigurieren.
Einschränken des Netzwerkdatenverkehrs für Snowflake OAuth¶
Sie können eine Netzwerkrichtlinie mit der Snowflake OAuth-Sicherheitsintegration zur Einschränkung des Netzwerkdatenverkehrs verknüpfen, wenn der Client ein Token von Snowflake als Autorisierungsserver anfordert. Diese Netzwerkrichtlinie regelt auch den Netzwerkdatenverkehr, wenn der Client Snowflake als Ressourcenserver abfragt.
To associate a network policy with the Snowflake OAuth security integration, set the NETWORK_POLICY parameter when creating or updating the integration. For example:
CREATE SECURITY INTEGRATION td_oauth_int2
TYPE = oauth
ENABLED = true
OAUTH_CLIENT = tableau_desktop
OAUTH_REFRESH_TOKEN_VALIDITY = 36000
BLOCKED_ROLES_LIST = ('SYSADMIN');
NETWORK_POLICY = 'allow_private_ip_only';
Eine Netzwerkrichtlinie, die mit der Snowflake OAuth-Sicherheitsintegration verbunden ist, hat keinen Einfluss auf den Netzwerkdatenverkehr zwischen dem Benutzer und Snowflake als Autorisierungsserver. Wenn sich der Benutzer über einen Browser authentifiziert, wird der Netzwerkdatenverkehr durch eine mit dem Benutzer verbundene Netzwerkrichtlinie eingeschränkt.
Das folgende Diagramm zeigt, welche Netzwerkrichtlinie den Netzwerkdatenverkehr vom Client und Benutzer regelt.
Dem Benutzer zugeordnete Netzwerkrichtlinie gilt. Wenn keine Netzwerkrichtlinie auf Benutzerebene vorhanden ist, gilt die Richtlinie auf Kontoebene.
Die der Sicherheitsintegration zugeordnete Netzwerkrichtlinie gilt. Wenn keine Netzwerkrichtlinie auf Integrationsebene vorhanden ist, gilt die Richtlinie auf Kontoebene.
Fehlercodes¶
In der folgenden Tabelle finden Sie Beschreibungen der Fehlercodes im Zusammenhang mit Snowflake OAuth:
Fehlercode |
Fehler |
Beschreibung |
|---|---|---|
390302 |
OAUTH_CONSENT_INVALID |
Problem mit dem Generieren oder Validieren von Zustimmung für einen bestimmten Benutzer |
390303 |
OAUTH_ACCESS_TOKEN_INVALID |
Das Zugriffstoken, das beim Versuch, eine Snowflake-Sitzung herzustellen, angegeben wurde, ist abgelaufen oder ungültig. |
390304 |
OAUTH_AUTHORIZE_INVALID_RESPONSE_TYPE |
Es wurde ein ungültiger Antworttyp |
390305 |
OAUTH_AUTHORIZE_INVALID_STATE_LENGTH |
Der Statusparameter, der als Parameter für den Autorisierungsendpunkt angegeben ist, überschreitet 2.048 Zeichen |
390306 |
OAUTH_AUTHORIZE_INVALID_CLIENT_ID |
Die mit einer angegebenen Client-ID verknüpfte Integration ist nicht vorhanden. |
390307 |
OAUTH_AUTHORIZE_INVALID_REDIRECT_URI |
Die |
390308 |
OAUTH_AUTHORIZE_INVALID_SCOPE |
Entweder ist der angeforderte Bereich kein gültiger Bereich, oder dem Benutzer kann kein vollständiger Zugriff auf die angeforderten Bereiche gewährt werden. |
390309 |
OAUTH_USERNAMES_MISMATCH |
Der Benutzer, als den Sie sich zu authentifizieren versuchten, unterscheidet sich von dem Benutzer, der an das Zugriffstoken gebunden ist. |
390311 |
OAUTH_AUTHORIZE_INVALID_CODE_CHALLENGE_PARAMS |
Entweder die Code-Challenge oder die Code-Challenge-Methode fehlt, ist ungültig oder wird nicht unterstützt. |
Darüber hinaus werden die folgenden Fehler aus dem RFC übernommen und im JSON-Blob zurückgegeben, das während einer nicht erfolgreichen Tokenanforderung oder eines fehlgeschlagenen Tokenaustauschs erstellt wurde:
Fehler |
Beschreibung |
|---|---|
invalid_client |
In Bezug auf die Clientauthentifizierung ist ein Fehler aufgetreten, z. B. war der Client unbekannt, lag ein Konflikt des Clientgeheimnisses vor usw. |
invalid_grant |
Die angegebene Autorisierungsgewährung oder das Aktualisierungstoken sind ungültig, abgelaufen, widerrufen, stimmen nicht mit dem in der Autorisierungsanforderung verwendeten Weiterleitungs-URI überein oder wurden an einen anderen Client ausgestellt. |
unsupported_grant_type |
Es wurde ein Gewährungstyp bereitgestellt, den Snowflake derzeit nicht unterstützt („refresh_token“ und „authorized_code“ sind derzeit die einzigen unterstützten Gewährungstypen). |
invalid_request |
Die Anforderung war falsch formatiert oder konnte nicht verarbeitet werden. |
