Ü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:
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.
Netzwerkrichtlinien¶
Sie können eine dedizierte Netzwerkrichtlinie nur mit Snowflake OAuth integrieren. Die External OAuth-Sicherheitsintegration unterstützt nicht das Festlegen einer separaten Netzwerkrichtlinie, aber Sie können dennoch eine allgemeine Netzwerkrichtlinie verwenden, die für das gesamte Snowflake-Konto gilt.
Die Snowflake OAuth-Sicherheitsintegration verfügt über einen network_policy
-Parameter, sodass die Snowflake OAuth-Integration Benutzer authentifizieren und autorisieren kann, ohne diese IP-Adressen für den normalen Benutzerzugriff hinzuzufügen.
Durch das Einrichten einer für die Snowflake OAuth-Integration spezifischen Netzwerkrichtlinie kann sich die Snowflake OAuth-Netzwerkrichtlinie von anderen Netzwerkrichtlinien unterscheiden, die möglicherweise für das Snowflake-Konto gelten. Daher ermöglicht die Snowflake OAuth-Netzwerkrichtlinie die Authentifizierung und Autorisierung von Benutzern wie beabsichtigt.
Eine Netzwerkrichtlinie, die auf eine Snowflake OAuth-Integration angewendet wird, überschreibt die Netzwerkrichtlinie, die auf das gesamte Snowflake-Konto angewendet wird, sie kann aber selbst von einer Netzwerkrichtlinie überschieben werden, die einem Benutzer zugewiesen ist.
Wichtig
Wenn eine Netzwerkrichtlinie pro Benutzer oder Konto festgelegt ist und Sie einen Dienst verwenden, der an einem anderen Speicherort ausgeführt wird (z. B. Microsoft Power BI), können Sie keine Verbindung zu Snowflake herstellen.
Legen Sie nach dem Erstellen der Snowflake OAuth-Sicherheitsintegration die OAuth-Netzwerkrichtlinie mit dem folgenden Befehl fest:
ALTER SECURITY INTEGRATION <oauth_integration> SET NETWORK_POLICY = <oauth_network_policy>;
Verwenden Sie folgenden Befehl, um die OAuth-Netzwerkrichtlinie zu deaktivieren:
ALTER SECURITY INTEGRATION <oauth_integration> UNSET <oauth_network_policy>;
Wobei:
<oauth_integration>
Gibt den Namen der OAuth-Sicherheitsintegration an.
<oauth_network_policy>
Gibt die Snowflake OAuth-Netzwerkrichtlinie in Snowflake an.
Weitere Informationen dazu finden Sie unter Steuern des Netzwerkdatenverkehrs mit Netzwerkrichtlinien und ALTER SECURITY INTEGRATION.
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. |