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
Syntaxe¶
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>' ]
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 le EntityID/émetteur de l’IdP.
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¶
ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )
Une liste de domaines de messagerie qui peuvent s’authentifier avec une intégration de sécurité SAML2. Par exemple,
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 Utilisation de plusieurs fournisseurs d’identité pour l’authentification fédérée.
ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )
Une liste d’expressions régulières sur lesquelles les adresses e-mail sont comparées pour s’authentifier avec une intégration de sécurité SAML2. Par exemple,
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 Utilisation de plusieurs fournisseurs d’identité pour l’authentification fédérée.
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é codé en Base64 généré par Snowflake utilisé pour chiffrer les assertions SAML et envoyer les requêtes 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 Console.
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ètreForceAuthn
SAML surTRUE
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 Créer une intégration de sécurité SAML2.
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 Créer une intégration de sécurité SAML2.
Par défaut :
https://<localisateur_compte>.<région>.snowflakecomputing.com/fed/login
COMMENT = 'string_literal'
Spécifie un commentaire pour l’intégration.
Par défaut : aucune valeur
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 Aperçu du contrôle d’accès.
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. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.
Exemple¶
L’exemple suivant crée une intégration de sécurité Microsoft Active Directory Federation Services (AD FS) 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;