Catégories :

Utilisateur et sécurité DDL (Intégrations de services tiers)

CREATE SECURITY INTEGRATION (SAML2)

Crée une nouvelle intégration de sécurité SAML2 dans le compte ou remplace une intégration existante. Une intégration de sécurité SAML2 fournit des flux de travail d’authentification unique (SSO) en créant une interface entre Snowflake et un fournisseur d’identité tiers (IdP).

Pour des informations sur la création d’autres types d’intégrations de sécurité (par exemple SCIM), voir CREATE SECURITY INTEGRATION.

Voir aussi :

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

Dans ce chapitre :

Syntaxe

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>' ]

Paramètres requis

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = SAML2

Spécifiez le type d’intégration :

  • SAML2 : crée une interface de sécurité entre Snowflake et le fournisseur d’identité.

ENABLED = TRUE | FALSE

Booléen qui spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.

  • TRUE permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.

  • FALSE suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.

SAML2_ISSUER = 'string_literal'

La chaîne contenant l’IdP EntityID / Issuer.

SAML2_SSO_URL = 'string_literal'

La chaîne contenant l’URL SSO de l’IdP, où l’utilisateur doit être redirigé par Snowflake (le fournisseur de services) avec un message AuthnRequest SAML.

SAML2_PROVIDER = 'string_literal'

La chaîne décrivant l’IdP.

L’un des éléments suivants : OKTA, ADFS, personnalisé.

SAML2_X509_CERT = 'string_literal'

Le certificat de signature IdP encodé en Base64 sur une seule ligne sans les marqueurs -----BEGIN CERTIFICATE----- de début et -----END CERTIFICATE----- de fin.

Paramètres facultatifs

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'

Chaîne contenant l’étiquette à afficher après le bouton Log In With sur la page de connexion.

SAML2_ENABLE_SP_INITIATED = TRUE | FALSE

Le booléen indiquant si le bouton Log In With sera affiché sur la page de connexion.

  • TRUE affiche le bouton Log in With sur la page de connexion.

  • FALSE n’affiche pas le bouton Log in With sur la page de connexion.

SAML2_SNOWFLAKE_X509_CERT = 'string_literal'

Le certificat auto-signé encodé en Base64 généré par Snowflake pour une utilisation avec Chiffrement des assertions SAML et Demandes SAML signées.

Vous devez avoir au moins une de ces fonctionnalités (assertions SAML chiffrées ou réponses SAML signées) activée dans votre compte Snowflake pour accéder à la valeur du certificat.

SAML2_SIGN_REQUEST = TRUE | FALSE

Le booléen indiquant si les demandes SAML sont signées.

  • TRUE permet la signature de demandes SAML.

  • FALSE n’autorise pas la signature de demandes SAML.

SAML2_REQUESTED_NAMEID_FORMAT = 'string_literal'

Le format SAML NameID permet à Snowflake de définir une attente de l’attribut identifiant de l’utilisateur (c’est-à-dire le sujet SAML) dans l’assertion SAML de l” IdP pour assurer une authentification valide dans Snowflake. Si aucune valeur n’est spécifiée, Snowflake envoie la valeur urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress dans la requête d’authentification à l” IdP.

En option.

Si vous choisissez de spécifier le format SAML NameID, utilisez l’une des valeurs suivantes :

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

Le point de terminaison vers lequel Snowflake redirige les utilisateurs après avoir cliqué sur le bouton Log Out dans l”classic web interface.

Snowflake met fin à la session Snowflake en se redirigeant vers le point de terminaison spécifié.

SAML2_FORCE_AUTHN = TRUE | FALSE

Le booléen indiquant si les utilisateurs, lors du flux d’authentification initial, sont obligés de s’authentifier à nouveau pour accéder à Snowflake. Lorsqu’il est défini sur TRUE, Snowflake définit le paramètre ForceAuthn SAML sur TRUE dans la requête sortante de Snowflake vers le fournisseur d’identité.

  • TRUE oblige les utilisateurs à s’authentifier à nouveau pour accéder à Snowflake, même si une session valide avec le fournisseur d’identité existe.

  • FALSE n’oblige pas les utilisateurs à s’authentifier à nouveau pour accéder à Snowflake.

Par défaut : FALSE.

SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>'

La chaîne contenant EntityID / Issuer pour le fournisseur de services Snowflake.

Si une valeur incorrecte est spécifiée, Snowflake renvoie un message d’erreur indiquant les valeurs acceptables à utiliser.

La valeur de cette propriété doit correspondre à l’URL du compte Snowflake spécifiée dans le IdP. Il s’agit par défaut du format d’URL héritée, donc si vous définissez un format d’URL différent dans le IdP, veillez à définir cette propriété de manière appropriée lors de la création de l’intégration de sécurité. Pour plus de détails, voir Option 2 : créez une intégration de sécurité.

SAML2_SNOWFLAKE_ACS_URL = '<string_literal>'

La chaîne contenant l’URL Snowflake Assertion Consumer Service à laquelle l’IdP enverra sa réponse d’authentification SAML à Snowflake. Cette propriété sera définie dans la demande d’authentification SAML générée par Snowflake lors du lancement d’une opération SAML SSO avec l’IdP.

Si une valeur incorrecte est spécifiée, Snowflake renvoie un message d’erreur indiquant les valeurs acceptables à utiliser.

La valeur de cette propriété doit correspondre à l’URL du compte Snowflake spécifiée dans le IdP. Il s’agit par défaut du format d’URL héritée, donc si vous définissez un format d’URL différent dans le IdP, veillez à définir cette propriété de manière appropriée lors de la création de l’intégration de sécurité. Pour plus de détails, voir Option 2 : créez une intégration de sécurité.

Par défaut : https://<localisateur_compte>.<région>.snowflakecomputing.com/fed/login

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

CREATE INTEGRATION

Compte

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Contrôle d’accès dans Snowflake.

Notes sur l’utilisation

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. Autrement dit, lorsque l’objet est remplacé, la suppression de l’ancien objet et la création du nouvel objet sont traitées en une seule transaction.

Exemple

L’exemple suivant crée une intégration de sécurité Microsoft Active Directory Federation Services (ADFS) avec les deux paramètres facultatifs :

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
    ;

Afficher les paramètres d’intégration à l’aide de DESCRIBE INTEGRATION :

DESC SECURITY INTEGRATION my_idp;
Revenir au début