- 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>' | ('<string_literal>', '<string_literal>' [ , ... ] )
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] -- For OKTA | PING_FEDERATE | CUSTOM
[ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' | ('<string_literal>' [ , '<string_literal>' ... ] ) ] -- For Azure
[ EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( '{role_name}' [ , '{role_name}' , ... ] ) ]
[ EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( '{role_name}' [ , '{role_name}' , ... ] ) ]
[ 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 ]
[ EXTERNAL_OAUTH_SCOPE_DELIMITER = '<string_literal>' ] -- Only for EXTERNAL_OAUTH_TYPE = CUSTOM
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>' ]
[ SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' ]
[ SAML2_FORCE_AUTHN = TRUE | FALSE ]
[ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]
[ SAML2_SNOWFLAKE_ACS_URL = '<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>' ]
[ SYNC_PASSWORD = TRUE | FALSE ]
[ COMMENT = '<string_literal>' ]
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> ]
[ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ]
[ 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 ]
[ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ]
[ 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ß-/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' | ('Zeichenfolgenliteral', 'Zeichenfolgenliteral' [ , ... ] )
Gibt den Zugriffstoken-Anspruch oder Ansprüche an, die verwendet werden können, um das Zugriffstoken einem Snowflake-Benutzerdatensatz zuzuordnen.
Der Datentyp des Anspruchs muss eine Zeichenfolge oder eine Liste von Zeichenfolgen 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.
Diese Syntax gilt für Sicherheitsintegrationen, bei denen
EXTERNAL_OAUTH_TYPE = OKTA | PING_FEDERATE | CUSTOM
gilt.EXTERNAL_OAUTH_JWS_KEYS_URL = 'Zeichenfolgenliteral' | ('Zeichenfolgenliteral' [ , 'Zeichenfolgenliteral' ... ] )
Gibt den Endpunkt oder eine Liste von Endpunkten an, von dem öffentliche Schlüssel oder Zertifikate heruntergeladen werden sollen, um ein External OAuth-Zugriffstoken zu validieren. Die maximale Anzahl von URLs, die in der Liste angegeben werden kann, ist 3.
Diese Syntax gilt für Sicherheitsintegrationen, bei denen
EXTERNAL_OAUTH_TYPE = AZURE
gilt.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_BLOCKED_ROLES_LIST = ( 'Rollenname' [ , 'Rollenname' , ... ] )
Gibt die Liste der Rollen an, die ein Client nicht als primäre Rolle festlegen darf.
Eine Rolle in dieser Liste darf nicht verwendet werden, wenn eine Snowflake-Sitzung auf Basis des Zugriffstokens vom externen OAuth-Autorisierungsserver erstellt wird.
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( 'Rollenname' [ , 'Rollenname' , ... ] )
Gibt die Liste der Rollen an, die ein Client als Primärrolle festlegen kann.
Eine Rolle in dieser Liste darf verwendet werden, wenn eine Snowflake-Sitzung auf Basis des Zugriffstokens vom externen OAuth-Autorisierungsserver erstellt wird.
Vorsicht
Dieser Parameter unterstützt die Systemrollen ACCOUNTADMIN und SECURITYADMIN.
Seien Sie vorsichtig, wenn Sie beim Erstellen einer Snowflake-Sitzung eine Rolle mit derart umfangreichen Berechtigungen als Primärrolle auswählen.
EXTERNAL_OAUTH_AUDIENCE_LIST = ('Zeichenfolgenliteral')
Gibt Werte an, die zusätzlich zur Verwendung der Snowflake-Konto-URL des Kunden (d. h.
<Kontobezeichner>.snowflakecomputing.com
) für die Zielgruppenvalidierung des Zugriffstokens verwendet werden können. Weitere Informationen dazu finden Sie unter Kontobezeichner.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 BerechtigungUSE_ANY_ROLE
zu wechseln. Diese Berechtigung kann einer oder mehreren dem Benutzer zur Verfügung stehenden Rollen erteilt und entzogen werden. Beispiel:
Beachten Sie, dass der Wert optional in einfache Anführungszeichen gesetzt werden kann (z. B. entweder
DISABLE
oder'DISABLE'
).grant USE_ANY_ROLE on integration external_oauth_1 to role1;
revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
EXTERNAL_OAUTH_SCOPE_DELIMITER = 'Zeichenfolgenliteral'
Gibt das Trennzeichen für die Geltungsbereiche im Autorisierungstoken an.
Das Trennzeichen kann ein beliebiges einzelnes Zeichen sein, z. B. ein Komma (
','
) oder ein Leerzeichen (' '
).Diese Eigenschaft der Sicherheitsintegration ist optional und kann verwendet werden, um das Komma als Standard-Trennzeichen zu überschreiben. Beachten Sie, dass diese Eigenschaft nur für benutzerdefinierte External OAuth-Integrationen unterstützt wird, wobei:
EXTERNAL_OAUTH_TYPE = CUSTOM
Wenden Sie sich an den Snowflake-Support, um diese Eigenschaft in Ihrem Snowflake-Konto zu aktivieren.
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ß-/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 Verschlüsseln von SAML-Assertionen 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
SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>'
Der Endpunkt, zu dem Snowflake Benutzer nach dem Klicken auf die Schaltfläche Log Out auf der klassischen Weboberfläche umleitet.
Mit der Umleitung auf den angegebenen Endpunkt beendet Snowflake die Snowflake-Sitzung.
SAML2_FORCE_AUTHN = TRUE | FALSE
Der boolesche Wert gibt an, ob Benutzer während der erstmaligen Authentifizierung gezwungen werden, sich erneut zu authentifizieren, um auf Snowflake zugreifen zu können. Wenn auf
TRUE
gesetzt, setzt Snowflake denForceAuthn
-SAML-Parameter in der ausgehenden Anforderung von Snowflake an den Identitätsanbieter aufTRUE
.TRUE
zwingt Benutzer, sich erneut zu authentifizieren, um auf Snowflake zugreifen zu können, selbst wenn eine gültige Sitzung beim Identitätsanbieter besteht.FALSE
zwingt Benutzer nicht dazu, sich erneut zu authentifizieren, um auf Snowflake zugreifen zu können.
Standard:
FALSE
.SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>'
Die Zeichenfolge, die
EntityID
/Issuer
für den Snowflake-Dienstanbieter enthält.Wenn ein falscher Wert angegeben wird, gibt Snowflake eine Fehlermeldung zurück, in der die zu verwendenden akzeptablen Werte angegeben werden.
SAML2_SNOWFLAKE_ACS_URL = '<string_literal>'
Die Zeichenfolge, die den Snowflake Assertion Consumer Service-URL enthält, an die der IdP seine SAML-Authentifizierungsantwort zurück an Snowflake senden wird.
Diese Eigenschaft wird in der von Snowflake generierten SAML-Authentifizierungsanforderung festgelegt, wenn eine SAML-SSO-Operation beim IdP initiiert wird.
Wenn ein falscher Wert angegeben wird, gibt Snowflake eine Fehlermeldung zurück, in der die zu verwendenden akzeptablen Werte angegeben werden.
Standard:
https://<Konto-Locator>.<Region>.snowflakecomputing.com/fed/login
Weitere Informationen dazu finden Sie unter:
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ß-/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
undGENERIC_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.
SYNC_PASSWORD = TRUE | FALSE
Gibt an, ob die Synchronisierung eines Benutzerkennworts von einem Okta-SCIM-Client als Teil der API-Anforderung an Snowflake aktiviert oder deaktiviert werden soll.
TRUE
aktiviert die Kennwortsynchronisierung.FALSE
deaktiviert die Kennwortsynchronisierung.
Standard:
TRUE
. Wenn eine Sicherheitsintegration erstellt wird, ohne diesen Parameter festzulegen, setzt Snowflake den Parameter aufTRUE
.Wenn Benutzerkennwörter nicht vom Client zu Snowflake synchronisiert werden sollen, stellen Sie sicher, dass dieser Eigenschaftswert auf
FALSE
gesetzt ist und die Kennwortsynchronisierung im Client deaktiviert ist.Beachten Sie, dass diese Eigenschaft für Okta- und für benutzerdefinierte SCIM-Integrationen unterstützt wird. Azure-SCIM-Integrationen werden nicht unterstützt, da Microsoft Azure die Kennwortsynchronisierung nicht unterstützt. Wenn Sie entsprechenden Support benötigen, wenden Sie sich an Microsoft Azure.
Weitere Details dazu finden Sie unter Verwalten von Benutzern und Gruppen mit SCIM.
COMMENT
Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.
Standard: Kein Wert
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ß-/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 aufTRUE
zu setzen, setzt Snowflake den Parameter aufFALSE
.
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 aufTRUE
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 inOAUTH_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 zudemENABLED = 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
undENABLED = 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.
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
Die in den Benutzereigenschaften festgelegten Standard-Sekundärrollen sind in der geöffneten Sitzung standardmäßig aktiviert.
NONE
Standard-Sekundärrollen werden in der geöffneten Sitzung nicht unterstützt.
Standard:
NONE
BLOCKED_ROLES_LIST = ( 'Rollenname' [ , 'Rollenname' , ... ] )
Durch Kommas getrennte Liste von Snowflake-Rollen, deren Verwendung 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.
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
, kannOAUTH_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 durchgesetzt, wenn die Parameter
code_challenge
undcode_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
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
Die in den Benutzereigenschaften festgelegten Standard-Sekundärrollen sind in der geöffneten Sitzung standardmäßig aktiviert.
NONE
Standard-Sekundärrollen werden in der geöffneten Sitzung nicht unterstützt.
Standard:
NONE
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, deren Verwendung 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) bis7776000
(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
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
CREATE INTEGRATION |
Konto |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
Eine Anleitung zum Erstellen einer benutzerdefinierten Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von benutzerdefinierten Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Zugriffssteuerung in Snowflake.
Nutzungshinweise¶
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
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;
Microsoft Power BI-SSO-Beispiele¶
Weitere Beispiele finden Sie unter:
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:
create or replace security integration okta_provisioning
type=scim
scim_client='azure'
run_as_role='AAD_PROVISIONER';
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:
create or replace security integration okta_provisioning
type=scim
scim_client='okta'
run_as_role='OKTA_PROVISIONER';
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 .. ';