Configurer Snowflake Open Catalog pour utiliser la SSO

Cette rubrique vous montre comment configurer Snowflake Open Catalog pour utiliser la SSO basée sur SAML.

Avant de configurer Snowflake Open Catalog pour utiliser la SSO, vous devez configurer votre IdP pour Open Catalog. Pour obtenir des instructions, reportez-vous aux rubriques suivantes :

Avant de commencer

Pour configurer Snowflake Open Catalog pour la SSO, vous avez besoin de votre identificateur de compte Open Catalog complet, qui comprend le nom de votre organisation Snowflake et le nom de votre compte Open Catalog ; par exemple : <orgname>.<my-snowflake-open-catalog-account-name>.

  • Pour trouver le nom de votre organisation Snowflake (<orgname>), voir Recherche de l'organisation et du nom de compte pour un compte <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_.

  • Pour trouver votre nom de compte Snowflake Open Catalog (<my-snowflake-open-catalog-account-name>), voir :doc:/user-guide/opencatalog/find-account-name.

Créer une connexion Snowflake CLI pour Open Catalog

Pour configurer Snowflake Open Catalog afin d’utiliser la SSO, vous avez besoin d’une connexion Snowflake CLI pour Open Catalog. Suivez les étapes suivantes pour créer cette connexion. Si vous n’avez pas encore installé Snowflake CLI, consultez Installation de Snowflake CLI.

Important

Pour créer cette connexion, vous devez être un utilisateur Open Catalog disposant de privilèges d’administrateur de service. Pour plus d’informations sur les privilèges d’administrateur de service, voir Rôle d’administrateur de service.

Ajouter une connexion CLI Snowflake pour Snowflake Open Catalog

Ajoutez une connexion pour le compte Snowflake Open Catalog où vous souhaitez activer la SSO.

  • Ajouter 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 Entrée pour ne pas spécifier de valeur pour le paramètre.

    Paramètres de configuration de la connexion

    Valeur

    Nom de cette connexion

    Spécifiez un nom pour la connexion ; par exemple, myopencatalogconnection.

    Nom d’utilisateur

    Indiquez le nom de votre organisation Snowflake, suivi de votre nom d’utilisateur Open Catalog, au format suivant :

    <orgname>-<my-snowflake-open-catalog-account-name>.

    Par exemple, ABCDEFG-MYACCOUNT1.

    Pour trouver ces noms, voir Avant de commencer_.

    Nom d’utilisateur

    Indiquez votre nom d’utilisateur pour Open Catalog ; par exemple, jsmith.

    Mot de passe [facultatif]

    Ce paramètre n’est pas facultatif 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 [facultatif]

    Ce paramètre n’est pas facultatif lorsque vous créez une connexion pour Open Catalog.

    Vous devez saisir POLARIS_ACCOUNT_ADMIN

Test de la connexion CLI Snowflake

  • Pour tester votre connexion CLI, suivez cet exemple, qui teste la connexion pour myopencatalogconnection :

    snow connection test -c myopencatalogconnection
    
    Copy

    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                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

Définissez votre connexion CLI Snowflake pour Snowflake Open Catalog comme connexion par défaut

Pour que la connexion que vous utilisez dispose toujours du bon rôle POLARIS_ACCOUNT_ADMIN qui lui est attribué, vous pouvez définir la connexion CLI Snowflake que vous avez créée pour Open Catalog comme connexion par défaut. Pour plus d’informations sur la connexion par défaut, voir Définir la connexion par défaut <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_.

  1. Suivez cet exemple, qui définit la connexion myopencatalogconnection par défaut :

    snow connection set-default myopencatalogconnection
    
    Copy
  2. Pour confirmer que vous utilisez le bon utilisateur et le bon rôle, exécutez la commande suivante :

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    La réponse doit renvoyer votre nom d’utilisateur Open Catalog et le CURRENT ROLE devrait être POLARIS_ACCOUNT_ADMIN.

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

Créer une intégration de sécurité

Pour créer une intégration de sécurité, exécutez la commande CREATE SECURITY INTEGRATION à l’aide d’une commande de connexion CLI Snowflake. Vous pouvez créer une intégration de sécurité Auth0 ou une intégration de sécurité Okta.

Note

Si la connexion CLI Snowflake par défaut que vous avez définie n’a pas le rôlePOLARIS_ACCOUNT_ADMIN attribué, vous devez inclure l’instruction suivante avec 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 la CLI Snowflake :

    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';
    Copy

    Où :

    • <Name> spécifie l’identificateur pour l’intégration de sécurité ; doit être unique pour votre compte.

    • <Auth0 Domain> est copié dans la console Auth0. Pour trouver cette valeur, dans Auth0, accédez à Applications > Applications > Application Snowflake Open Catalog > Paramètres > Informations de base : champ Domaine.

    • <SAML Protocol URL> est copié dans la console Auth0. Pour trouver cette valeur, dans Auth0, accédez à Applications > Applications > Application Snowflake Open Catalog > Paramètres > Paramètres avancés > Onglet Points de terminaison : champ URL de protocole SAML.

    • <Certificate from Auth0> est copié dans la console Auth0. Pour trouver cette valeur, dans Auth0, accédez à : Applications > Applications > Application Snowflake Open Catalog > Paramètres > Paramètres avancés > Onglet Certificat : champ Certificats de signature. Copiez la valeur entre <BEGIN CERTIFICATE> et <END CERTIFICATE>.

    • <orgname> 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 la connexionCLI Snowflake :

    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';
    Copy

    Où :

    • <Name> spécifie l’identificateur pour l’intégration de sécurité ; doit être unique pour votre compte.

    • <ENTITY ID> est la valeur ID de l’entité que vous avez copiée lorsque vous avez créé une application dans Okta.

    • <IDP SSO URL> est la valeur IDP SSO URL que vous avez copiée lorsque vous avez créé une application dans Okta.

    • <Authentication Certificate> est la valeur Certificat d’authentification IDP que vous avez copiée lorsque vous avez créé une application dans Okta.

    • <orgname> 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érifier l’intégration de 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 CLI Snowflake par défaut que vous avez définie n’a pas le rôlePOLARIS_ACCOUNT_ADMIN attribué, vous devez inclure l’instruction suivante avec votre commande : USE ROLE POLARIS_ACCOUNT_ADMIN.

  1. 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>;"
    
    Copy

    Si la réponse contient SAML2_ENABLE_SP_INITIATED=true, l’intégration de sécurité SAML2 est activée.

  2. En option : 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;
    Copy

Créer un utilisateur dans le compte Open Catalog

Pour que la SSO fonctionne pour un utilisateur, vous devez créer un utilisateur Open Catalog qui correspond à l’utilisateur que vous avez créé dans votre IdP.

Important

Pour créer un utilisateur, vous devez utiliser la CLI Snowflake.

Si vous créez un utilisateur à l’aide d e l’UI Open Catalog, vous devez spécifier un mot de passe, ce qui permettra à l’utilisateur de se connecter via la SSO ou en utilisant les identifiants de connexion Open Catalog.

  • Pour créer un utilisateur, exécutez la commande suivante :

    snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
    
    Copy

    Où :

    • <login-name> 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.

    • <email> is the user’s email address. If you’re using Auth0, this value will match <login-name>.

    Par exemple :

    snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
    
    Copy
  • Pour confirmer que vous avez correctement configuré les utilisateurs, exécutez la commande suivante :

    snow sql -q "show users;"
    
    Copy

    Dans la réponse, la valeur de la colonne LOGIN_NAME doit correspondre à E-mail dans Auth0 ou à Nom d’utilisateur dans Okta.