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é.

Actuellement, Snowflake OAuth prend en charge les applications suivantes :

Client

Version client requise

Type de client

Tableau Desktop / Server / Online

2019.1 ou supérieur

Public

Looker

6.20 ou supérieur

Important

Actuellement, Tableau prend en charge OAuth uniquement lorsque la technologie de Tableau peut accéder à l’Internet public.

De même, 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).

Par conséquent, les clients utilisant AWS PrivateLink ou Azure Private Link peuvent rencontrer des problèmes s’ils tentent d’utiliser OAuth et Tableau ou OAuth et Looker avec Snowflake. Veuillez contacter Tableau ou Looker, respectivement, pour des questions ou plus de détails.

Dans ce chapitre :

Étape 1. Configuration d’une intégration OAuth

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.

Note

Seuls les administrateurs de compte (utilisateurs dotés du rôle 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>' ]

Où :

oauthClientParams

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

Blocage de rôles spécifiques lors de l’utilisation de 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 d’administrateur de compte (ACCOUNTADMIN) et d’administrateur de sécurité (SECURITYADMIN) sont inclus dans cette liste et ne peuvent pas être supprimés. Si votre entreprise a besoin d’autoriser des utilisateurs à utiliser OAuth avec ces rôles et que votre équipe de sécurité est à l’aise pour le permettre, 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.

Gestion des politiques réseau

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

Exemples

Tableau Desktop

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

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

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

DESC SECURITY INTEGRATION td_oauth_int1;

L’exemple suivant crée une intégration OAuth 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');

Tableau Server ou Tableau Online

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

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

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

DESC SECURITY INTEGRATION ts_oauth_int1;

L’exemple suivant crée une intégration OAuth 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');

Étape 2. Connexion à Snowflake à partir d’une application partenaire

Tableau

Suivez les instructions fournies par Tableau pour vous connecter à Snowflake à l’aide de 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 OAuth.