Snowflake OAuth für Partneranwendungen konfigurieren

Unter diesem Thema wird erläutert, wie Sie den 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 diese Funktion verwendet wird.

Derzeit unterstützt Snowflake OAuth die folgenden Anwendungen:

Client

Erforderliche Clientversion

Clienttyp

Tableau Desktop / Server / Online

2019.1 oder höher

Öffentlich

Looker

6.20 oder höher

Wichtig

Derzeit unterstützt Tableau OAuth nur, wenn die Tableau-Technologie auf das öffentliche Internet zugreifen kann.

Ebenso unterstützt Looker OAuth nur, wenn von Looker gehostete Instanzen auf das öffentliche Internet zugreifen können. Beachten Sie, dass diese Einschränkung keine Auswirkungen auf vom Kunden gehostete Looker-Implementierungen (d. h. lokale Implementierungen) hat.

Daher können bei Kunden, die AWS PrivateLink oder Azure Private Link verwenden, Probleme auftreten, wenn sie versuchen, OAuth und Tableau oder OAuth und Looker mit Snowflake zu verwenden. Wenden Sie sich bei Fragen oder für weitere Informationen an Tableau oder Looker.

Unter diesem Thema:

Schritt 1: Konfigurieren einer OAuth-Integration

Erstellen Sie mit dem Befehl CREATE SECURITY INTEGRATION eine Integration. Eine Integration ist ein Snowflake-Objekt, das eine Schnittstelle zwischen Snowflake und Services von Drittanbietern bereitstellt, z. B. einem Client, der OAuth unterstützt.

Bemerkung

Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle 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 der Verwendung der Integration für bestimmte Rollen

Mit dem optionalen Parameter BLOCKED_ROLES_LIST können Sie Snowflake-Rollen auflisten, denen ein Benutzer mit der Integration nicht ausdrücklich zustimmen kann.

Standardmäßig sind die Rollen des Kontoadministrators (ACCOUNTADMIN) und des Sicherheitsadministrators (SECURITYADMIN) in dieser Liste enthalten und können nicht entfernt werden. Wenn Sie Benutzern aus geschäftlichen Gründen die Verwendung von OAuth bei diesen Rollen gestatten müssen und Ihr Sicherheitsteam damit einverstanden ist, wenden Sie sich an Snowflake Support, um anzufordern, 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

60 (1 Minute)

36000 (10 Stunden)

36000 (10 Stunden)

Tableau Server oder Tableau Online

60 (1 Minute)

7776000 (90 Tage)

7776000 (90 Tage)

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.

Verwalten von Netzwerkrichtlinien

Snowflake unterstützt Netzwerkrichtlinien für OAuth. Weitere Informationen dazu finden Sie unter OAuth und Netzwerkrichtlinien.

Beispiele

Tableau Desktop

Im folgenden Beispiel wird eine 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 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');

Tableau Server oder Tableau Online

Im folgenden Beispiel wird eine 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 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');

Schritt 2: Anmelden bei Snowflake über eine Partneranwendung

Tableau

Befolgen Sie die von Tableau bereitgestellten Anweisungen, um mit OAuth eine Verbindung zu Snowflake herzustellen.

Wichtig

Derzeit können Tableau-Anwendungen nur die Standardrolle für einen Benutzer autorisieren. Wenn keine Standardrolle festgelegt ist, wird die Rolle PUBLIC als aktive Rolle für die Sitzung verwendet.

Looker

Befolgen Sie die von Looker bereitgestellten Schritte, um mit OAuth eine Verbindung zu Snowflake herzustellen.