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>'
[ 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é 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éez 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éez une intégration de sécurité SAML2..
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 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. 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 (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;