Authentification multifactorielle (MFA)

Snowflake prend en charge l’authentification multifactorielle (MFA) pour offrir une sécurité de connexion accrue aux utilisateurs se connectant à Snowflake. L’assistance MFA est fournie sous la forme d’une fonction Snowflake intégrée, alimentée par le service Duo Security, qui est entièrement géré par Snowflake. Les utilisateurs n’ont pas besoin de s’inscrire séparément à Duo ou d’effectuer des tâches autres que l’installation de l’application Duo Mobile qui est prise en charge sur plusieurs plateformes de smartphone (iOS, Android, Windows, etc.). Voir le Guide de l’utilisateur Duo pour plus d’informations sur les plateformes/dispositifs pris en charge et sur le fonctionnement de l’authentification multifactorielle Duo.

La MFA s’active par utilisateur. Toutefois, pour le moment, les utilisateurs ne sont pas automatiquement inscrits à la MFA. Pour utiliser la MFA, les utilisateurs doivent s’inscrire eux-mêmes.

Attention

Au minimum, Snowflake recommande fortement que tous les utilisateurs ayant le rôle ACCOUNTADMIN soient tenus d’utiliser la MFA.

Dans ce chapitre :

Flux de connexion MFA

Le diagramme suivant illustre le flux de connexion global pour un utilisateur inscrit dans MFA, quelle que soit l’interface utilisée pour se connecter :

MFA login flow

Inscription d’un utilisateur Snowflake à la MFA

Auparavant, les utilisateurs ne pouvaient s’inscrire à la MFA qu’en soumettant une demande à l’assistance Snowflake. Ce n’est plus nécessaire.

Tout utilisateur de Snowflake peut s’auto-inscrire à la MFA via l’interface Web. Pour plus d’informations, voir Gestion de vos préférences d’utilisateur.

Gestion de la MFA pour votre compte et vos utilisateurs

Au niveau du compte, la MFA n’exige aucune gestion. Elle est automatiquement activée pour votre compte, et est disponible pour tous vos utilisateurs pour qu’ils s’y auto-inscrivent. Cependant, il se peut que vous ayez besoin de désactiver la MFA, temporairement ou définitivement, pour un utilisateur. Par exemple, un utilisateur oublie ou perd son téléphone et ne peut pas se connecter avec la MFA, ou l’utilisateur change son numéro de téléphone.

Vous pouvez utiliser les propriétés suivantes pour que la commande ALTER USER exécute ces tâches :

  • MINS_TO_BYPASS_MFA

    Spécifie le nombre de minutes de la désactivation temporaire de la MFA avant que l’utilisateur puisse se connecter. Une fois le temps écoulé, la MFA est appliquée et l’utilisateur ne peut plus se connecter sans le jeton temporaire généré par l’application Duo Mobile.

  • DISABLE_MFA

    Désactive la MFA pour l’utilisateur, annulant ainsi son inscription. Pour utiliser la MFA à nouveau, l’utilisateur doit se réinscrire.

Connexion à Snowflake via la MFA

La MFA est conçue principalement pour se connecter à Snowflake via l’interface Web, mais est également entièrement prise en charge par SnowSQL et les pilotes Snowflake JDBC et ODBC.

Utilisation de la MFA avec l’interface Web

Pour vous connecter à l’interface Web de Snowflake avec la MFA :

  1. Dirigez votre navigateur sur URL de votre compte (ex. https://xy12345.snowflakecomputing.com, https://xy12345.eu-central-1.snowflakecomputing.com).

  2. Saisissez vos identifiants (nom d’utilisateur et mot de passe).

    MFA login
  3. Si la fonction Duo Push est activée, une notification Push est envoyée à votre application Duo Mobile. Lorsque vous recevez la notification, cliquez simplement sur Approve et vous serez connecté à Snowflake.

    MFA approval

    Comme le montre la capture d’écran ci-dessus, au lieu d’utiliser la notification Push, vous pouvez également choisir de :

    • Cliquer sur Enter Duo Passcode pour vous connecter en entrant manuellement un code d’accès fourni par l’application Duo Mobile.

    • Cliquer sur Request SMS Passcodes pour qu’un ensemble de mots de passe temporaires soit envoyé à votre appareil par SMS. Vous pouvez ensuite vous connecter en saisissant manuellement l’un des mots de passe.

Utilisation de MFA avec SnowSQL

La MFA peut être utilisée pour se connecter à Snowflake par SnowSQL. Par défaut, le mécanisme d’authentification Duo Push est utilisé lorsqu’un utilisateur est inscrit dans la MFA.

Pour utiliser un code d’accès généré par Duo à la place du mécanisme Push, les paramètres de connexion doivent inclure l’une des options de connexion suivantes :

--mfa-passcode <chaîne> OR --mfa-passcode-in-password

Pour plus de détails, voir SnowSQL (client CLI).

Utilisation de MFA avec JDBC

La MFA peut être utilisée pour se connecter à Snowflake via le pilote Snowflake JDBC. Par défaut, le mécanisme d’authentification Duo Push est utilisé lorsqu’un utilisateur est inscrit dans la MFA. Aucune modification de la chaîne de connexion JDBC n’est nécessaire.

Pour utiliser un code d’accès généré par Duo à la place du mécanisme Push, l’un des paramètres suivants doit être inclus dans la chaîne de connexion JDBC :

passcode=<chaîne_code_accès> OR passcodeInPassword=on

Où :

  • chaine_code_accès est un mot de passe généré par Duo pour l’utilisateur qui se connecte. Il peut s’agir d’un mot de passe généré par l’application Duo Mobile ou d’un mot de passe SMS.

  • Si passcodeInPassword=on, le mot de passe et le code d’accès sont concaténés, sous la forme de <chaîne_mdp><chaîne_code_accès>.

Pour plus de détails, voir Pilote JDBC.

Exemples de chaînes de connexion JDBC utilisant Duo

Chaîne de connexion JDBC pour l’utilisateur demo se connectant au compte xy12345 (dans la région US Ouest) en utilisant un code d’accès Duo :

jdbc:snowflake://xy12345.snowflakecomputing.com/?user=demo&passcode=123456

Chaîne de connexion JDBC pour l’utilisateur demo se connectant au compte xy12345 (dans la région US Ouest) en utilisant un code d’accès Duo intégré dans le mot de passe :

jdbc:snowflake://xy12345.snowflakecomputing.com/?user=demo&passcodeInPassword=on

Utilisation de MFA avec ODBC

La MFA peut être utilisée pour se connecter à Snowflake via le pilote Snowflake ODBC. Par défaut, le mécanisme d’authentification Duo Push est utilisé lorsqu’un utilisateur est inscrit dans la MFA. Aucune modification des paramètres ODBC n’est nécessaire.

Pour utiliser un code d’accès généré par Duo à la place du mécanisme Push, l’un des paramètres suivants doit être spécifié pour le pilote :

passcode=<chaîne_code_accès> OR passcodeInPassword=on

Où :

  • chaine_code_accès est un mot de passe généré par Duo pour l’utilisateur qui se connecte. Il peut s’agir d’un mot de passe généré par l’application Duo Mobile ou d’un mot de passe SMS.

  • Si passcodeInPassword=on, le mot de passe et le code d’accès sont concaténés, sous la forme de <chaîne_mdp><chaîne_code_accès>.

Pour plus de détails, voir Pilote ODBC.

Utilisation de la MFA avec Python

La MFA peut être utilisée pour se connecter à Snowflake via le connecteur Python de Snowflake. Par défaut, le mécanisme d’authentification Duo Push est utilisé lorsqu’un utilisateur est inscrit dans la MFA. Aucune modification des appels API Python n’est nécessaire.

Pour utiliser un code d’accès généré par Duo à la place du mécanisme Push, l’un des paramètres suivants doit être spécifié pour le pilote dans la méthode de connexion () :

passcode=<chaîne_code_accès> OR passcode_in_password=True

Où :

  • chaine_code_accès est un mot de passe généré par Duo pour l’utilisateur qui se connecte. Il peut s’agir d’un mot de passe généré par l’application Duo Mobile ou d’un mot de passe SMS.

  • Si passcode_in_password=True, le mot de passe et le code d’accès sont concaténés, sous la forme de <chaîne_mdp><chaîne_code_accès>.

Pour plus de détails, voir la description de la méthode connect() dans la section Fonctions de la documentation sur l’API du connecteur Python.