Configuration de Snowflake pour l’utilisation de l’authentification fédérée

Ce chapitre décrit les étapes que vous devez effectuer dans Snowflake après avoir configuré votre IdP. Vous devez exécuter chaque étape, sauf indication contraire, pour activer l’authentification fédérée.

Dans ce chapitre :

Étape 1 : créer des utilisateurs dans Snowflake

  1. Connectez-vous à Snowflake en tant qu’utilisateur avec le rôle ACCOUNTADMIN ou SECURITYADMIN.

  2. Créez des utilisateurs, s’ils n’existent pas déjà, qui correspondent aux utilisateurs que vous avez créés dans votre IdP.

Important

Si vous utilisez une authentification fédérée, le login_name Snowflake doit correspondre à la valeur de l’attribut NameID de l’objet SAML qui se situe dans la réponse SAML. Cette valeur peut correspondre à l’adresse e-mail de l’utilisateur, au nom d’utilisateur ou à une valeur totalement différente. Si vous avez déjà des utilisateurs dans Snowflake, vous pouvez utiliser la commande ALTER USER pour mettre à jour leur valeur d’attribut.

De plus, vous devriez envisager de créer (ou de modifier) des utilisateurs pour qu’ils n’aient pas de mot de passe dans Snowflake. Cette opération désactive effectivement l’authentification Snowflake pour ces utilisateurs et exige qu’ils se connectent en utilisant l’authentification fédérée. Cela n’est pas obligatoire, mais vivement recommandé. Pour plus de détails, voir Gestion des utilisateurs avec l’authentification fédérée activée.

Étape 2 : préciser les informations IdP pour Snowflake

Important

Ce qui suit est spécifique à la configuration de SSO SAML uniquement.

Si vous souhaitez inclure des capacités avancées de SSO SAML (par exemple, des assertions chiffrées, des requêtes signées, SAML NameID), voir Fonctions SSO SAML avancées.

Pour activer un IdP en vue de l’authentification fédérée, Snowflake a besoin des informations suivantes sur l’IdP :

  • Certificat d’authentification.

  • Point de terminaison de l’URL pour les requêtes SAML.

  • Émetteur/EntityID pour identifier le IdP.

De plus, vous devez spécifier le type de IdP utilisé pour l’authentification (OKTA, ADFS, ou CUSTOM). Vous pouvez également spécifier l’étiquette du bouton IdP affichée sur la page de connexion de Snowflake.

Cette information est spécifiée par le paramètre de compte SAML_IDENTITY_PROVIDER. Ce paramètre accepte un objet JSON, entre guillemets simples, avec les champs suivants :

{
  "certificate": "",
  "issuer": "",
  "ssoUrl": "",
  "type"  : "",
  "label" : ""
}

Où :

certificate

Spécifie le certificat qui vérifie la communication entre le IdP et Snowflake. Ce certificat (signé à l’aide de l’algorithme RSA 256) est généré par l’IdP. Inclure le corps du certificat seulement (omettre l’en-tête/pied de page) sur une seule ligne.

issuer

Indique l’émetteur/l’ID d’entitéEntityID du IdP. Par exemple :

Okta SSO

Pour récupérer l’émetteur/l’ID d’entitéEntityID de votre compte Okta :

  1. Accédez à Okta Admin Console.

  2. Sélectionnez l’application Snowflake créée précédemment.

  3. Cliquez sur l’onglet Sign On.

  4. Cliquez sur le lien Identity Provider metadata et téléchargez le document XML.

  5. Ouvrez le document XML téléchargé, recherchez l’attribut XML entityID dans l’élément racine XML EntityDescriptor.

  6. Copiez la valeur entityID et insérez-la entre des guillemets doubles pour "issuer": "".

ADFS SSO

Pour déterminer l’émetteur/le ID de l’entité de votre instance ADFS :

  1. Accédez à ADFS 2.0 Management Console.

  2. Accédez à Action.

  3. Sélectionnez Edit Federation Service Properties.

  4. Copiez la valeur dans le champ Federation Service identifier.

  5. Insérez la valeur entre les guillemets doubles pour "issuer": "".

ssoUrl

Spécifie le point de terminaison de l’URL où Snowflake envoie les requêtes SAML. Ce paramètre est spécifique à l’IdP et est déterminé par l’IdP durant la configuration. Par exemple :

SSO Okta

https://votre_nom_compte_okta.okta.com/app/id_app_snowflake_okta/sso/saml.

ADFS SSO

URL de connexion pour ADFS, qui est généralement l’IP ou le FQDN de votre serveur ADFS avec /adfs/ls ajouté à la fin.

type

Littéral de chaîne qui spécifie l’IdP utilisé pour l’authentification fédérée. Les valeurs possibles sont les suivantes :

  • "OKTA"

  • "ADFS"

  • "Custom" (pour tous les autres IdPs)

label

Spécifie le texte du bouton de l’IdP sur la page de connexion de Snowflake. L’étiquette par défaut est Single Sign On. Si vous modifiez l’étiquette par défaut, celle-ci ne peut contenir que des caractères alphanumériques (en d’autres termes, les caractères spéciaux et les espaces ne sont pas pris en charge actuellement).

Attention, si le champ "type" est "Okta", il n’est pas nécessaire de spécifier une valeur pour le champ label, car Snowflake affiche automatiquement le logo Okta dans le bouton.

Pour définir le paramètre, en tant qu’utilisateur avec le rôle ACCOUNTADMIN, exécutez une commande ALTER ACCOUNT :

  • L’exemple suivant définit Okta comme IdP pour votre compte (avec abccorp comme nom de compte Okta) :

    USE ROLE ACCOUNTADMIN;
    
    ALTER ACCOUNT SET SAML_IDENTITY_PROVIDER = '{
      "certificate": "XXXXXXXXXXXXXXXXXXX",
      "ssoUrl": "https://abccorp.okta.com/app/<okta_snowflake_app_id>/sso/saml",
      "type"  : "OKTA"
      }';
    
  • L’exemple suivant définit ADFS comme IdP pour votre compte (avec abccorp.testmachime.com comme IP/FQDN de votre serveur ADFS) :

    USE ROLE ACCOUNTADMIN;
    
    ALTER ACCOUNT SET SAML_IDENTITY_PROVIDER = '{
      "certificate": "XXXXXXXXXXXXXXXXXXX",
      "ssoUrl": "https://abccorp.testmachine.com/adfs/ls",
      "type"  : "ADFS",
      "label" : "ADFSSingleSignOn"
      }';
    

Étape 3 : tester SSO initié par Snowflake — Facultatif

Snowflake fournit un aperçu de la page de connexion dans l’interface Web qui peut être utilisé pour tester la connexion initiée par Snowflake avant de la déployer sur tous vos utilisateurs sur la page de connexion principale. Une fois que vous avez défini le paramètre de compte SAML_IDENTITY_PROVIDER pour activer le SSO, vous pouvez accéder à l’URL suivante pour voir la page d’aperçu :

  • Si votre compte est basé dans la région US Ouest : https://<nom_compte>.snowflakecomputing.com/console/login?fedpreview=true

  • Si votre compte est situé dans une autre région : https://<nom_compte>.<id_région>.snowflakecomputing.com/console/login?fedpreview=true

Le bouton permettant de se connecter via l’IdP de votre compte (Okta, ADFS, ou personnalisé) apparaît sur la page d’aperçu.

Note

Cette étape est facultative, mais fortement recommandée pour s’assurer que la fonctionnalité fonctionne comme prévu avant de la déployer auprès de vos utilisateurs.

Étape 4 : activer la fonction SSO initiée par Snowflake

Snowflake fournit un paramètre de compte, SSO_LOGIN_PAGE, pour activer la connexion initiée par Snowflake sur la page de connexion principale. Vous devez régler ce paramètre sur TRUE (la valeur par défaut est FALSE) pour compléter la configuration de l’authentification fédérée de votre compte. Après avoir défini ce paramètre, lorsque les utilisateurs accèdent à la page de connexion principale, le bouton permettant de se connecter via IdP pour votre compte (Okta, ADFS, ou personnalisé) s’affiche.

Pour définir le paramètre, en tant qu’utilisateur avec le rôle ACCOUNTADMIN, exécutez la commande ALTER ACCOUNT suivante :

USE ROLE ACCOUNTADMIN;

ALTER ACCOUNT SET SSO_LOGIN_PAGE = TRUE;