Snowflake OAuth für Partneranwendungen konfigurieren¶
Unter diesem Thema wird erläutert, wie Sie den Snowflake OAuth-Zugriff auf Snowflake für unterstützte Snowflake-Partneranwendungen konfigurieren. Dabei muss eine Integration erstellt werden, ein First-Class-Objekt von Snowflake, das die Schnittstelle zwischen Snowflake und einer Anwendung oder dem Service eines Drittanbieters definiert.
Wichtig
Wenn Sie mit einer Drittanbieteranwendung eine Verbindung zu Snowflake herstellen, empfiehlt Snowflake zu überprüfen, ob der von der Anwendung verwendete Integrationsablauf Ihren internen Sicherheitsanforderungen entspricht. Sie können sich direkt an den Partner wenden, um Details zu dessen End-to-End-Ablauf zu erhalten, der für dieses Feature verwendet wird.
Bemerkung
Der sitzungsinterne Rollenwechsel zu Sekundärrollen wird von Snowflake OAuth nicht unterstützt.
Wenn dieses Verhalten für Ihren OAuth-Workflow erforderlich ist, verwenden Sie stattdessen External OAuth.
Weitere Informationen dazu finden Sie unter Verwenden von Sekundärrollen mit External OAuth.
Derzeit unterstützt Snowflake OAuth die folgenden Anwendungen:
Client |
Erforderliche Clientversion |
Clienttyp |
---|---|---|
2019.1 oder höher |
Öffentlich |
|
6.20 oder höher |
||
Siehe die Alation-Dokumentation |
||
Siehe die ThoughtSpot-Dokumentation |
||
Siehe die Collibra-Dokumentation |
Unter diesem Thema:
Konfigurieren einer Snowflake OAuth-Integration¶
Erstellen Sie mit dem Befehl CREATE SECURITY INTEGRATION eine Integration. Eine Integration ist ein Snowflake-Objekt, das eine Schnittstelle zwischen Snowflake und Diensten von Drittanbietern bereitstellt, z. B. einem Client, der Snowflake OAuth unterstützt.
Bemerkung
Dieser SQL-Befehl kann nur von Kontoadministratoren (d. h. Benutzern mit der Systemrolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OAUTH
ENABLED = { TRUE | FALSE }
OAUTH_CLIENT = <partner_application>
oauthClientParams
[ COMMENT = '<string_literal>' ]
Wobei:
oauthClientParams
oauthClientParams ::= [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Blockieren bestimmter Rollen für die Verwendung der Integration¶
Mit dem optionalen Parameter BLOCKED_ROLES_LIST können Sie Snowflake-Rollen auflisten, denen ein Benutzer nicht ausdrücklich die Zustimmung zur Verwendung der Integration geben kann.
Die Rollen ACCOUNTADMIN, SECURITYADMIN und ORGADMIN sind standardmäßig in dieser Liste enthalten und können nicht entfernt werden. Wenn Sie Benutzern aus geschäftlichen Gründen die Verwendung von Snowflake OAuth bei diesen Rollen gestatten müssen und Ihr Sicherheitsteam dies zulässt, wenden Sie sich an den Snowflake-Support mit der Anforderung, dass die Rollen für Ihr Konto zugelassen werden.
Überwachen der Anmeldefrequenz¶
Wenn sich ein Benutzer erfolgreich authentifiziert hat, kann die Partneranwendung das ausgegebene Aktualisierungstoken verwenden, um neue, kurzlebige Zugriffstoken anzufordern; der Benutzer wird solange nicht mehr aufgefordert, den Anmeldevorgang zu wiederholen, bis das Aktualisierungstoken abläuft. Der optionale Parameter OAUTH_REFRESH_TOKEN_VALIDITY gibt an, wie lange ein Aktualisierungstoken gültig ist (in Sekunden). Diese Einstellung kann verwendet werden, um das Aktualisierungstoken regelmäßig ablaufen zu lassen und den Benutzer zu zwingen, den Anmeldevorgang zu wiederholen.
Die unterstützten Minimal-, Maximal- und Standardwerte für den Parameter OAUTH_REFRESH_TOKEN_VALIDITY lauten wie folgt:
Anwendung |
Minimum |
Maximum |
Standard |
---|---|---|---|
Tableau Desktop |
|
|
|
Tableau Server oder Tableau Online |
|
|
|
Wenn Sie aus geschäftlichen Gründen den Mindestwert senken oder den Höchstwert erhöhen müssen, wenden Sie sich an den Snowflake-Support, um eine Änderung für Ihr Konto anzufordern.
Verwenden der Clientumleitung mit Snowflake OAuth für Partneranwendungen¶
Snowflake unterstützt die Verwendung der Clientumleitung mit Snowflake OAuth für Partneranwendungen, einschließlich der Verwendung der Clientumleitung und Snowflake OAuth bei unterstützten Snowflake-Clients.
Weitere Informationen dazu finden Sie unter Umleiten von Clientverbindungen.
Verwalten von Netzwerkrichtlinien¶
Snowflake unterstützt Netzwerkrichtlinien für Snowflake OAuth. Weitere Informationen dazu finden Sie unter Netzwerkrichtlinien.
Beispiele¶
Tableau Desktop
Im folgenden Beispiel wird eine Snowflake OAuth-Integration mit den Standardeinstellungen erstellt:
CREATE SECURITY INTEGRATION td_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_DESKTOP;Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:
DESC SECURITY INTEGRATION td_oauth_int1;Im folgenden Beispiel wird eine Snowflake OAuth-Integration mit Aktualisierungstoken erstellt, die nach 10 Stunden (36000 Sekunden) ablaufen. Die Integration verhindert, dass Benutzer eine Sitzung mit SYSADMIN als aktiver Rolle starten können:
CREATE SECURITY INTEGRATION td_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 36000 BLOCKED_ROLES_LIST = ('SYSADMIN') OAUTH_CLIENT = TABLEAU_DESKTOP;
Tableau Server oder Tableau Online
Im folgenden Beispiel wird eine Snowflake OAuth-Integration mit den Standardeinstellungen erstellt:
CREATE SECURITY INTEGRATION ts_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER;Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:
DESC SECURITY INTEGRATION ts_oauth_int1;Im folgenden Beispiel wird eine Snowflake OAuth-Integration mit Aktualisierungstoken erstellt, die nach 1 Tag (86.400 Sekunden) ablaufen. Die Integration verhindert, dass Benutzer eine Sitzung mit SYSADMIN als aktiver Rolle starten können:
CREATE SECURITY INTEGRATION ts_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER OAUTH_REFRESH_TOKEN_VALIDITY = 86400 BLOCKED_ROLES_LIST = ('SYSADMIN');
Anmelden bei Snowflake aus einer Partneranwendung¶
Tableau¶
Führen Sie die von Tableau bereitgestellten Anweisungen aus, um mit Snowflake OAuth eine Verbindung zu Snowflake herzustellen.
Looker¶
Führen Sie die von Looker bereitgestellten Anweisungen aus, um mit Snowflake OAuth eine Verbindung zu Snowflake herzustellen.
Alation¶
Greifen Sie auf die Alation Community zu, und führen Sie die von Alation bereitgestellten Anweisungen aus, um mit Snowflake OAuth eine Verbindung zu Snowflake herzustellen.
ThoughtSpot¶
Rufen Sie die ThoughtSpot-Dokumentation auf, und folgen Sie den Anweisungen zum Erstellen einer Verbindung zu Snowflake, die einen Schritt zur Konfiguration von Snowflake OAuth enthält.
Collibra¶
Rufen Sie den Collibra-Katalog der Konnektoren auf, und führen Sie die von Collibra bereitgestellten Anweisungen aus, um mit Snowflake OAuth eine Verbindung zu Snowflake herzustellen.
Verwalten der Benutzerzustimmung¶
In diesem Abschnitt wird beschrieben, wie delegierte Berechtigungen verwaltet werden, d. h. die Zustimmung, die ein Benutzer einem oder mehreren Clients, die mit Snowflake-Integrationen verbunden sind, erteilt.
Snowflake OAuth-Zustimmungen anzeigen¶
Listen Sie mit SHOW DELEGATED AUTHORIZATIONS die aktiven delegierten Berechtigungen auf, für die Sie Zugriffsberechtigungen haben:
SHOW DELEGATED AUTHORIZATIONS;
+-------------------------------+-----------+-----------+-------------------+--------------------+
| created_on | user_name | role_name | integration_name | integration_status |
|-------------------------------+-----------+-----------+-------------------+--------------------|
| 2018-11-27 07:43:10.914 -0800 | JSMITH | PUBLIC | MY_OAUTH_INT | ENABLED |
+-------------------------------+-----------+-----------+-------------------+--------------------+
Listen Sie die aktiven delegierten Berechtigungen für einen angegebenen Benutzer auf. Benutzer können ihre eigenen delegierten Berechtigungen auflisten. Andernfalls erfordert diese Befehlsvariante die Berechtigung OWNERSHIP für den Benutzer.
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
Listen Sie die aktiven delegierten Berechtigungen für eine angegebene Integration auf. Diese Befehlsvariante erfordert die Berechtigung OWNERSHIP für die Integration (d. h. die Rolle ACCOUNTADMIN):
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
Zustimmung widerrufen¶
Ein Benutzer kann die Zustimmung zu einer bestimmten Integration widerrufen. Dies hat zur Folge, dass alle mit der Integration verbundenen Zugriffstoken gesperrt werden.
Führen Sie, um die Benutzerzustimmung für eine bestimmte Integration zu widerrufen, den Befehl ALTER USER … REMOVE DELEGATED AUTHORIZATIONS aus.
Bemerkung
Nur Sicherheitsadministratoren (d. h. Benutzer mit der Rolle SECURITYADMIN oder höher) können diesen SQL-Befehl ausführen.
ALTER USER <username> REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
Wobei:
username
Gibt den Benutzer an, dessen Zustimmung Sie widerrufen.
integration_name
Gibt die Integration an, die den Zugriffstoken für einen bestimmten Client zugeordnet ist.
Um die einer bestimmten Rolle zugeordnete Benutzerzustimmung zu widerrufen, fügen Sie den Parameter OF ROLE role_name
in die Anweisung ein:
ALTER USER <username> REMOVE DELEGATED AUTHORIZATION
OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
Wobei:
role_name
Gibt die dem Zugriffstoken zugeordnete Rolle an.
Alle mit der Rolle verknüpften Zugriffstoken werden widerrufen.
Fehlercodes¶
Unter Fehlercodes finden Sie eine Liste der mit OAuth in Verbindung stehenden Fehlercodes und der im JSON-Blob zurückgegeben Fehler, die während des Autorisierungsablaufs, der Tokenanforderung oder des Tokenaustauschs oder beim Erstellen einer Snowflake-Sitzung nach Abschluss des OAuth-Ablaufs aufgetreten sind.