Fonctions SSO SAML avancées¶
Cette rubrique décrit comment configurer et utiliser les fonctionnalités avancées SSO SAML dans Snowflake.
Dans ce chapitre :
Vue d’ensemble¶
L’intégration de sécurité SAML2 est le fondement des fonctionnalités avancées SSO SAML de Snowflake.
Après avoir configuré une intégration de sécurité SAML2, vous pouvez utiliser l’intégration de sécurité pour effectuer ce qui suit :
Gérez votre configuration SAML SSO.
Chiffrez des assertions SAML.
Signez des requêtes SAML.
Configurez le format SAML
NameID
.Exportez des métadonnées d’intégration de sécurité.
Forcez la ré-authentification dans Snowflake pendant le flux d’authentification initial SSO.
Note
Si vous prévoyez d’utiliser SAML SSO avec la fonction de redirection des clients, vous devez utiliser l’intégration de sécurité SAML2 dans cette rubrique.
Pour plus d’informations, voir Rediriger les connexions du client.
Migration d’une intégration de sécurité SAML2¶
L’intégration de sécurité SAML2 spécifie les informations du fournisseur d’identité (IdP) dans Snowflake et est destinée à remplacer les informations contenues dans le paramètre SAML_IDENTITY_PROVIDER.
Il existe deux options pour spécifier l’IdP dans Snowflake :
Utilisez une fonction système pour migrer les informations IdP existantes vers une intégration de sécurité.
Créez ou remplacez une intégration de sécurité pour contenir les informations IdP.
L’option 1 est la voie recommandée si vous avez déjà un IdP configuré pour utiliser l’authentification fédérée à Snowflake en fonction du paramètre SAML_IDENTITY_PROVIDER.
L’option 2 est la voie recommandée si votre compte n’a pas le paramètre SAML_IDENTITY_PROVIDER.
Option 1 : utiliser une fonction système¶
Vous pouvez migrer votre configuration IdP existante du paramètre SAML_IDENTITY_PROVIDER vers une intégration de sécurité à l’aide de la fonction système SYSTEM$MIGRATE_SAML_IDP_REGISTRATION.
Après avoir exécuté cette fonction système, vous ne devez plus utiliser le paramètre SAML_IDENTITY_PROVIDER pour la configuration et la gestion de SSO SAML. À la place, gérez votre intégration de sécurité SAML2 comme indiqué dans Gestion de votre intégration de sécurité SAML2.
Note
Si vous le souhaitez, avant d’exécuter la fonction système, vous pouvez vérifier la configuration SAML_IDENTITY_PROVIDER en exécutant l’instruction suivante :
show parameters like 'SAML_IDENTITY_PROVIDER' in account;
Option 2 : créer ou remplacer une intégration de sécurité¶
Si vous n’avez pas d’IdP existant configuré dans Snowflake pour utiliser l’authentification fédérée et que vous souhaitez configurer votre IdP dans Snowflake pour l’authentification fédérée, créez une intégration de sécurité où TYPE = SAML2
en utilisant CREATE SECURITY INTEGRATION.
Si vous disposez d’une intégration de sécurité existante où TYPE = SAML2
et que vous devez mettre à jour un ou plusieurs paramètres, exécutez une instruction ALTER SECURITY INTEGRATION ou remplacez l’intégration de sécurité par une instruction CREATE OR REPLACE SECURITY INTEGRATION.
Utilisation de l’URL du compte de l’organisation dans l’intégration de sécurité¶
Si vous vous connectez à Snowflake via l’interface Web classique cette étape n’est pas nécessaire.
Si vous vous connectez à Snowflake via Snowsight, l’interface Web de Snowflake, effectuez les étapes suivantes.
Pour utiliser l’URL de l’identificateur de compte associée à votre organisation dans l’intégration de sécurité SAML2, effectuez les étapes suivantes :
Exécutez la fonction SYSTEM$WHITELIST et enregistrez la valeur dans la colonne
HOST
à partir de la colonneSNOWFLAKE_DEPLOYMENT_REGIONLESS
TYPE
. Par exemple :SELECT t.VALUE:type::VARCHAR as type, t.VALUE:host::VARCHAR as host, t.VALUE:port as port FROM TABLE(FLATTEN(input => PARSE_JSON(SYSTEM$WHITELIST()))) AS t;
Exemple de sortie :
+-----------------------------------+----------------------------+------+ | TYPE | HOST | PORT | +-----------------------------------+----------------------------+------+ ... | "SNOWFLAKE_DEPLOYMENT_REGIONLESS" | "<account_identifier_url>" | 443 | ... +-----------------------------------+----------------------------+------+
Note
Si vous souhaitez renommer la valeur
<url_identificateur_compte>
, contactez l” assistance de Snowflake avec une note incluant le nom souhaité pour cette valeur.Attendez que l’assistance de Snowflake traite la requête.
Mettez à jour votre intégration de sécurité SAML2 pour définir l’URL de l’identificateur de compte pour les paramètres
SAML2_SNOWFLAKE_ISSUER_URL
etSAML2_SNOWFLAKE_ACS_URL
comme indiqué ci-dessous :alter security integration my_integration set saml2_snowflake_issuer_url = 'https://<account_identifier>.snowflakecomputing.com'; alter security integration my_integration set saml2_snowflake_acs_url = 'https://<account_identifier>.snowflakecomputing.com/fed/login';
Vérifiez que votre fournisseur d’identité est configuré pour accepter l’URL de l’identificateur de compte.
Chiffrement des assertions SAML¶
Snowflake permet à l’IdP de votre organisation d’envoyer des assertions SAML2 chiffrées à Snowflake une fois que l’utilisateur s’est authentifié auprès d’IdP.
Les assertions SAML2 chiffrées facilitent le transfert sécurisé des informations pendant que les utilisateurs accèdent à Snowflake via SSO fédéré. Les clients peuvent chiffrer leurs assertions SAML avec le certificat public de Snowflake. Lors de la réception des assertions chiffrées de l’IdP du client, Snowflake déchiffre les assertions chiffrées avec sa clé privée. Snowflake n’exporte jamais sa clé privée et ne la rend jamais disponible.
Les assertions SAML chiffrées sont intégrées à l’intégration de sécurité SAML2. Vous pouvez utiliser une intégration de sécurité SAML2 existante ou créer une nouvelle intégration de sécurité SAML2.
La procédure générale pour configurer et utiliser des assertions SAML chiffrées est la suivante :
Créez une intégration de sécurité SAML2.
Exportez le certificat public de Snowflake au format PEM.
Importez le certificat public dans votre IdP SAML.
Connectez-vous à Snowflake.
Procédure d’assertions SAML chiffrée¶
Suivez ces étapes pour configurer les assertions SAML chiffrées et vous connecter à Snowflake.
Etape 1 : créer une intégration de sécurité SAML2 ou migrer vers celle-ci¶
Si vous avez une configuration SAML existante dans Snowflake et que vous souhaitez utiliser cette fonctionnalité, vous pouvez migrer vers une intégration de sécurité SAML2 en exécutant cette instruction SQL. Pour plus d’informations sur cette fonction système, voir SYSTEM$MIGRATE_SAML_IDP_REGISTRATION.
select system$migrate_saml_idp_registration('<integration_name>', '<issuer>');
Sinon, créez une intégration de sécurité SAML2 en exécutant l’instruction SQL suivante. Pour plus d’informations, voir CREATE SECURITY INTEGRATION.
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 = true;
Étape 2 : exporter le certificat public de Snowflake¶
Pour exporter le certificat public de Snowflake, procédez comme suit.
Exécutez l’instruction SQL suivante sur l’intégration SAML2 pour obtenir la valeur SAML2_SNOWFLAKE_X509_CERT (dans la ligne 7).
desc security integration my_idp;
Enregistrez la valeur au format PEM. Veillez à inclure les délimiteurs
BEGIN CERTIFICATE
etEND CERTIFICATE
. Voici un exemple représentatif d’un certificat tronqué au format PEM :-----BEGIN CERTIFICATE----- MIICrTCCAZWgAwIBAgIJAOF6EPk93wjlMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV BAMMC1RFU1RBQ0NPVU5UMB4XDTIwMDE.... -----END CERTIFICATE-----
Créer une demande de signature de certificat (CSR) — Facultatif¶
Par défaut, une intégration de sécurité SAML2 dans Snowflake utilise un certificat auto-signé pour l’IdP SAML pour chiffrer les assertions SAML. Si votre organisation requiert l’utilisation d’un certificat émis par une autorité de certification (CA), procédez comme suit.
Générez une demande de signature de certificat (CSR) à partir de Snowflake à l’aide de la fonction système SYSTEM$GENERATE_SAML_CSR.
Fournissez le CSR au CA de votre choix afin que le certificat puisse être émis.
Téléchargez le certificat encodé en base64 dans l’intégration SAML à l’aide de l’instruction ALTER suivante, sans les délimiteurs
BEGIN CERTIFICATE
etEND CERTIFICATE
.alter security integration my_idp set SAML2_SNOWFLAKE_X509_CERT = 'AX2bv...';
Vous pouvez ensuite télécharger le certificat pour cette clé privée à l’aide du CSR généré par la fonction dans Snowflake.
Étape 3 : configurer votre IdP SAML¶
Téléchargez le certificat enregistré au format PEM dans l’IdP de votre organisation en tant que certificat de chiffrement SAML.
Configurez votre IdP pour chiffrer des assertions SAML pour le fournisseur de services Snowflake (SP).
Etape 4 : se connecter à Snowflake¶
Après avoir configuré votre IdP, effectuez les tâches suivantes.
Vérifiez votre configuration IdP.
Créez des utilisateurs et attribuez des rôles dans Snowflake.
Déterminez si les utilisateurs se connecteront à Snowflake via SSO initié par l’IdP ou le SP.
Pour le SSO initié par l’IdP, informez vos utilisateurs sur la façon d’accéder à Snowflake (par exemple, accès au portail interne).
Pour le SSO initié par le SP (c’est-à-dire que les utilisateurs accèdent à Snowflake et sont ensuite redirigés vers le client IdP), activez le SSO initié par Snowflake en définissant le paramètre de compte SSO_LOGIN_PAGE sur true. En tant qu’utilisateur avec le rôle ACCOUNTADMIN, exécutez les instructions suivantes.
use role accountadmin; alter account set SSO_LOGIN_PAGE = true;
Accédez à Snowflake comme indiqué dans Gestion/utilisation de l’authentification fédérée.
Demandes SAML signées¶
Vous pouvez envoyer une demande SAML signée de Snowflake au IdP pour vérifier que Snowflake est bien un fournisseur de services authentique. Pour effectuer cette vérification, vous pouvez configurer votre IdP afin d’utiliser le certificat stocké dans l’intégration de sécurité SAML2 pour vous assurer que la demande SAML provient bien de Snowflake, et non d’un tiers qui usurpe l’identité de Snowflake.
Les demandes SAML signées sont intégrées à l’intégration de sécurité SAML2. Vous pouvez utiliser une intégration de sécurité existante de type = saml2
ou créer une nouvelle intégration de sécurité pour utiliser des demandes SAML signées.
Si votre IdP prend en charge l’acceptation des demandes SAML signées, la procédure générale pour configurer et utiliser les demandes SAML signées est la suivante :
Créez ou mettez à jour l’intégration de sécurité.
Mettez à jour votre intégration de sécurité SAML2.
Configurez votre IdP pour accepter les demandes SAML signées.
Connectez-vous à Snowflake.
Procédure de demandes SAML signées¶
Suivez ces étapes pour configurer les demandes SAML signées et vous connecter à Snowflake.
Etape 1 : créer une intégration de sécurité SAML2 ou migrer vers celle-ci¶
Si vous avez une configuration SAML existante dans Snowflake et que vous souhaitez utiliser cette fonctionnalité, vous pouvez migrer vers une intégration de sécurité SAML2 en exécutant cette instruction SQL. Pour plus d’informations sur cette fonction système, voir SYSTEM$MIGRATE_SAML_IDP_REGISTRATION.
select system$migrate_saml_idp_registration('<integration_name>', '<issuer>');
Sinon, créez une intégration de sécurité SAML2 en exécutant l’instruction SQL suivante. Pour plus d’informations, voir CREATE SECURITY INTEGRATION.
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 = true;
Etape 2 : mise à jour de l’intégration de la sécurité SAML2¶
Pour utiliser des demandes signées dans Snowflake, vous devez procéder comme suit dans Snowflake :
Activez l’intégration de la sécurité pour signer les demandes.
Enregistrez la valeur de
saml2_snowflake_x509_cert
pour l’utiliser à l’étape suivante.
En tant qu’administrateur de compte (c’est-à-dire un utilisateur avec le rôle ACCOUNTADMIN), exécutez les instructions suivantes :
-- update the security integration
alter security integration my_idp set SAML2_SIGN_REQUEST = true;
-- view the updated security integration, save the certificate value in row 7.
desc security integration my_idp;
Etape 3 : configurez votre IdP pour accepter les demandes signées¶
Configurez votre IdP pour accepter les demandes signées de Snowflake. Pendant la configuration, votre IdP doit avoir le certificat stocké dans le paramètre saml2_snowflake_x509_cert
. Votre IdP utilise ce certificat pour vérifier que la demande SAML provient de Snowflake.
Note
Snowflake n’est pas responsable de la configuration de votre IdP. Pour obtenir de l’aide sur la configuration de votre IdP, veuillez consulter votre administrateur de sécurité interne.
Etape 4 : se connecter à Snowflake¶
Après avoir configuré votre IdP, effectuez les tâches suivantes.
Vérifiez votre configuration IdP.
Créez des utilisateurs et attribuez des rôles dans Snowflake.
Déterminez si les utilisateurs se connecteront à Snowflake via SSO initié par l’IdP ou le SP.
Pour le SSO initié par l’IdP, informez vos utilisateurs sur la façon d’accéder à Snowflake (par exemple, accès au portail interne).
Pour le SSO initié par le SP (c’est-à-dire que les utilisateurs accèdent à Snowflake et sont ensuite redirigés vers le client IdP), activez le SSO initié par Snowflake en définissant le paramètre de compte SSO_LOGIN_PAGE sur true. En tant qu’utilisateur avec le rôle ACCOUNTADMIN, exécutez les instructions suivantes.
use role accountadmin; alter account set SSO_LOGIN_PAGE = true;
Accédez à Snowflake comme indiqué dans Gestion/utilisation de l’authentification fédérée.
Format SAML NameID
¶
Snowflake prend en charge la possibilité pour l’administrateur (c’est-à-dire l’utilisateur ayant le rôle ACCOUNTADMIN) de spécifier le format SAML NameID
qui sera demandé dans la requête d’authentification SAML sortante envoyée depuis Snowflake vers l” IdP.
La spécification du 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.
Le format SAML NameID
peut être intégré à l’intégration de sécurité SAML2. Vous pouvez spécifier SAML NameID
dans l’intégration de sécurité à l’aide de 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
Si le format SAML NameID
n’est pas spécifié, Snowflake utilise la valeur suivante :
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Si votre IdP prend en charge la spécification de SAML NameID
dans une assertion SAML, la procédure générale pour configurer et spécifier le NameID
est la suivante :
Créez ou migrez une intégration de sécurité SAML2 dans Snowflake.
Mettez à jour votre intégration de sécurité pour prendre en charge
NameId
.Configurez votre IdP pour spécifier le format SAML
NameID
.Connectez-vous à Snowflake.
Procédure de configuration SAML NameID
¶
Suivez ces étapes pour configurer le format SAML NameID
et vous connecter à Snowflake.
Etape 1 : créer une intégration de sécurité SAML2 ou migrer vers celle-ci¶
Si vous avez une configuration SAML existante dans Snowflake et que vous souhaitez utiliser cette fonctionnalité, vous pouvez migrer vers une intégration de sécurité SAML2 en exécutant cette instruction SQL. Pour plus d’informations sur cette fonction système, voir SYSTEM$MIGRATE_SAML_IDP_REGISTRATION.
select system$migrate_saml_idp_registration('<integration_name>', '<issuer>');
Sinon, créez une intégration de sécurité SAML2 en exécutant l’instruction SQL suivante. Pour plus d’informations, voir CREATE SECURITY INTEGRATION.
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 = true;
Étape 2 : mise à jour de l’intégration de la sécurité SAML2 pour NameID
¶
Pour spécifier le format SAML NameID
, exécutez les instructions suivantes en tant qu’administrateur de compte (c’est-à-dire un utilisateur doté du rôle ACCOUNTADMIN) :
-- update the security integration
alter security integration my_idp set SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>';
-- view the updated security integration
desc security integration my_idp;
Étape 3 : configuration de votre IdP pour spécifier NameID
¶
Configurez votre IdP pour spécifier le format SAML NameID
dans les assertions SAML.
Note
Snowflake n’est pas responsable de la configuration de votre IdP. Pour obtenir de l’aide sur la configuration de votre IdP, veuillez consulter votre administrateur de sécurité interne.
Etape 4 : se connecter à Snowflake¶
Après avoir configuré votre IdP, effectuez les tâches suivantes.
Vérifiez votre configuration IdP.
Créez des utilisateurs et attribuez des rôles dans Snowflake.
Déterminez si les utilisateurs se connecteront à Snowflake via SSO initié par l’IdP ou le SP.
Pour le SSO initié par l’IdP, informez vos utilisateurs sur la façon d’accéder à Snowflake (par exemple, accès au portail interne).
Pour le SSO initié par le SP (c’est-à-dire que les utilisateurs accèdent à Snowflake et sont ensuite redirigés vers le client IdP), activez le SSO initié par Snowflake en définissant le paramètre de compte SSO_LOGIN_PAGE sur true. En tant qu’utilisateur avec le rôle ACCOUNTADMIN, exécutez les instructions suivantes.
use role accountadmin; alter account set SSO_LOGIN_PAGE = true;
Accédez à Snowflake comme indiqué dans Gestion/utilisation de l’authentification fédérée.
Exportation des métadonnées d’intégration de sécurité SAML2¶
Snowflake fournit des métadonnées SAML 2.0 pour l’intégration de sécurité SAML2 afin de faciliter la configuration du fournisseur de services Snowflake dans votre IdP.
Les métadonnées SAML 2.0 sont contenues dans la propriété SAML2_SNOWFLAKE_METADATA
et peuvent être obtenues en exécutant une commande DESCRIBE INTEGRATION sur l’intégration de sécurité SAML2. Par exemple :
desc security integration my_idp;
------------------------------------+---------------+-----------------------------------------------------------------------------+------------------+
property | property_type | property_value | property_default |
------------------------------------+---------------+-----------------------------------------------------------------------------+------------------+
SAML2_X509_CERT | String | MIICrTCCAZWgAwIBAgIJAOF6EPk93wj... | |
SAML2_PROVIDER | String | OKTA | |
SAML2_ENABLE_SP_INITIATED | Boolean | false | false |
SAML2_SP_INITIATED_LOGIN_PAGE_LABEL | String | my_idp | |
SAML2_SSO_URL | String | https://okta.com/sso | |
SAML2_ISSUER | String | https://okta.com | |
SAML2_SNOWFLAKE_X509_CERT | String | MIICrTCCAZWgAwIBAgIJAOF6EPk93wj... | |
SAML2_REQUESTED_NAMEID_FORMAT | String | urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress | |
SAML2_SNOWFLAKE_ACS_URL | String | https://example.snowflakecomputing.com/fed/login | |
SAML2_SNOWFLAKE_ISSUER_URL | String | https://example.snowflakecomputing.com | |
SAML2_SNOWFLAKE_METADATA | String | <md:EntityDescriptor entityID="https://example.snowflakecomputing.com"> ... | |
SAML2_DIGEST_METHODS_USED | String | http://www.w3.org/2001/04/xmlenc#sha256 | |
SAML2_SIGNATURE_METHODS_USED | String | http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 | |
------------------------------------+---------------+-----------------------------------------------------------------------------+------------------+
À titre d’exemple représentatif, les métadonnées SAML 2.0 XML formatées de la propriété SAML2_SNOWFLAKE_METADATA
sont présentées ci-dessous. Notez que les valeurs X509certificate
pour signing
et encryption
sont tronquées.
<md:EntityDescriptor xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" entityID="https://example.snowflakecomputing.com">
<md:SPSSODescriptor AuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<dsig:KeyInfo>
<dsig:X509Data>
<dsig:X509Certificate>MIICrTCCAZWgAwIBAgIJAOF6EPk93wj... </dsig:X509Certificate>
</dsig:X509Data>
</dsig:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<dsig:KeyInfo>
<dsig:X509Data>
<dsig:X509Certificate>MIICrTCCAZWgAwIBAgIJAOF6EPk93wj... </dsig:X509Certificate>
</dsig:X509Data>
</dsig:KeyInfo>
</md:KeyDescriptor>
<md:AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.snowflakecomputing.com/fed/login" />
</md:SPSSODescriptor>
</md:EntityDescriptor>
Pour référence, la table suivante mappe les balises de métadonnées XML aux propriétés d’intégration de sécurité SAML2 Snowflake.
Sortie XML |
Propriété d’intégration de sécurité SAML2 |
---|---|
entityID |
SAML2_SNOWFLAKE_ISSUER_URL |
AuthnRequestsSigned |
SAML2_SIGN_REQUEST |
Certificat de signature |
SAML2_SNOWFLAKE_X509_CERT |
Certificat de chiffrement |
SAML2_SNOWFLAKE_X509_CERT |
Service consommateur d’assertion URL |
SAML2_SNOWFLAKE_ACS_URL |
Forcer la ré-authentification dans Snowflake¶
Snowflake prend en charge la configuration de votre intégration de sécurité SAML2 pour exiger que l’utilisateur qui s’authentifie se ré-authentifie pour accéder à Snowflake pendant le flux d’authentification initial SSO ou lorsqu’une session Snowflake en cours expire.
Lorsque cette fonction est activée dans l’intégration de sécurité Snowflake SAML2, Snowflake règle le paramètre SAML de la spécification ForceAuthn
sur True
dans la requête SAML sortante de Snowflake vers l’IdP. Une fois que l’IdP reçoit la requête avec le paramètre ForceAuthn
réglé sur True
, l’IdP envoie une demande à Snowflake, qui invite les utilisateurs à saisir à nouveau leurs identifiants de connexion d’authentification (par exemple, nom d’utilisateur, mot de passe) pour accéder à Snowflake.
Cette fonction offre une sécurité accrue grâce à une deuxième authentification. En outre, l’invite de ré-authentification permet aux utilisateurs de saisir un ensemble d’identifiants de connexion différent de ceux utilisés pour lancer SSO afin d’accéder à Snowflake.
Important
Avant de mettre en œuvre cette fonctionnalité, vérifiez que votre IdP accepte le changement d’identités pendant un flux d’authentification SSO.
Si cette fonctionnalité est mise en œuvre dans Snowflake et que votre IdP ne prend pas en charge le changement d’identités pendant le flux d’authentification SSO initial, les utilisateurs peuvent ne pas être en mesure d’accéder à Snowflake en utilisant les différents ensembles d’identifiants de connexion fournis dans l’invite de ré-authentification.
Forcer la ré-authentification dans la procédure de Snowflake¶
Suivez ces étapes pour configurer une ré-authentification forcée pour accéder à Snowflake.
Etape 1 : créer une intégration de sécurité SAML2 ou migrer vers celle-ci¶
Si vous avez une configuration SAML existante dans Snowflake et que vous souhaitez utiliser cette fonctionnalité, vous pouvez migrer vers une intégration de sécurité SAML2 en exécutant cette instruction SQL. Pour plus d’informations sur cette fonction système, voir SYSTEM$MIGRATE_SAML_IDP_REGISTRATION.
select system$migrate_saml_idp_registration('<integration_name>', '<issuer>');
Sinon, créez une intégration de sécurité SAML2 en exécutant l’instruction SQL suivante. Pour plus d’informations, voir CREATE SECURITY INTEGRATION.
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 = true;
Etape 2 : mise à jour de l’intégration de la sécurité SAML2 pour forcer la ré-authentification¶
Pour mettre à jour une intégration de sécurité SAML2 existante afin de prendre en charge la ré-authentification forcée pour accéder à Snowflake, exécutez la commande ALTER SECURITY INTEGRATION. Vous pouvez vérifier les paramètres d’intégration de la sécurité en utilisant une instruction DESCRIBE INTEGRATION.
-- update the security integration
alter security integration my_idp set SAML2_FORCE_AUTHN = true;
-- verify the security integration
desc security integration my_idp;
Où :
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
.
Point de terminaison de déconnexion personnalisé¶
Snowflake permet de définir une URL de point de terminaison personnalisé vers laquelle les utilisateurs sont redirigés après s’être déconnectés de Snowflake. Le point de terminaison est défini par la propriété SAML2_POST_LOGOUT_REDIRECT_URL
dans l’intégration de sécurité SAML2.
Une fois activé pour les utilisateurs qui accèdent à Snowflake par SSO SAML, le fait de cliquer sur le bouton Log Out dans l”classic web interface a pour effet de mettre fin à la session Snowflake et de rediriger les utilisateurs vers le point de terminaison spécifié.
Important
Ce comportement ne s’applique pas à Snowsight.
La définition d’un point de terminaison de déconnexion permet aux administrateurs de contrôler où les utilisateurs sont redirigés après s’être déconnectés de Snowflake. Par exemple, un point de terminaison personnalisé pourrait déclencher un script pour mettre fin simultanément à la session IdP. L’avantage de cette mise en œuvre est que les sessions Snowflake et IdP sont toutes deux terminées, ce qui oblige les utilisateurs à se ré-authentifier par rapport à l’IdP pour accéder à Snowflake.
Suivez ces étapes pour configurer un point de terminaison de déconnexion personnalisé :
Migrez vers une intégration de sécurité SAML2 ou créez-en une dans Snowflake.
Si vous disposez déjà d’une intégration de sécurité SAML2, passez à l’étape suivante.
Mettez à jour l’intégration de sécurité pour configurer le point de terminaison de déconnexion personnalisé à l’aide de la commande ALTER SECURITY INTEGRATION .
-- Update the endpoint URL alter security integration my_idp set SAML2_POST_LOGOUT_REDIRECT_URL = 'https://logout.example.com';
Gestion de votre intégration de sécurité SAML2¶
Vous pouvez utiliser une commande ALTER SECURITY INTEGRATION pour gérer l’intégration de sécurité SAML2. Par exemple :
Téléchargez un certificat X.509 sous forme de chaîne dans une intégration de sécurité SAML2 existante.
alter security integration my_idp set SAML2_SNOWFLAKE_X509_CERT = 'AX2bv...';
Remplacez la clé privée et le certificat auto-signé existants et générez une nouvelle clé privée et un certificat auto-signé.
alter security integration my_idp refresh SAML2_SNOWFLAKE_PRIVATE_KEY;
Activez les requêtes signées.
alter security integration my_idp set SAML2_SIGN_REQUEST = true;
Spécifiez le format
NameID
.alter security integration my_idp set SAML2_REQUESTED_NAMEID_FORMAT = 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified';
Forcez la ré-authentification dans Snowflake ou annulez cette option.
-- update an existing security integration to enable forced re-authentication alter security integration my_idp set SAML2_FORCE_AUTHN = true; -- unset forced re-authentication alter security integration my_idp unset SAML2_FORCE_AUTHN;
Indiquez le point de terminaison de déconnexion personnalisé.
-- Update the endpoint URL alter security integration my_idp set SAML2_POST_LOGOUT_REDIRECT_URL = 'https://logout.example.com';
Pour plus d’informations, voir ALTER SECURITY INTEGRATION.