Kategorien:

DDL für Benutzer und Sicherheit (Integrationen von Drittanbieterservices)

CREATE SECURITY INTEGRATION

Erstellt eine neue Sicherheitsintegration im Konto oder ersetzt eine vorhandene Integration. Eine Integration ist ein Snowflake-Objekt, das eine Schnittstelle zwischen Snowflake und Services von Drittanbietern bereitstellt.

Durch eine Sicherheitsintegration können Clients, die OAuth unterstützen, Benutzer auf eine Autorisierungsseite weiterleiten und Zugriffstoken (sowie optional Aktualisierungstoken) für den Zugriff auf Snowflake generieren.

Siehe auch:

ALTER SECURITY INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS

Unter diesem Thema:

Syntax

External OAuth

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = EXTERNAL_OAUTH
  ENABLED = { TRUE | FALSE }
  EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM }
  EXTERNAL_OAUTH_ISSUER = '<string_literal>' ]
  EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>'
  EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
  [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ]
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
  [ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
  [ EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]

SAML2

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    TYPE = SAML2
    ENABLED = TRUE | FALSE
    SAML2_ISSUER = '<string_literal>'
    SAML2_SSO_URL = '<string_literal>'
    SAML2_PROVIDER = '<string_literal>'
    SAML2_X509_CERT = '<string_literal>'
    [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
    [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
    [ SAML2_SIGN_REQUEST = TRUE | FALSE ]
    [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]

SCIM

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS]
    <name>
    TYPE = SCIM
    SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'
    RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'
    [ NETWORK_POLICY ] = '<network_policy>'

Snowflake OAuth für Partneranwendungen

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = OAUTH
  OAUTH_CLIENT = <partner_application>
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ COMMENT = '<string_literal>' ]

Snowflake OAuth für benutzerdefinierte Clients

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'
  OAUTH_REDIRECT_URI = '<uri>'
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE ]
  [ OAUTH_ENFORCE_PKCE = TRUE | FALSE ]
  [ PRE_AUTHORIZED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ NETWORK_POLICY = '<network_policy>' ]
  [ OAUTH_CLIENT_RSA_PUBLIC_KEY = <public_key1> ]
  [ OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = <public_key2> ]
  [ COMMENT = '<string_literal>' ]

Parameter

External OAuth

External OAuth – Erforderliche Parameter

Name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

TYPE = EXTERNAL_OAUTH

Unterscheidet die External OAuth-Integration von einer Snowflake OAuth-Integration.

ENABLED = TRUE | FALSE

Gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.

  • TRUE ermöglicht die Ausführung der Integration basierend auf den in der Pipedefinition angegebenen Parametern.

  • FALSE hält die Integration für Wartungszwecke an. Eine Integration zwischen Snowflake und einem Drittanbieterservice funktioniert nicht.

EXTERNAL_OAUTH_TYPE = OKTA | AZURE | PING_FEDERATE | CUSTOM

Gibt den OAuth 2.0-Autorisierungsserver als Okta, Microsoft Azure AD, Ping Identity PingFederate oder einen benutzerdefinierten OAuth 2.0-Autorisierungsserver an.

EXTERNAL_OAUTH_ISSUER = 'Zeichenfolgenliteral'

Gibt die URL für die Definition des OAuth 2.0-Autorisierungsservers an.

EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'Zeichenfolgenliteral'

Gibt an, welcher Zugriffstoken-Anspruch verwendet werden soll, um das Zugriffstoken einem Snowflake-Benutzerdatensatz zuzuordnen. Der Anspruchstyp muss eine Zeichenfolge oder ein Array von Zeichenfolgen mit nur einem Eintrag sein.

EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'

Gibt an, welches Snowflake-Benutzerdatensatzattribut verwendet werden soll, um das Zugriffstoken einem Snowflake-Benutzerdatensatz zuzuordnen.

External OAuth – Optionale Parameter

EXTERNAL_OAUTH_JWS_KEYS_URL = 'Zeichenfolgenliteral'

Gibt den Endpunkt an, von dem öffentliche Schlüssel oder Zertifikate heruntergeladen werden sollen, um ein External OAuth-Zugriffstoken zu validieren.

EXTERNAL_OAUTH_RSA_PUBLIC_KEY = Öffentlicher_Schlüssel1

Gibt einen Base64-codierten öffentlichen RSA-Schlüssel ohne die Header -----BEGIN PUBLIC KEY----- und -----END PUBLIC KEY----- an.

EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = Öffentlicher_Schlüssel2

Gibt einen zweiten öffentlichen RSA-Schlüssel ohne die Header -----BEGIN PUBLIC KEY----- und -----END PUBLIC KEY----- an. Wird für die Schlüsselrotation verwendet.

EXTERNAL_OAUTH_AUDIENCE_LIST = ('Zeichenfolgenliteral')

Gibt Werte an, die zusätzlich zur Verwendung der Snowflake-Konto-URL des Kunden (d. h. <Konto>.<Region>.snowflakecomputing.com) für die Zielgruppenvalidierung des Zugriffstokens verwendet werden können.

Derzeit können mehrere Zielgruppen-URLs nur für benutzerdefinierte External OAuth-Clients angegeben werden. Jede URL muss in einfache Anführungszeichen gesetzt werden, wobei jede URL durch ein Komma getrennt wird. Beispiel:

external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE'

Gibt an, ob der OAuth-Client oder -Benutzer eine Rolle verwenden kann, die nicht im OAuth-Zugriffstoken definiert ist.

  • DISABLE erlaubt dem OAuth-Client oder -Benutzer nicht, die Rollen zu wechseln (d. h. use role <Rolle>;). Standard.

  • ENABLE ermöglicht dem OAuth-Client oder -Benutzer, die Rollen zu wechseln.

  • ENABLE_FOR_PRIVILEGE ermöglicht dem OAuth-Client oder -Benutzer, die Rollen nur für einen Client oder Benutzer mit der Berechtigung USE_ANY_ROLE zu wechseln. Diese Berechtigung kann einer oder mehreren dem Benutzer zur Verfügung stehenden Rollen erteilt und entzogen werden. Beispiel:

    grant USE_ANY_ROLE on integration external_oauth_1 to role1;
    
    revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
    

SAML2

SAML2 – Erforderliche Parameter

Name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

TYPE = SAML2

Geben Sie den Typ der Integration an:

  • SAML2: Erstellt eine Sicherheitsschnittstelle zwischen Snowflake und dem Identitätsanbieter.

ENABLED = TRUE | FALSE

Der Boolesche Wert gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.

  • TRUE ermöglicht die Ausführung der Integration basierend auf den in der Pipedefinition angegebenen Parametern.

  • FALSE hält die Integration für Wartungszwecke an. Eine Integration zwischen Snowflake und einem Drittanbieterservice funktioniert nicht.

SAML2_ISSUER = 'Zeichenfolgenliteral'

Die Zeichenfolge, die EntityID / Issuer des IdP enthält.

SAML2_SSO_URL = 'Zeichenfolgenliteral'

Die Zeichenfolge, die die IdP-SSO-URL enthält, zu welcher der Benutzer von Snowflake (dem Dienstanbieter) mittels einer SAML-AuthnRequest-Nachricht umgeleitet werden soll.

SAML2_PROVIDER = 'Zeichenfolgenliteral'

Die Zeichenfolge, die den IdP beschreibt.

Es gibt folgende Möglichkeiten: OKTA, ADFS, Custom (kundenspezifisch).

SAML2_X509_CERT = 'Zeichenfolgenliteral'

Das Base64-codierte IdP-Signaturzertifikat in einer einzigen Zeile ohne die führende -----BEGIN CERTIFICATE------ und endende -----END CERTIFICATE----- -Markierung.

SAML2 – Optionale Parameter

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'Zeichenfolgenliteral'

Die Zeichenfolge mit der Bezeichnung, die auf der Anmeldeseite nach der Schaltfläche Log In With angezeigt werden soll.

SAML2_ENABLE_SP_INITIATED = TRUE | FALSE

Der Boolesche Wert, der angibt, ob die Schaltfläche Log In With auf der Anmeldeseite angezeigt wird.

  • Bei TRUE wird die Schaltfläche Log in With auf der Anmeldeseite angezeigt.

  • Bei FALSE wird die Schaltfläche Log in With auf der Anmeldeseite nicht angezeigt.

SAML2_SNOWFLAKE_X509_CERT = 'Zeichenfolgenliteral'

Das Base64-codierte, selbstsignierte Zertifikat zur Verwendung mit SAML-Assertionen verschlüsseln und Signierte SAML-Anforderungen, das von Snowflake generiert wird.

Sie müssen mindestens eines dieser Funktionen (verschlüsselte SAML-Assertionen oder signierte SAML-Antworten) in Ihrem Snowflake-Konto aktiviert haben, um auf den Zertifikatwert zugreifen zu können.

SAML2_SIGN_REQUEST = TRUE | FALSE

Boolescher Wert, der angibt, ob SAML-Anforderungen signiert sind.

  • TRUE: Das Signieren von SAML-Anforderungen ist zulässig.

  • FALSE: Das Signieren von SAML-Anforderung ist nicht zulässig.

SAML2_REQUESTED_NAMEID_FORMAT = 'Zeichenfolgenliteral'

Durch Angabe des SAML-NameID-Formats kann Snowflake eine Erwartung für das identifizierende Attribut des Benutzers (d. h. den SAML-Betreff) in der SAML-Assertion des IdP festlegen und so eine gültige Authentifizierung bei Snowflake sicherstellen. Wenn kein Wert angegeben wird, sendet Snowflake den Wert urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress in der Authentifizierungsanforderung an den IdP.

Optional.

Wenn Sie das SAML-NameID-Format angeben möchten, verwenden Sie einen der folgenden Werte:

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

SCIM

SCIM – Erforderliche Parameter

Name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

TYPE = SCIM

Geben Sie den Typ der Integration an:

  • SCIM: Erstellt eine Sicherheitsschnittstelle zwischen Snowflake und einem Client, der SCIM unterstützt.

SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'

Gibt den SCIM-Client an.

RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'

Gibt die SCIM-Rolle in Snowflake an, die Eigentümer aller Benutzer und Rollen ist, die mit SCIM vom Identitätsanbieter in Snowflake importiert werden.

  • Die Werte OKTA_PROVISIONER, AAD_PROVISIONER und GENERIC_SCIM_PROVISIONER unterscheiden zwischen Groß- und Kleinschreibung und müssen immer groß geschrieben werden.

SCIM – Optionale Parameter

NETWORK_POLICY = 'Netzwerkrichtlinie'

Gibt eine vorhandene Netzwerkrichtlinie an, die für Ihr Konto aktiv ist. Die Netzwerkrichtlinie schränkt die Liste der Benutzer-IP-Adressen ein, wenn ein Autorisierungscode gegen ein Zugriffs- oder Aktualisierungstoken ausgetauscht und ein Aktualisierungstoken zum Abrufen eines neuen Zugriffstoken verwendet wird. Wenn dieser Parameter nicht festgelegt ist, wird stattdessen die Netzwerkrichtlinie für das Konto (wenn vorhanden) verwendet.

Snowflake OAuth

Snowflake OAuth – Erforderliche Parameter

Name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

TYPE = OAUTH

Geben Sie den Typ der Integration an:

  • OAUTH: Erstellt eine Sicherheitsschnittstelle zwischen Snowflake und einem Client, der OAuth unterstützt.

OAUTH_CLIENT = CUSTOM | Partneranwendung

Geben Sie den Clienttyp an:

  • CUSTOM: Erstellt eine OAuth-Schnittstelle zwischen Snowflake und einem benutzerdefinierten Client.

  • Partneranwendung: Erstellt eine OAuth-Schnittstelle zwischen Snowflake und einer Partneranwendung. Folgende Werte werden unterstützt:

    • TABLEAU_DESKTOP: Tableau Desktop Version 2019.1 oder höher.

    • TABLEAU_SERVER: Tableau Online oder Tableau Server.

    • LOOKER: Das Looker Business Intelligence-Tool.

Snowflake OAuth – Optionale Parameter

ENABLED = TRUE | FALSE

Gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.

  • TRUE aktiviert die Integration.

  • FALSE deaktiviert die Integration für Wartungszwecke. Eine Integration zwischen Snowflake und einem Drittanbieterdienst funktioniert nicht.

Standard: FALSE. Wenn eine Sicherheitsintegration erstellt wird, ohne diesen Parameter auf TRUE zu setzen, setzt Snowflake den Parameter auf FALSE.

Snowflake OAuth – Benutzerdefinierte Clientparameter

Nur erforderlich, wenn OAUTH_CLIENT = CUSTOM (d. h. beim Erstellen einer Integration für einen benutzerdefinierten Client)

OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'

Gibt den Typ des zu registrierenden Clients an. Snowflake unterstützt sowohl vertrauliche als auch öffentliche Clients. Vertrauliche Clients können ein Geheimnis speichern. Sie werden in einem geschützten Bereich ausgeführt, auf den Endbenutzer nicht zugreifen können. Ein in der Cloud bereitgestellter, sicherer Service kann beispielsweise ein vertraulicher Client sein. Ein Client, der hingegen auf einem Desktop ausgeführt oder über einen App Store verteilt wird, kann ein öffentlicher Client sein.

OAUTH_REDIRECT_URI = 'URI'

Gibt den Client-URI an. Nachdem ein Benutzer authentifiziert wurde, wird der Webbrowser zu dieser URI umgeleitet. Die URI muss durch TLS (Transport Layer Security) geschützt werden, falls der optionale Parameter OAUTH_ALLOW_NON_TLS_REDIRECT_URI nicht auf TRUE gesetzt ist.

Snowflake OAuth-Partneranwendungsparameter – Optional

Gültig, wenn OAUTH_CLIENT = <Partneranwendung> (d. h. beim Erstellen einer Integration für eine Partneranwendung)

OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE

Boolescher Wert, der angibt, ob der Client ein Aktualisierungstoken gegen ein Zugriffstoken austauschen darf, wenn das aktuelle Zugriffstoken abgelaufen ist. Wenn auf FALSE gesetzt, wird unabhängig von dem in OAUTH_REFRESH_TOKEN_VALIDITY eingestellten Wert kein Aktualisierungstoken ausgestellt. Die Benutzerzustimmung wird widerrufen, und der Benutzer muss die Autorisierung erneut bestätigen.

Standard: TRUE

Bemerkung

Wenn dieser Parameter auf FALSE gesetzt ist und die Sicherheitsintegration zudem ENABLED = TRUE enthält, wird der Snowflake OAuth-Ablauf wiederholt, ein nicht konfigurierbares Zugriffstoken ausgegeben und das Zugriffstoken ist 600 Sekunden (10 Minuten) lang gültig. Nach Ablauf dieses Zugriffstokens muss sich der Benutzer erneut authentifizieren.

Wenn Sie diesen Parameter auf FALSE und ENABLED = false setzen, werden keine Token ausgegeben und die Integration ist deaktiviert.

OAUTH_REFRESH_TOKEN_VALIDITY = Ganzzahl

Ganzzahl, die angibt, wie lange Aktualisierungstoken gültig sein sollen (in Sekunden). Diese Einstellung kann verwendet werden, um das Aktualisierungstoken regelmäßig ablaufen zu lassen. Beachten Sie, dass OAUTH_ISSUE_REFRESH_TOKENS auf TRUE gesetzt sein muss.

Wenn ein Aktualisierungstoken abläuft, muss die Anwendung den Benutzer erneut durch den Autorisierungsablauf leiten, damit ein neues Aktualisierungstoken abgerufen wird.

Die unterstützten Minimal-, Maximal- und Standardwerte 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)

Benutzerdefinierter Client

3600 (1 Stunde)

7776000 (90 Tage)

7776000 (90 Tage)

Wenn Sie aus geschäftlichen Gründen den Mindestwert senken oder den Höchstwert erhöhen müssen, bitten Sie Ihren Kontoadministrator, eine Anforderung an den Snowflake-Support zu senden.

BLOCKED_ROLES_LIST = '(Rollenname', 'Rollenname')

Durch Kommas getrennte Liste von Snowflake-Rollen, denen ein Benutzer nach der Authentifizierung nicht ausdrücklich zustimmen kann, z. B. 'custom_role1', 'custom_role2'.

Beachten Sie, dass die Rollen ACCOUNTADMIN und SECURITYADMIN standardmäßig in der Liste enthalten sind. Wenn jedoch diese Rollen für Ihr Konto entfernt werden sollen, bitten Sie Ihren Kontoadministrator, eine Anfrage an Snowflake Support zu senden.

COMMENT = 'Zeichenfolgenliteral'

Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.

Standard: Kein Wert

Benutzerdefinierte Snowflake OAuth-Clientparameter – Optional

Gültig, wenn OAUTH_CLIENT = CUSTOM (d. h. beim Erstellen einer Integration für einen benutzerdefinierten Client)

OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE

Wenn TRUE, kann OAUTH_REDIRECT_URI auf einen URI gesetzt werden, der nicht durch TLS geschützt ist. Wir empfehlen dringend die Verwendung von TLS, um Man-in-the-Middle-OAuth-Umleitungen bei Phishing-Angriffen zu verhindern.

Standard: FALSE

OAUTH_ENFORCE_PKCE = TRUE | FALSE

Boolescher Wert, der angibt, ob für die Integration Proof Key for Code Exchange (PKCE) erforderlich sein soll.

Standardmäßig ist PKCE optional und wird nur erzwungen, wenn die Parameter code_challenge und code_challenge_method beide in der URL des Autorisierungsendpunkts enthalten sind. Wir empfehlen jedoch dringend, dass Ihr Client für alle Berechtigungen PKCE erfordert, um den OAuth-Ablauf sicherer zu gestalten. Weitere Informationen dazu finden Sie unter Snowflake OAuth für benutzerdefinierte Clients konfigurieren.

Standard: FALSE

PRE_AUTHORIZED_ROLES_LIST = '(Rollenname', 'Rollenname')

Durch Kommas getrennte Liste von Snowflake-Rollen, denen ein Benutzer nach der Authentifizierung nicht ausdrücklich zustimmen muss, z. B. 'custom_role1', 'custom_role2'. Beachten Sie, dass die Rollen ACCOUNTADMIN und SECURITYADMIN nicht in die Liste aufgenommen werden können.

Bemerkung

Dieser Parameter wird nur bei vertraulichen Clients unterstützt.

BLOCKED_ROLES_LIST = '(Rollenname', 'Rollenname')

Durch Kommas getrennte Liste von Snowflake-Rollen, denen ein Benutzer nach der Authentifizierung nicht ausdrücklich zustimmen kann, z. B. 'custom_role1', 'custom_role2'. Beachten Sie, dass die Rollen ACCOUNTADMIN und SECURITYADMIN standardmäßig in der Liste enthalten sind. Wenn diese Rollen jedoch aus Ihrem Konto entfernt werden sollen, müssen Sie den Kontoadministrator bitten, eine entsprechende Anforderung an den Snowflake Support zu senden.

OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE

Boolescher Wert, der angibt, ob der Client ein Aktualisierungstoken gegen ein Zugriffstoken austauschen darf, wenn das aktuelle Zugriffstoken abgelaufen ist. Wenn auf FALSE gesetzt, wird kein Aktualisierungstoken ausgestellt. Die Benutzerzustimmung wird widerrufen, und der Benutzer muss die Autorisierung erneut bestätigen.

Standard: TRUE

OAUTH_REFRESH_TOKEN_VALIDITY = Ganzzahl

Ganzzahl, die angibt, wie lange Aktualisierungstoken gültig sein sollen (in Sekunden). Diese Einstellung kann verwendet werden, um das Aktualisierungstoken regelmäßig ablaufen zu lassen. Beachten Sie, dass OAUTH_ISSUE_REFRESH_TOKENS auf TRUE gesetzt sein muss.

Beachten Sie, dass Sie Ihren Kontoadministrator bitten müssen, eine entsprechende Anforderung an den Snowflake Support zu senden, wenn das Unternehmen einen niedrigeren oder höheren Mindest- bzw. Höchstwert wünscht.

Werte

86400 (1 Tag) bis 7776000 (90 Tage)

Standard

7776000

NETWORK_POLICY = 'Netzwerkrichtlinie'

Gibt eine vorhandene Netzwerkrichtlinie an, die für Ihr Konto aktiv ist. Die Netzwerkrichtlinie schränkt die Liste der Benutzer-IP-Adressen ein, wenn ein Autorisierungscode gegen ein Zugriffs- oder Aktualisierungstoken ausgetauscht und ein Aktualisierungstoken zum Abrufen eines neuen Zugriffstoken verwendet wird. Wenn dieser Parameter nicht festgelegt ist, wird stattdessen die Netzwerkrichtlinie für das Konto (wenn vorhanden) verwendet.

OAUTH_CLIENT_RSA_PUBLIC_KEY = Öffentlicher_Schlüssel1

Gibt einen öffentlichen RSA-Schlüssel an. Weitere Informationen dazu finden Sie unter OAuth.

OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = Öffentlicher_Schlüssel2

Gibt einen zweiten öffentlichen RSA-Schlüssel an. Wird für die Schlüsselrotation verwendet.

COMMENT = 'Zeichenfolgenliteral'

Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.

Standard: Kein Wert

Nutzungshinweise

  • Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.

Beispiele

External OAuth

Beispiel für External OAuth und Microsoft Azure AD

Im folgenden Beispiel wird eine External OAuth-Sicherheitsintegration für einen Microsoft Azure AD-OAuth 2.0-Autorisierungsserver erstellt.

create security integration external_oauth_azure_1
    type = external_oauth
    enabled = true
    external_oauth_type = azure
    external_oauth_issuer = '<AZURE_AD_ISSUER>'
    external_oauth_jws_keys_url = '<AZURE_AD_JWS_KEY_ENDPOINT>'
    external_oauth_token_user_mapping_claim = 'upn'
    external_oauth_snowflake_user_mapping_attribute = 'login_name';

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION external_oauth_azure_1;

Beispiel für External OAuth und Okta

Im folgenden Beispiel wird eine External OAuth-Sicherheitsintegration für einen Okta-OAuth 2.0-Autorisierungsserver erstellt.

create security integration external_oauth_okta_1
    type = external_oauth
    enabled = true
    external_oauth_type = okta
    external_oauth_issuer = '<OKTA_ISSUER>'
    external_oauth_jws_keys_url = '<OKTA_JWS_KEY_ENDPOINT>'
    external_oauth_token_user_mapping_claim = 'sub'
    external_oauth_snowflake_user_mapping_attribute = 'login_name';

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION external_oauth_okta_1;

SAML2

SAML2-Beispiel

Im folgenden Beispiel wird eine Sicherheitsintegration für Microsoft Active Directory Federation Services (ADFS) mit den beiden folgenden optionalen Einstellungen erstellt:

create security integration my_idp
    type = saml2
    enabled = true
    saml2_issuer = 'https://example.com'
    saml2_sso_url = 'http://myssoprovider.com'
    saml2_provider = 'ADFS'
    saml2_x509_cert='my_x509_cert'
    saml2_sp_initiated_login_page_label = 'my_idp'
    saml2_enable_sp_initiated = false
    ;

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION my_idp;

SCIM

Beispiel für SCIM und Microsoft Azure AD

Im folgenden Beispiel wird eine AD-SCIM-Integration mit den Standardeinstellungen erstellt:

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION aad_provisioning;

Beispiel für SCIM und Okta

Im folgenden Beispiel wird eine Okta-SCIM-Integration mit den Standardeinstellungen erstellt:

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION okta_provisioning;

Snowflake OAuth

Beispiel für Snowflake OAuth und 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 (36.000 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');

Beispiel für Snowflake OAuth und Tableau Online oder Tableau Server

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');

Beispiel für einen benutzerdefinierten Client für Snowflake OAuth

Im folgenden Beispiel wird eine OAuth-Integration erstellt, die eine Schlüsselpaar-Authentifizierung verwendet. Die Integration erlaubt eine Nutzung von Aktualisierungstoken, die nach 1 Tag (86400 Sekunden) ablaufen. Die Integration verhindert, dass Benutzer eine Sitzung mit SYSADMIN als aktiver Rolle starten können:

CREATE SECURITY INTEGRATION oauth_kp_int
  TYPE=OAUTH
  ENABLED=TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE='CONFIDENTIAL'
  OAUTH_REDIRECT_URI='https://localhost.com'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  PRE_AUTHORIZED_ROLES_LIST = 'MYROLE'
  BLOCKED_ROLES_LIST = ('SYSADMIN')
  OAUTH_CLIENT_RSA_PUBLIC_KEY='
  MIIBI
  ..
  ';