Configurer Snowflake pour UserLock Single Sign-On (SSO)
Activez l'authentification unique (SSO) avec UserLock pour centraliser l'authentification, appliquer les stratégies d'accès et simplifier la connexion à Snowflake.
Ce guide explique comment intégrer Snowflake à UserLock Single Sign-On (SSO) en utilisant le protocole SAML 2.0.
Une fois configuré, les connexions Snowflake sont authentifiées par UserLock via Active Directory, permettant aux administrateurs d'appliquer les stratégies d'accès (MFA, restrictions temporelles, machines, ou localisation) aux sessions Snowflake.
Contrairement à la plupart des fournisseurs de services, Snowflake ne se configure pas dans un formulaire graphique : les paramètres SAML sont déclarés par une commande SQL qui crée une intégration de sécurité.
🚩️ Avant de commencer :
Vous devez disposer d'un compte Snowflake et d'un rôle possédant le privilège ACCOUNTADMIN.
Vous devez connaître le domaine d'e-mail utilisé par vos utilisateurs Snowflake, par exemple
contoso.com.Le SSO UserLock doit déjà être installé et configuré, et joignable depuis les navigateurs de vos utilisateurs Snowflake en HTTPS avec un certificat SSL valide.
Chaque utilisateur qui se connectera via le SSO doit déjà exister dans Snowflake. Snowflake ne crée pas de compte à partir d'une assertion SAML.
⚠️ Important
Conservez au moins un compte ACCOUNTADMIN dont vous connaissez le mot de passe Snowflake, et protégez-le par la MFA Snowflake. Par défaut, un utilisateur Snowflake configuré pour SAML peut toujours s'authentifier avec son mot de passe Snowflake : c'est votre seul moyen de reprendre la main si le SSO UserLock devient injoignable.
N'appliquez pas de stratégie d'authentification SAML uniquement tant que le parcours de connexion complet n'a pas été testé.
Ouvrez la console Snowflake sur
https://app.snowflake.com.Cliquez sur +, sélectionnez SQL File, puis exécutez :
sqlSELECT CURRENT_ORGANIZATION_NAME() AS ORG_NAME, CURRENT_ACCOUNT_NAME() AS ACCOUNT_NAME;Dans la console UserLock, accédez à ⚙️ Paramètres du serveur ▸ Authentification unique (SSO).
Dans la liste des applications disponibles, cliquez sur Snowflake.
Renseignez les champs suivants :
Paramètre
Valeur
Domaine d'application
L'identifiant de compte uniquement, sous la forme
<org_name>-<account_name>. Par exemplecontoso-ab12345Domaine d'e-mail
Domaine des adresses e-mail utilisées pour se connecter. Par exemple
contoso.comCertificat
Laissez vide, sauf si vous exigez que Snowflake signe ses requêtes SAML
Enregistrez le profil.
L'URL de votre SSO UserLock est affichée dans ⚙️ Paramètres du serveur ▸ Authentification unique (SSO). Dans ce guide, <SSO_address> désigne cette URL sans le protocole. Pour https://sso.contoso.com, l'adresse SSO est sso.contoso.com. Si l'URL utilise un port personnalisé, incluez-le partout : https://sso.contoso.com:450 donne sso.contoso.com:450.
Récupérez d'abord le certificat de signature UserLock :
Dans la console UserLock, accédez à ⚙️ Paramètres du serveur ▸ Authentification unique (SSO).
Cliquez sur Télécharger ▸ Certificat SAML.
Ouvrez le certificat dans un éditeur de texte et copiez la valeur Base64.
⚠️ Important
Snowflake attend uniquement le corps Base64. Supprimez les lignes -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----, ainsi que tous les retours à la ligne, pour obtenir une chaîne continue.
Exécutez ensuite la commande suivante en tant qu'ACCOUNTADMIN, en adaptant les valeurs à votre environnement :
CREATE SECURITY INTEGRATION userlock_sso
TYPE = SAML2
ENABLED = TRUE
SAML2_PROVIDER = 'Custom'
SAML2_ISSUER = 'https://sso.contoso.com'
SAML2_SSO_URL = 'https://sso.contoso.com/saml/sso'
SAML2_X509_CERT = 'MIICqzCCAZOgAwIBAgIIVS4f...wNxVfdfiKl7MeJ4XyJx'
SAML2_SNOWFLAKE_ISSUER_URL = 'https://contoso-ab12345.snowflakecomputing.com'
SAML2_SNOWFLAKE_ACS_URL = 'https://contoso-ab12345.snowflakecomputing.com/fed/login'
SAML2_REQUESTED_NAMEID_FORMAT = 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified'
SAML2_ENABLE_SP_INITIATED = TRUE
SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'UserLock SSO';Les cinq valeurs à remplacer :
Champ | Valeur |
|---|---|
|
|
|
|
| La valeur Base64 copiée ci-dessus |
|
|
|
|
⚠️ Important
Conservez SAML2_ENABLE_SP_INITIATED = TRUE. UserLock SSO ne prend en charge que l'authentification initiée par le fournisseur de services : les utilisateurs doivent donc démarrer la connexion depuis Snowflake.
UserLock envoie l'adresse e-mail de l'utilisateur comme NameID SAML, et Snowflake compare cette valeur au LOGIN_NAME de l'utilisateur. Un utilisateur Snowflake dont le LOGIN_NAME ne correspond pas à l'adresse envoyée par UserLock est rejeté.
Pour chaque utilisateur qui se connectera via le SSO, définissez LOGIN_NAME sur l'adresse e-mail présente dans Active Directory, dans le domaine configuré dans le profil UserLock :
CREATE USER jdoe
LOGIN_NAME = 'jdoe@contoso.com'
EMAIL = 'jdoe@contoso.com'
DISPLAY_NAME = 'Jane Doe'
FIRST_NAME = 'Jane'
LAST_NAME = 'Doe'
MUST_CHANGE_PASSWORD = FALSE
DEFAULT_ROLE = PUBLIC;Pour modifier un utilisateur existant, exécutez ALTER USER jdoe SET LOGIN_NAME = 'jdoe@contoso.com';
Gardez votre session d'administration Snowflake ouverte pendant le test.
Ouvrez une fenêtre de navigation privée.
Ouvrez l'URL de votre compte, par exemple
https://contoso-ab12345.snowflakecomputing.com.Cliquez sur UserLock SSO sur la page de connexion.
Authentifiez-vous via UserLock avec un compte Active Directory dont l'adresse e-mail appartient au Domaine d'e-mail configuré et correspond au
LOGIN_NAMEd'un utilisateur Snowflake existant.Vérifiez que l'utilisateur atteint la console Snowflake avec le rôle attendu.
L'authentification par mot de passe Snowflake reste disponible par défaut : c'est ce qui permet à un administrateur de se connecter lorsque le SSO UserLock est injoignable. Vérifiez les points suivants avant d'imposer le SSO :
Au moins un compte ACCOUNTADMIN possède un mot de passe Snowflake que vous connaissez.
Ce compte est protégé par la MFA Snowflake.
Ce compte est exclu de toute stratégie d'authentification SAML uniquement que vous appliquez, ou la stratégie est appliquée à un rôle plutôt qu'au compte entier.
La création de l'intégration de sécurité ne désactive pas la connexion par mot de passe. Certains environnements exigent que les utilisateurs s'authentifient uniquement via le SSO. Snowflake applique cette contrainte au moyen d'une stratégie d'authentification.
⚠️ Important
Une stratégie SAML uniquement appliquée au niveau du compte bloque toutes les connexions par mot de passe, y compris la vôtre. Si le SSO tombe ensuite, le seul recours est d'exécuter ALTER ACCOUNT UNSET AUTHENTICATION POLICY; depuis une session ou un rôle non couvert par la stratégie.
Appliquer d'abord la stratégie à un seul rôle est une première étape plus sûre.
Vérifiez que le SSO fonctionne de bout en bout pour les utilisateurs concernés.
Créez la stratégie :
sqlCREATE AUTHENTICATION POLICY saml_only_policy AUTHENTICATION_METHODS = ('SAML');Appliquez-la :
sqlALTER ACCOUNT SET AUTHENTICATION POLICY saml_only_policy;
Lorsque vous renouvelez le certificat SAML UserLock, mettez Snowflake à jour pendant l'étape de mise à jour des applications SaaS de la procédure Renouveler le certificat SAML.
Dans la console UserLock, accédez à ⚙️ Paramètres du serveur ▸ Authentification unique (SSO) et cliquez sur Télécharger ▸ Certificat SAML.
Ouvrez le certificat dans un éditeur de texte et copiez la valeur Base64, sans les lignes d'en-tête et de fin, et sans retours à la ligne.
Mettez l'intégration à jour :
sqlALTER SECURITY INTEGRATION userlock_sso SET SAML2_X509_CERT = 'MIICqzCCAZOgAwIBAgIIVS4f...wNxVfdfiKl7MeJ4XyJx';Testez une connexion et vérifiez que l'authentification aboutit.
Pour les problèmes courants, consultez la page Dépannage du SSO.Si le problème persiste, contactez le Support IS Decisions.
Le NameID envoyé par UserLock ne correspond à aucun utilisateur Snowflake. Soit l'utilisateur n'a pas été créé dans Snowflake, soit son LOGIN_NAME ne correspond pas à l'adresse e-mail présente dans Active Directory. Voir Faire correspondre les utilisateurs Snowflake à Active Directory.
UserLock n'a trouvé aucune adresse e-mail correspondant au Domaine d'e-mail configuré dans le profil Snowflake sur le compte Active Directory qui s'authentifie. Vérifiez les attributs mail et proxyAddresses de l'utilisateur, ainsi que la valeur du Domaine d'e-mail dans le profil. UserLock envoie également cette erreur par e-mail à l'administrateur SSO.
SAML2_SNOWFLAKE_ISSUER_URL ou SAML2_SNOWFLAKE_ACS_URL ne correspond pas exactement à l'URL de votre compte. Exécutez à nouveau la requête de l'étape 1 pour confirmer l'identifiant de compte, puis corrigez l'intégration avec ALTER SECURITY INTEGRATION.
SAML2_X509_CERT ne correspond plus au certificat utilisé par UserLock pour signer la réponse SAML, généralement après un renouvellement de certificat. VoirMettre à jour le Certificat SAML dans Snowflake. Vérifiez également que la valeur ne contient ni ligne d'en-tête, ni ligne de fin, ni retour à la ligne.
SAML2_ENABLE_SP_INITIATED n'est pas défini sur TRUE. Sans ce paramètre, les utilisateurs ne peuvent pas atteindre UserLock, qui ne prend pas en charge l'authentification initiée par le fournisseur d'identité.
ALTER SECURITY INTEGRATION userlock_sso SET SAML2_ENABLE_SP_INITIATED = TRUE;Connectez-vous avec le mot de passe Snowflake de l'administrateur de secours, puis désactivez l'intégration :
ALTER SECURITY INTEGRATION userlock_sso SET ENABLED = FALSE;Si une stratégie d'authentification SAML uniquement est appliquée, retirez-la d'abord :
ALTER ACCOUNT UNSET AUTHENTICATION POLICY;Réactivez l'intégration une fois le SSO UserLock de nouveau joignable.
Vous pouvez étendre la sécurité des sessions SaaS en appliquant les stratégies d’accès UserLock, en complément de l’authentification.
Appliquer la MFA sur les sessions SaaS : exiger une authentification renforcée.
Restrictions horaires : définir quand les utilisateurs sont autorisés à se connecter.
Règles de géolocalisation : appliquer des politiques en fonction de l’emplacement de l’utilisateur.
Limites de sessions : autoriser ou interdire totalement l’ouverture de sessions SaaS pour certains utilisateurs.