Configurer Snowflake OAuth pour les applications partenaires

Ce chapitre explique comment configurer l’accès OAuth à Snowflake pour les applications partenaires Snowflake prises en charge. Ce processus nécessite la création d’une intégration, un objet Snowflake de première classe qui définit l’interface entre Snowflake et une application ou un service tiers.

Important

Lors de la connexion à Snowflake à l’aide d’une application tierce, Snowflake vous recommande de vérifier que le flux d’intégration utilisé par l’application répond à vos exigences de sécurité internes. Vous pouvez contacter directement le partenaire pour obtenir des détails sur son flux de bout en bout utilisé pour cette fonctionnalité.

Note

Le changement de rôle en cours de session vers des rôles secondaires n’est pas pris en charge par Snowflake OAuth.

Si ce comportement est nécessaire avec votre flux de travail OAuth, utilisez plutôt OAuth externe.

Pour plus d’informations, voir Utilisation de rôles secondaires avec External OAuth.

Actuellement, Snowflake OAuth prend en charge les applications suivantes :

Client

Version client requise

Type de client

Tableau Desktop / Server / Online 1

2019.1 ou supérieur

Public

Looker 2

6.20 ou supérieur

Alation

Voir la documentation de l’Alation

ThoughtSpot

Voir la documentation ThoughtSpot

Collibra

Voir la documentation Collibra

1

Si Tableau Server se connecte à Snowflake en utilisant la connectivité privée au service Snowflake, vous devez utiliser une intégration de sécurité personnalisée plutôt que l’intégration conçue pour une application partenaire. Pour les instructions, reportez-vous à Configurer Snowflake OAuth pour les clients personnalisés. Tableau Desktop continue à utiliser l’intégration de l’application partenaire, qu’elle utilise ou non une URL privée.

2

Looker prend en charge OAuth uniquement lorsque les instances hébergées par Looker peuvent accéder à l’Internet public. Notez que cette limitation n’affecte pas les implémentations de Looker hébergées par le client (c’est-à-dire les implémentations on-premises). Les clients utilisant une connectivité privée au service Snowflake peuvent rencontrer des problèmes s’ils tentent d’utiliser OAuth et Looker avec Snowflake. Veuillez contacter Looker pour des questions ou plus de détails.

Dans ce chapitre :

Configuration d’une intégration OAuth Snowflake

Créez une intégration à l’aide de la commande CREATE SECURITY INTEGRATION. Une intégration est un objet Snowflake qui fournit une interface entre Snowflake et des services tiers, tels qu’un client prenant en charge OAuth de Snowflake.

Note

Seuls les administrateurs de compte (c’est-à-dire les utilisateurs dotés du rôle système ACCOUNTADMIN) ou un rôle disposant du privilège global CREATE INTEGRATION peuvent exécuter cette commande SQL.

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
  <name>
  TYPE = OAUTH
  ENABLED = { TRUE | FALSE }
  OAUTH_CLIENT = <partner_application>
  oauthClientParams
  [ COMMENT = '<string_literal>' ]
Copy

Où :

oauthClientParams

oauthClientParams ::=
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Copy

Blocage de rôles spécifiques pour les empêcher d’utiliser l’intégration

Le paramètre BLOCKED_ROLES_LIST facultatif vous permet de répertorier les rôles Snowflake qu’un utilisateur ne peut pas consentir explicitement d’utiliser avec l’intégration.

Par défaut, les rôles ACCOUNTADMIN, SECURITYADMIN, et ORGADMIN sont inclus dans cette liste et ne peuvent pas être supprimés. Si votre entreprise a besoin d’autoriser des utilisateurs à utiliser OAuth de Snowflake avec ces rôles et que votre équipe de sécurité le permet, contactez le support de Snowflake pour demander que ces rôles soient autorisés pour votre compte.

Contrôle de la fréquence de connexion

Lorsqu’un utilisateur s’est authentifié avec succès, l’application partenaire peut utiliser le jeton d’actualisation émis pour demander de nouveaux jetons d’accès de courte durée et ne pas inviter l’utilisateur à répéter le processus de connexion jusqu’à l’expiration du jeton d’actualisation. Le paramètre facultatif OAUTH_REFRESH_TOKEN_VALIDITY spécifie la durée pendant laquelle un jeton d’actualisation est valide (en secondes). Ce paramètre peut être utilisé pour entraîner l’expiration périodique du jeton d’actualisation, forçant l’utilisateur à répéter le processus de connexion.

Les valeurs minimale, maximale et par défaut prises en charge pour le paramètre OAUTH_REFRESH_TOKEN_VALIDITY sont les suivantes :

Application

Minimum

Maximum

Par défaut

Tableau Desktop

60 (1 minute)

36000 (10 heures)

36000 (10 heures)

Tableau Server ou Tableau Online

60 (1 minute)

7776000 (90 jours)

7776000 (90 jours)

Si votre entreprise a besoin de réduire la valeur minimale ou d’augmenter la valeur maximale, veuillez contacter le support Snowflake pour demander la modification de votre compte.

Utilisation de la redirection des clients avec Snowflake OAuth pour les applications partenaires

Snowflake prend en charge l’utilisation de la redirection des clients avec OAuth de Snowflake pour les applications partenaires, y compris l’utilisation de la redirection des clients et OAuth de Snowflake avec les clients Snowflake pris en charge.

Pour plus d’informations, voir Rediriger les connexions du client.

Gestion des politiques réseau

Snowflake prend en charge les politiques réseau pour OAuth de Snowflake. Pour plus d’informations, voir Politiques réseau.

Exemples

Tableau Desktop

L’exemple suivant crée une intégration de OAuth de Snowflake avec les paramètres par défaut :

CREATE SECURITY INTEGRATION td_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

Afficher les paramètres d’intégration à l’aide de DESCRIBE INTEGRATION :

DESC SECURITY INTEGRATION td_oauth_int1;
Copy

L’exemple suivant crée une intégration OAuth de Snowflake avec des jetons d’actualisation expirant après 10 heures (36 000 secondes). L’intégration empêche les utilisateurs de démarrer une session avec SYSADMIN comme rôle actif :

CREATE SECURITY INTEGRATION td_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 36000
  BLOCKED_ROLES_LIST = ('SYSADMIN')
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

Tableau Server ou Tableau Online

L’exemple suivant crée une intégration de OAuth de Snowflake avec les paramètres par défaut :

CREATE SECURITY INTEGRATION ts_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER;
Copy

Afficher les paramètres d’intégration à l’aide de DESCRIBE INTEGRATION :

DESC SECURITY INTEGRATION ts_oauth_int1;
Copy

L’exemple suivant crée une intégration OAuth de Snowflake avec des jetons d’actualisation expirant après un jour (86 400 secondes). L’intégration empêche les utilisateurs de démarrer une session avec SYSADMIN comme rôle actif :

CREATE SECURITY INTEGRATION ts_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  BLOCKED_ROLES_LIST = ('SYSADMIN');
Copy

Connexion à Snowflake à partir d’une application partenaire

Tableau

Suivez les instructions fournies par Tableau pour vous connecter à Snowflake à l’aide de Snowflake OAuth.

Important

Actuellement, les applications Tableau peuvent uniquement autoriser le rôle par défaut pour un utilisateur ; en revanche, si aucun rôle par défaut n’est défini, le rôle PUBLIC est utilisé en tant que rôle actif pour la session.

Looker

Suivez les étapes fournies par Looker pour vous connecter à Snowflake à l’aide de Snowflake OAuth.

Alation

Accédez à la communauté Alation et suivez les instructions fournies par Alation pour vous connecter à Snowflake en utilisant Snowflake OAuth.

ThoughtSpot

Accédez à la documentation ThoughtSpot et suivez les instructions pour créer une connexion à Snowflake, qui comprend une étape sur la façon de configurer Snowflake OAuth.

Collibra

Accédez à la documentation Collibra et suivez les instructions fournies par Collibra pour vous connecter à Snowflake en utilisant Snowflake OAuth.

Codes d’erreur

Voir les Codes d’erreur pour une liste de codes d’erreur associés à OAuth, ainsi que les erreurs qui sont renvoyées dans le blob JSON, pendant le flux d’autorisation, la demande ou l’échange de jetons, ou lors de la création d’une session Snowflake après avoir terminé le flux OAuth.