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.

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 :

  1. Utilisez une fonction système pour migrer les informations IdP existantes vers une intégration de sécurité.

  2. 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. A 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égralité 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é — Facultatif

Si vous participez à l’avant-première Organisations et souhaitez utiliser l’URL du compte Snowflake correspondant dans l’intégration de sécurité SAML2 , suivez les étapes suivantes :

  1. Contactez l”assistance de Snowflake avec une note qui inclut la demande de participation à l’avant-première et un nom convivial pour l’organisation. Attendez que l’assistance de Snowflake traite la requête.

  2. Après que l’assistance de Snowflake a fourni une URL de compte unique à utiliser qui est spécifique à l’objet organisation, mettez à jour votre intégration de sécurité SAML2 comme indiqué ci-dessous.

    -- Update the ACS URL
    
    alter security integration my_integration set SAML2_SNOWFLAKE_ACS_URL = 'https://<friendly_name>.snowflakecomputing.com/fed/login';
    

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 :

  1. Créez une intégration de sécurité SAML2.

  2. Exportez le certificat public de Snowflake au format PEM.

  3. Importez le certificat public dans votre IdP SAML.

  4. 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 = false;

Étape 2 : exporter le certificat public de Snowflake

Pour exporter le certificat public de Snowflake, procédez comme suit.

  1. 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;
    
  2. Enregistrez la valeur au format PEM. Veillez à inclure les délimiteurs BEGIN CERTIFICATE et END 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.

  1. Générez une demande de signature de certificat (CSR) à partir de Snowflake à l’aide de la fonction système SYSTEM$GENERATE_SAML_CSR.

  2. Fournissez le CSR au CA de votre choix afin que le certificat puisse être émis.

  3. 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 et END 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 :

  1. Créez ou mettez à jour l’intégration de sécurité.

  2. Mettez à jour votre intégration de sécurité SAML2.

  3. Configurez votre IdP pour accepter les demandes SAML signées.

  4. 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 = false;

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 :

  1. Créez ou migrez une intégration de sécurité SAML2 dans Snowflake.

  2. Mettez à jour votre intégration de sécurité pour prendre en charge NameId.

  3. Configurez votre IdP pour spécifier le format SAML NameID.

  4. 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 = false;

É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 = false;

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è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.

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;
    

Pour plus d’informations, voir ALTER SECURITY INTEGRATION.