CREATE SECURITY INTEGRATION (SAML2)

Erstellt eine neue SAML2-Sicherheitsintegration im Konto oder ersetzt eine vorhandene Integration. Eine SAML2-Sicherheitsintegration stellt Single Sign-On (SSO)-Workflows durch Erstellen einer Schnittstelle zwischen Snowflake und einem Identitätsanbieter (IdP) schafft.

Weitere Informationen zum Erstellen anderer Typen von Sicherheitsintegrationen (z. B. SCIM) finden Sie unter CREATE SECURITY INTEGRATION.

Siehe auch:

ALTER SECURITY INTEGRATION (SAML2), DROP INTEGRATION, SHOW INTEGRATIONS

Syntax

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    <name>
    TYPE = SAML2
    ENABLED = { TRUE | FALSE }
    SAML2_ISSUER = '<string_literal>'
    SAML2_SSO_URL = '<string_literal>'
    SAML2_PROVIDER = '<string_literal>'
    SAML2_X509_CERT = '<string_literal>'
    [ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
    [ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<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>' ]
    [ COMMENT = '<string_literal>' ]
Copy

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 Drittanbieterdienst funktioniert nicht.

SAML2_ISSUER = 'string_literal'

Die Zeichenfolge, die die EntityID bzw. den Aussteller des IdP enthält.

SAML2_SSO_URL = 'string_literal'

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 = 'string_literal'

Die Zeichenfolge, die den IdP beschreibt.

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

SAML2_X509_CERT = 'string_literal'

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

Optionale Parameter

ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )

Eine Liste von E-Mail-Domänen, die sich mit einer SAML2-Sicherheitsintegration authentifizieren können. Beispiel: ALLOWED_USER_DOMAINS = ("example.com", "example2.com", ...).

This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see Verwenden mehrerer Identitätsanbieter für die Verbundauthentifizierung.

ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )

Eine Liste von regulären Ausdrücken, mit denen E-Mail-Adressen abgeglichen werden, um sich mit einer SAML2-Sicherheitsintegration zu authentifizieren. Beispiel: ALLOWED_EMAIL_PATTERNS = ("^(.+dev)@example.com$", "^(.+dev)@example2.com$", ... ).

This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see Verwenden mehrerer Identitätsanbieter für die Verbundauthentifizierung.

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'

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 = 'string_literal'

Das von Snowflake generierte Base64-codierte, selbstsignierte Zertifikat, das für die Verschlüsselung von SAML-Assertionen und das Senden signierter SAML-Anforderungen verwendet wird.

Sie müssen mindestens eines dieser Features (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 = 'string_literal'

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 den ForceAuthn-SAML-Parameter in der ausgehenden Anforderung von Snowflake an den Identitätsanbieter auf TRUE.

  • 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.

Der Wert dieser Eigenschaft muss mit der im IdP angegebenen Snowflake-Konto-URL übereinstimmen. Diese URL ist standardmäßig auf die alte URL eingestellt. Wenn Sie also ein anderes URL-Format im IdP definieren, müssen Sie beim Erstellen der Sicherheitsintegration diese Eigenschaft entsprechend anpassen. Weitere Details dazu finden Sie unter SAML2-Sicherheitsintegration erstellen.

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.

Der Wert dieser Eigenschaft muss mit der im IdP angegebenen Snowflake-Konto-URL übereinstimmen. Diese URL ist standardmäßig auf die alte URL eingestellt. Wenn Sie also ein anderes URL-Format im IdP definieren, müssen Sie beim Erstellen der Sicherheitsintegration diese Eigenschaft entsprechend anpassen. Weitere Details dazu finden Sie unter SAML2-Sicherheitsintegration erstellen.

Standard: https://<Konto-Locator>.<Region>.snowflakecomputing.com/fed/login

COMMENT = 'string_literal'

Gibt einen Kommentar für die Integration an.

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 kundenspezifischen Rolle mit einem bestimmten Satz von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

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.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiel

Im folgenden Beispiel wird eine Sicherheitsintegration für Microsoft Active Directory Federation Services (AD FS) 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
    ;
Copy

Zeigen Sie mit DESCRIBE INTEGRATION die Integrationseinstellungen an:

DESC SECURITY INTEGRATION my_idp;
Copy