Configurez Snowflake Open Catalog pour utiliser le SSO¶
Cette rubrique vous montre comment configurer Snowflake Open Catalog pour utiliser le SSO basé sur SAML.
Avant de configurer Snowflake Open Catalog pour utiliser le SSO, vous devez configurer votre IdP pour Open Catalog. Pour obtenir des instructions, reportez-vous aux rubriques suivantes :
Avant de commencer¶
Pour paramétrer Snowflake Open Catalog pour le SSO, vous avez besoin de votre identificateur de compte complet Open Catalog, qui comprend le nom de votre organisation Snowflake et le nom de votre compte Open Catalog ; par exemple : <nomorga>.<my-snowflake-open-catalog-account-name>
.
Pour trouver le nom de votre organisation Snowflake (
<nom organisation>
), voirTrouver le nom de l'organisation et du compte pour un compte <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Pour connaître le nom de votre compte Snowflake Open Catalog (
<my-snowflake-open-catalog-account-name>
), consultez :doc:/opencatalog/find-account-name
.
Créez une connexion Snowflake CLI pour Open Catalog¶
Pour configurer Snowflake Open Catalog afin d’utiliser le SSO, vous devez disposer d’une connexion Snowflake CLI pour Open Catalog. Suivez les étapes suivantes pour créer cette connexion. Si le programme d’installation de Snowflake CLI n’est pas encore installé, voir Installation de Snowflake CLI.
Important
Pour créer cette connexion, vous devez être un utilisateur d’Open Catalog disposant des privilèges d’administrateur de service. Pour plus d’informations sur les privilèges de l’administrateur de service, voir Service admin role.
Ajoutez une connexion Snowflake CLI pour Snowflake Open Catalog¶
Ajoutez une connexion pour le compte Snowflake Open Catalog sur lequel vous souhaitez activer le SSO.
Ajoutez une connexion <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_ avec les valeurs suivantes. Pour tous les autres paramètres, appuyez sur Entrer pour ne pas spécifier de valeur pour le paramètre.Paramètres de configuration de la connexion
Valeur
Nom de cette connexion
Indiquez un nom pour la connexion ; par exemple,
myopencatalogconnection
.Nom du compte
Indiquez le nom de votre organisation Snowflake, suivi du nom de votre compte Open Catalog, dans ce format :
<orgnamemy-snowflake-open-catalog-account-name>-<>
.Par exemple,
ABCDEFG-MYACCOUNT1
.Pour trouver ces noms, voir
Avant de commencer
_.Nom d’utilisateur
Spécifiez votre nom d’utilisateur pour Open Catalog ; par exemple,
jsmith
.Mot de passe [optionnel]
Ce paramètre est non optionnel lorsque vous créez une connexion pour Open Catalog.
Saisissez votre mot de passe pour Open Catalog ; par exemple,
MyPassword123456789
.Rôle pour la connexion [optionnel]
Ce paramètre est non optionnel lorsque vous créez une connexion pour Open Catalog.
Vous devez saisir
POLARIS_ACCOUNT_ADMIN
Testez la connexion Snowflake CLI¶
Pour tester votre connexion à CLI, suivez cet exemple, qui teste la connexion à
myopencatalogconnection
:snow connection test -c myopencatalogconnection
La réponse devrait ressembler à ceci :
+------------------------------------------------------------------------------+ | key | value | |----------------------------+-------------------------------------------------| | Connection name | myopencatalogconnection | | Status | OK | | Host | ABCDEFG-MYACCOUNT1.snowflakecomputing.com | | Account | ABCDEFG-MYACCOUNT1 | | User | jsmith | | Role | POLARIS_ACCOUNT_ADMIN | | Database | not set | | Warehouse | not set | +------------------------------------------------------------------------------+
Paramétrez votre connexion Snowflake CLI pour Snowflake Open Catalog comme connexion par défaut¶
Pour vous assurer que la connexion que vous utilisez dispose toujours du rôle POLARIS_ACCOUNT_ADMIN requis, vous pouvez définir la connexion Snowflake CLI que vous avez créée pour Open Catalog comme la connexion par défaut. Pour plus d’informations sur la connexion par défaut, voir Paramétrer la connexion par défaut <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Suivez cet exemple, qui paramètre la connexion
myopencatalogconnection
par défaut :snow connection set-default myopencatalogconnection
Pour confirmer que vous utilisez l’utilisateur et le rôle corrects, exécutez la procédure suivante :
snow sql -q "Select current_user(); select current_role();"
La réponse devrait renvoyer votre nom d’utilisateur Open Catalog et le ROLE CURRENT devrait être POLARIS_ACCOUNT_ADMIN.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Créez une intégration de sécurité¶
Pour créer une intégration de sécurité, exécutez la commande CREATE SECURITY INTEGRATION en utilisant une connexion CLI de Snowflake. Vous pouvez créer une intégration de sécurité Auth0 ou une intégration de sécurité Okta.
Note
Si la connexion Snowflake CLI que vous avez définie par défaut n’est pas dotée du rôle POLARIS_ACCOUNT_ADMIN, vous devez inclure l’instruction suivante dans votre commande : USE ROLE POLARIS_ACCOUNT_ADMIN
.
Intégration de sécurité Auth0¶
Pour créer une intégration de sécurité SAML pour Auth0, exécutez la commande suivante dans Snowflake CLI:
snow sql -q “create security integration <Name> type = saml2 enabled = true saml2_issuer = 'urn:<Auth0 Domain>' saml2_sso_url = '<SAML Protocol URL>' saml2_provider = 'Custom' saml2_x509_cert='<Certificate from Auth0>' saml2_sp_initiated_login_page_label = 'Auth0' saml2_enable_sp_initiated = true saml2_snowflake_acs_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login' saml2_snowflake_issuer_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com' saml2_requested_nameid_format = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';”
Où :
<Nom>
spécifie l’identificateur de l’intégration de sécurité ; il doit être unique pour votre compte.<Domaine Auth0>
est copié dans la console Auth0. Pour trouver cette valeur, dans Auth0, naviguez vers Applications > Applications > Application Snowflake Open Catalog > Paramètres > Informations de base : champ Domaine.<L'URL du protocoleSAML >
est copiée dans la console Auth0. Pour trouver cette valeur, dans Auth0, naviguez vers Applications > Applications > Application Snowflake Open Catalog > Paramètres > Paramètres avancés > Onglet Points de terminaison : champ URL protocole SAML.<Le certificat de Auth0>
est copié dans la console Auth0. Pour trouver cette valeur, dans Auth0, naviguez vers : Applications > Applications > Application Snowflake Open Catalog > Paramètres > Paramètres avancés > Onglet Certificat : champ Certificats d’authentification. Copiez la valeur entre <BEGIN CERTIFICATE> et <END CERTIFICATE>.<nomorga>
est le nom de votre organisation Snowflake. Pour trouver ce nom, voir Avant de commencer.<my-snowflake-open-catalog-account-name>
est le nom de votre compte Snowflake Open Catalog. Pour trouver ce nom, voir Avant de commencer.
Intégration de sécurité Okta¶
Pour créer une intégration de sécurité SAML pour Okta, exécutez la commande suivante dans Snowflake CLI:
snow sql -q “CREATE SECURITY INTEGRATION <Name> TYPE = SAML2 ENABLED = TRUE SAML2_ISSUER = '<ENTITY ID>' SAML2_SSO_URL = '<IDP SSO URL>' SAML2_PROVIDER = 'OKTA' SAML2_X509_CERT='<Authentication Certificate>' SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'OKTA SSO' SAML2_ENABLE_SP_INITIATED = TRUE SAML2_SNOWFLAKE_ACS_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login' SAML2_SNOWFLAKE_ISSUER_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com';”
Où :
<Nom>
spécifie l’identificateur de l’intégration de sécurité ; il doit être unique pour votre compte.<ENTITY ID>
est la valeur de l’entité ID que vous avez copiée lorsque vous avez créé une application dans Okta.<URLSSOIDP>
est la valeur d’URL SSO IDP que vous avez copiée lorsque vous avez créé une application dans Okta.<Certificat d'authentification>
est la valeur du certificat d’authentification IDP que vous avez copiée lors de la création d’une application dans Okta.<nomorga>
est le nom de votre organisation Snowflake. Pour trouver ce nom, voir Avant de commencer.<my-snowflake-open-catalog-account-name>
est le nom de votre compte Snowflake Open Catalog. Pour trouver ce nom, voir Avant de commencer.
Vérifiez l’intégration de la sécurité¶
Vous ne pouvez utiliser qu’une seule intégration de sécurité à la fois, et l’intégration que vous souhaitez utiliser doit être activée.
Note
Si la connexion Snowflake CLI que vous avez définie par défaut n’est pas dotée du rôle POLARIS_ACCOUNT_ADMIN, vous devez inclure l’instruction suivante dans votre commande : USE ROLE POLARIS_ACCOUNT_ADMIN
.
Pour vérifier que l’intégration de sécurité que vous souhaitez utiliser est activée, exécutez la commande suivante :
snow sql -q "desc security integration <saml2-security-integration-name>;"
Si la réponse contient SAML2_ENABLE_SP_INITIATED=true, l’intégration de sécurité SAML2 est activée.
Facultatif : si la réponse contient SAML2_ENABLE_SP_INITIATED=false, pour l’activer, exécutez la commande suivante :
snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;”
Créer un utilisateur dans le compte Open Catalog¶
Pour que le SSO fonctionne pour un utilisateur, vous devez créer un utilisateur Open Catalog correspondant à l’utilisateur que vous avez créé dans votre IdP.
Important
Pour créer un utilisateur, vous devez utiliser Snowflake CLI.
Si vous créez un utilisateur à l’aide de l’UI Snowflake, vous devez spécifier un mot de passe, qui permettra à l’utilisateur de se connecter via SSO ou en utilisant les identifiants du catalogue ouvert.
Pour créer un utilisateur, exécutez la commande suivante :
snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
Où :
<le nom de connexion>
doit correspondre à l’un des éléments suivants :L’e-mail **** que vous avez spécifié pour l’utilisateur dans Auth0.
Le nom d’utilisateur **** que vous avez spécifié pour l’utilisateur dans Okta.
<E-mail>
est l’adresse électronique de l’utilisateur. Si vous utilisez Auth0, cette valeur correspondra à <nom-utilisateur>.
Par exemple :
snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
Pour confirmer que l’ensemble des utilisateurs a été correctement configuré, exécutez la commande suivante :
snow sql -q "show users;"
Dans la réponse, la valeur de la colonne LOGIN_NAME doit correspondre à E-mail dans Auth0 ou Nom d’utilisateur dans Okta.