Utilisation de plusieurs fournisseurs d’identité pour l’authentification fédérée¶
Vous pouvez configurer Snowflake de sorte à autoriser les utilisateurs à s’authentifier auprès de plusieurs fournisseurs d’identité (IdPs).
La mise en œuvre d’un environnement fédéré qui utilise plusieurs IdPs se compose des étapes suivantes :
Activation du flux de connexion avec identificateur d’abord (dans cette rubrique).
Création de plusieurs intégrations de sécurité SAML, une pour chaque IdP.
Association des utilisateurs aux IdPs (dans cette rubrique).
Note
Gardez les points suivants à l’esprit lorsque vous mettez en œuvre un environnement utilisant plusieurs IdPs :
Chaque IdP doit avoir une intégration de sécurité SAML correspondante. Si vous avez un environnement d’IdP unique existant qui utilise le paramètre SAML_IDENTITY_PROVIDER obsolète, vous devez utiliser la fonction SYSTEM$MIGRATE_SAML_IDP_REGISTRATION pour le migrer vers une intégration de sécurité SAML.
Actuellement, seul un sous-ensemble de pilotes Snowflake prend en charge l’utilisation de plusieurs fournisseurs d’identité. Ces pilotes comprennent JDBC, ODBC et Python.
Activation de la connexion avec identificateur d’abord¶
Lorsque l’environnement fédéré d’un compte utilise plusieurs IdPs, Snowflake doit pouvoir déterminer quels IdPs sont associés à un utilisateur avant de lui présenter les options d’authentification. Dans ce flux, Snowflake demande à l’utilisateur uniquement son adresse e-mail ou son nom d’utilisateur, puis affiche les méthodes d’authentification après avoir identifié l’utilisateur. Seuls les IdPs associés à l’utilisateur apparaissent comme options d’authentification.
Le flux de connexion avec identificateur d’abord doit être activé si vous utilisez plusieurs IdPs. Pour activer la connexion avec identificateur d’abord, définissez le paramètre ENABLE_IDENTIFIER_FIRST_LOGIN sur TRUE
:
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Projects » Worksheets.
Exécutez les instructions SQL :
USE ROLE ACCOUNTADMIN; ALTER ACCOUNT SET ENABLE_IDENTIFIER_FIRST_LOGIN = true;
Pour plus d’informations sur le flux de connexion avec identificateur d’abord, voir Connexion avec identificateur d’abord.
Association des utilisateurs aux IdPs¶
Dans un environnement avec plusieurs IdPs, vous pouvez sélectionner la manière d’associer un utilisateur à un IdP. Vous pouvez utiliser l’intégration de sécurité associée à un IdP, une politique d’authentification ou combiner les deux méthodes.
- Intégration de sécurité:
Utilisez les propriétés
ALLOWED_USER_DOMAINS
etALLOWED_EMAIL_PATTERNS
de l’intégration de sécurité SAML2 associée à chaque IdP. Dans cette configuration, un utilisateur ne voit un IdP comme option d’authentification que si sonEMAIL
correspond à un domaine d’adresse e-mail ou à un modèle dans l’intégration de sécurité.- Politique d’authentification:
Utilisez la propriété
SECURITY_INTEGRATIONS
d’une politique d’authentification pour spécifier les intégrations de sécurité disponibles pour l’utilisateur. Dans cette configuration, la politique d’authentification est attribuée à un compte entier ou à un utilisateur individuel. Un utilisateur ne peut s’authentifier qu’auprès d’IdPs associés à des intégrations de sécurité spécifiées dans la politique d’authentification.Si vous souhaitez qu’un utilisateur ne voie que les fournisseurs d’identité qu’il est autorisé à utiliser, créez plusieurs politiques d’authentification, puis attribuez la politique appropriée à un utilisateur.
Pour un exemple d’utilisation d’une politique d’authentification pour mettre en œuvre plusieurs IdPs, voir Autoriser l’authentification de plusieurs fournisseurs d’identité sur un compte.
- Combination:
Vous pouvez combiner les méthodes d’intégration de sécurité et de politique d’authentification pour affiner davantage la manière dont les utilisateurs s’authentifient dans un environnement comportant plusieurs IdPs.
Si vous utilisez les deux méthodes, Snowflake commence par évaluer quelles intégrations de sécurité sont associées à la politique d’authentification qui régit la connexion de l’utilisateur. Une fois que Snowflake a identifié les intégrations de sécurité, l”
EMAIL
de l’utilisateur est associé à l’une des intégrations en fonction des propriétésALLOWED_USER_DOMAINS
etALLOWED_EMAIL_PATTERNS
. Snowflake n’affiche que l’option IdP pour l’intégration de sécurité qui correspond à l”EMAIL
de l’utilisateur.
Utilisation de plusieurs intégrations de sécurité SAML2 à Microsoft Entra ID à l’aide du même ID d’émetteur¶
Cette section vous guide dans la configuration de Snowflake et de Microsoft Entra ID pour permettre aux utilisateurs de s’authentifier via SSO à l’aide d’une URL d’émetteur publique ou privée. Vous pouvez utiliser deux intégrations de sécuritéSAML2 différentes avec Microsoft Entra ID pour mettre en œuvre cette expérience. Vous pouvez configurer Microsoft Entra ID pour faire la distinction entre des URLs d’émetteur publiques et privées en ajoutant un ID d’application différent à chaque URL d’émetteur.
Avant de continuer, vous devez activer le flux de connexion avec identificateur d’abord.
Suivez les sections ci-dessous pour découvrir comment utiliser plusieurs intégrations de sécurité SAML2 à Microsoft Entra ID à l’aide du même ID d’émetteur :
Rassemblez l’URL de connexion, l’identificateur de Microsoft Entra et l’ID d’application..
Création d’intégrations de sécurité SAML2 publiques et privées.
Configuration de Microsoft Entra ID pour ajouter des IDs d’application aux URLs d’identificateur de Microsoft Entra¶
Connectez-vous à Microsoft Azure.
Sous Azure services, sélectionnez Microsoft Entra ID.
Dans la navigation de gauche, sélectionnez Manage » Enterprise applications.
Sélectionnez l’application.
Dans la navigation de gauche, sélectionnez Manage » Single sign-on.
Dans Attributes & Claims, sélectionnez Edit.
Sous Additional claims, développez Advanced settings.
À côté de Advanced SAML claims options, sélectionnez Edit.
Un panneau sur la droite apparaît.
Sélectionnez Append application ID to issuer.
Rassemblez l’URL de connexion, l’identificateur de Microsoft Entra et l’ID d’application.¶
Assurez-vous d’avoir configuré l’ID de Microsoft Entra.
Dans la navigation de gauche, sélectionnez Manage » Single sign-on.
Sous Set up <your application name>, enregistrez les valeurs suivantes pour une utilisation ultérieure :
Login URL
Microsoft Entra Identifier
Dans la navigation de gauche, sélectionnez Overview.
Sous Properties, enregistrez l”Application ID pour une utilisation ultérieure.
Répétez l’opération pour des applications supplémentaires.
Création d’intégrations de sécurité SAML2 publiques et privées¶
Assurez-vous d’avoir configuré l’ID de Microsoft Entra.
Veillez à rassembler l’URL de connexion, l’identificateur de Microsoft Entra et l’ID d’application.
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Projects » Worksheets.
Passez à un rôle disposant du privilège CREATE INTEGRATION.
Exécutez l’instruction SQL suivante pour créer une intégration de sécurité SAML2 :
CREATE OR REPLACE SECURITY INTEGRATION entra_id_public TYPE = SAML2 ENABLED = TRUE SAML2_ISSUER = '<microsoft_entra_identifier>/<application_id>' SAML2_SSO_URL = '<login_url>' SAML2_PROVIDER = 'CUSTOM' SAML2_X509_CERT = 'MIIC...TAs/' SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'Entra ID SSO Public' SAML2_ENABLE_SP_INITIATED = TRUE SAML2_SNOWFLAKE_ACS_URL = 'https://<organization_name>-<account_name>.snowflakecomputing.com/fed/login' SAML2_SNOWFLAKE_ISSUER_URL = 'https://<organization_name>-<account_name>.snowflakecomputing.com';
Où les espaces réservés suivants sont remplacés par les valeurs que vous avez recueillies plus tôt :
Caractère de remplacement
Exemple de valeur
<url_de_connexion>
https://login.microsoftonline.com/91ccae45-d439-xxxx-xxxx-e22c06bfe4f9/saml2
<identificateur_microsoft_entra>
https://sts.windows.net/91ccae45-d439-xxxx-xxxx-e22c06bfe4f9
<id_application>
456xyz00-4567-4567-4567-4567xyz5678
<nom_de_l'organisation>
EXAMPLE-USER12_AA12
<nom_compte>
MSMITH
Créez une autre intégration de sécurité SAML2 en ajoutant l’ID d’application privée à l’identificateur de Microsoft Entra dans le paramètre SAML2_ISSUER.