Catégories :

Utilisateur et sécurité DDL (Intégrations de services tiers)

CREATE SECURITY INTEGRATION

Crée une nouvelle intégration de sécurité dans le compte ou remplace une intégration existante. Une intégration est un objet Snowflake qui fournit une interface entre Snowflake et des services tiers.

Une intégration de sécurité permet aux clients qui prennent en charge OAuth de rediriger les utilisateurs vers une page d’autorisation et de générer des jetons d’accès (et éventuellement des jetons d’actualisation) pour accéder à Snowflake.

Voir aussi :

ALTER SECURITY INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS

Dans ce chapitre :

Syntaxe

OAuth externe

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = EXTERNAL_OAUTH
  ENABLED = { TRUE | FALSE }
  EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM }
  EXTERNAL_OAUTH_ISSUER = '<string_literal>' ]
  EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>'
  EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
  [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ]
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
  [ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
  [ EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]

SAML2

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    TYPE = SAML2
    ENABLED = TRUE | FALSE
    SAML2_ISSUER = '<string_literal>'
    SAML2_SSO_URL = '<string_literal>'
    SAML2_PROVIDER = '<string_literal>'
    SAML2_X509_CERT = '<string_literal>'
    [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
    [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
    [ SAML2_SIGN_REQUEST = TRUE | FALSE ]
    [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]

SCIM

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS]
    <name>
    TYPE = SCIM
    SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'
    RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'
    [ NETWORK_POLICY ] = '<network_policy>'

Snowflake OAuth pour les applications partenaires

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = OAUTH
  OAUTH_CLIENT = <partner_application>
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ COMMENT = '<string_literal>' ]

Snowflake OAuth pour les clients personnalisés

CREATE [ OR REPLACE ] SECURITY INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'
  OAUTH_REDIRECT_URI = '<uri>'
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE ]
  [ OAUTH_ENFORCE_PKCE = TRUE | FALSE ]
  [ PRE_AUTHORIZED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ NETWORK_POLICY = '<network_policy>' ]
  [ OAUTH_CLIENT_RSA_PUBLIC_KEY = <public_key1> ]
  [ OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = <public_key2> ]
  [ COMMENT = '<string_literal>' ]

Paramètres

OAuth externe

Paramètres OAuth externe requis

nom

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = EXTERNAL_OAUTH

Distingue l’intégration OAuth externe d’une intégration Snowflake OAuth.

ENABLED = TRUE | FALSE

Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.

  • TRUE permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.

  • FALSE suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.

EXTERNAL_OAUTH_TYPE = OKTA | AZURE | PING_FEDERATE | CUSTOM

Indique que le serveur d’autorisation OAuth 2.0 doit être Okta, Microsoft Azure AD, Ping Identity PingFederate ou un serveur d’autorisation personnalisé OAuth 2.0.

EXTERNAL_OAUTH_ISSUER = 'litéral_chaine'

Spécifie l’URL pour définir le serveur d’autorisation OAuth 2.0.

EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'litéral_chaine'

Spécifie la revendication de jeton d’accès à utiliser pour mapper le jeton d’accès à un enregistrement utilisateur Snowflake. Le type de la revendication doit être une chaîne ou un tableau de chaînes avec une seule entrée.

EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'

Indique quel attribut d’enregistrement utilisateur Snowflake doit être utilisé pour mapper le jeton d’accès à un enregistrement utilisateur Snowflake.

Paramètres facultatifs OAuth externe

EXTERNAL_OAUTH_JWS_KEYS_URL = 'litéral_chaine'

Spécifie le point de terminaison à partir duquel télécharger les clés publiques ou les certificats pour valider un jeton d’accès OAuth externe.

EXTERNAL_OAUTH_RSA_PUBLIC_KEY = clé_publique1

Spécifie une clé publique RSA d’encodage Base64, sans les en-têtes -----BEGIN PUBLIC KEY----- et -----END PUBLIC KEY-----.

EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = clé_publique2

Spécifie une deuxième clé publique RSA, sans les en-têtes -----BEGIN PUBLIC KEY----- et -----END PUBLIC KEY-----. Utilisée pour la rotation des clés.

EXTERNAL_OAUTH_AUDIENCE_LIST = ('litéral_chaîne')

Spécifie des valeurs supplémentaires qui peuvent être utilisées pour la validation de l’audience du jeton d’accès en plus de l’utilisation de l’URL du compte Snowflake du client (c’est-à-dire, <compte>.<région>.snowflakecomputing.com).

Actuellement, plusieurs URLs d’audience ne peuvent être spécifiées que pour les clients externes OAuth personnalisés. Chaque URL doit être placée entre guillemets simples, avec une virgule séparant chaque URL. Par exemple :

external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE'

Spécifie si le client ou l’utilisateur OAuth peut utiliser un rôle qui n’est pas défini dans le jeton d’accès OAuth.

  • DISABLE n’autorise pas le client ou l’utilisateur OAuth à changer de rôle (c’est-à-dire use role <rôle>;). Par défaut.

  • ENABLE permet au client ou à l’utilisateur OAuth de changer de rôle.

  • ENABLE_FOR_PRIVILEGE permet au client ou à l’utilisateur OAuth de changer de rôle uniquement pour un client ou un utilisateur avec le privilège USE_ANY_ROLE. Ce privilège peut être accordé et révoqué à un ou plusieurs rôles disponibles pour l’utilisateur. Par exemple :

    grant USE_ANY_ROLE on integration external_oauth_1 to role1;
    
    revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
    

SAML2

Paramètres SAML2 requis

nom

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = SAML2

Spécifiez le type d’intégration :

  • SAML2 : crée une interface de sécurité entre Snowflake et le fournisseur d’identité.

ENABLED = TRUE | FALSE

Booléen qui spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.

  • TRUE permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.

  • FALSE suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.

SAML2_ISSUER = 'litéral_chaine'

La chaîne contenant l’IdP EntityID / Issuer.

SAML2_SSO_URL = 'litéral_chaine'

La chaîne contenant l’URL SSO de l’IdP, où l’utilisateur doit être redirigé par Snowflake (le fournisseur de services) avec un message AuthnRequest SAML.

SAML2_PROVIDER = 'litéral_chaine'

La chaîne décrivant l’IdP.

L’un des éléments suivants : OKTA, ADFS, personnalisé.

SAML2_X509_CERT = 'litéral_chaine'

Le certificat de signature IdP encodé en Base64 sur une seule ligne sans les marqueurs -----BEGIN CERTIFICATE----- de début et -----END CERTIFICATE----- de fin.

Paramètres SAML2 facultatifs

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'litéral_chaine'

Chaîne contenant l’étiquette à afficher après le bouton Log In With sur la page de connexion.

SAML2_ENABLE_SP_INITIATED = TRUE | FALSE

Le booléen indiquant si le bouton Log In With sera affiché sur la page de connexion.

  • TRUE affiche le bouton Log in With sur la page de connexion.

  • FALSE n’affiche pas le bouton Log in With sur la page de connexion.

SAML2_SNOWFLAKE_X509_CERT = 'litéral_chaine'

Le certificat auto-signé encodé en Base64 généré par Snowflake pour une utilisation avec Chiffrement des assertions SAML et Demandes SAML signées.

Vous devez avoir au moins une de ces fonctionnalités (assertions SAML chiffrées ou réponses SAML signées) activée dans votre compte Snowflake pour accéder à la valeur du certificat.

SAML2_SIGN_REQUEST = TRUE | FALSE

Le booléen indiquant si les demandes SAML sont signées.

  • TRUE permet la signature de demandes SAML.

  • FALSE n’autorise pas la signature de demandes SAML.

SAML2_REQUESTED_NAMEID_FORMAT = 'litéral_chaine'

Le format SAML NameID permet à Snowflake de définir une attente de l’attribut identifiant de l’utilisateur (c’est-à-dire le sujet SAML) dans l’assertion SAML de l” IdP pour assurer une authentification valide dans Snowflake. Si aucune valeur n’est spécifiée, Snowflake envoie la valeur urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress dans la requête d’authentification à l” IdP.

En option.

Si vous choisissez de spécifier le format SAML NameID, utilisez l’une des valeurs suivantes :

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

SCIM

Paramètres SCIM requis

nom

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = SCIM

Spécifiez le type d’intégration :

  • SCIM : crée une interface de sécurité entre Snowflake et un client prenant en charge SCIM.

SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'

Spécifiez le client SCIM.

RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'

Spécifiez le rôle SCIM dans Snowflake qui possède les utilisateurs et les rôles importés du fournisseur d’identité dans Snowflake à l’aide de SCIM.

  • Les valeurs OKTA_PROVISIONER, AAD_PROVISIONER et GENERIC_SCIM_PROVISIONER sont sensibles à la casse et doivent toujours être mises en majuscule.

Paramètres SCIM facultatifs

NETWORK_POLICY = 'politique_réseau'

Spécifie une stratégie réseau existante active pour votre compte. La stratégie réseau restreint la liste des adresses IP des utilisateurs lors de l’échange d’un code d’autorisation contre un jeton d’accès ou d’actualisation et lors de l’utilisation d’un jeton d’actualisation pour obtenir un nouveau jeton d’accès. Si ce paramètre n’est pas défini, la politique réseau du compte (le cas échéant) est utilisée à la place.

Snowflake OAuth

Paramètres OAuth Snowflake requis

nom

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = OAUTH

Spécifiez le type d’intégration :

  • OAUTH : crée une interface de sécurité entre Snowflake et un client prenant en charge OAuth.

OAUTH_CLIENT = CUSTOM | application_partenaire

Spécifiez le type de client :

  • CUSTOM : crée une interface OAuth entre Snowflake et un client personnalisé.

  • application_partenaire : crée une interface OAuth entre Snowflake et une application partenaire. Valeurs prises en charge :

    • TABLEAU_DESKTOP : Tableau Desktop version 2019.1 ou supérieure.

    • TABLEAU_SERVER : Tableau Online ou Tableau Server.

    • LOOKER : l’outil de Business Intelligence Looker.

Paramètres facultatifs OAuth Snowflake

ENABLED = TRUE | FALSE

Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.

  • TRUE permet l’intégration.

  • FALSE désactive l’intégration de la maintenance. Toute intégration entre Snowflake et un service tiers échoue.

Par défaut : FALSE. Si une intégration de sécurité est créée sans définir ce paramètre sur TRUE, Snowflake définit le paramètre sur FALSE.

Paramètres client personnalisés OAuth Snowflake

Requis uniquement lorsque OAUTH_CLIENT = CUSTOM (c’est-à-dire lors de la création d’une intégration pour un client personnalisé)

OAUTH_CLIENT_TYPE = 'CONFIDENTIAL' | 'PUBLIC'

Spécifie le type de client en cours d’enregistrement. Snowflake prend en charge les clients confidentiels et publics. Les clients confidentiels peuvent stocker un secret. Ils fonctionnent dans une zone protégée à laquelle les utilisateurs finaux ne peuvent pas accéder. Par exemple, un service sécurisé déployé sur le Cloud peut être un client confidentiel. Un client fonctionnant sur un ordinateur de bureau ou distribué via un magasin d’applications peut être un client public.

OAUTH_REDIRECT_URI = 'uri'

Spécifie l’URI du client. Une fois l’utilisateur authentifié, le navigateur Web est redirigé vers cette URI. L’URI doit être protégée par TLS (Transport Layer Security) sauf si le paramètre facultatif OAUTH_ALLOW_NON_TLS_REDIRECT_URI est défini sur TRUE.

Paramètres d’application du partenaire OAuth Snowflake — Facultatif

Valable lorsque OAUTH_CLIENT = <application_partenaire> (c’est-à-dire lors de la création d’une intégration pour une application partenaire)

OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE

Booléen qui spécifie s’il faut autoriser le client à échanger un jeton d’actualisation contre un jeton d’accès lorsque le jeton d’accès actuel a expiré. Si défini sur FALSE, aucun jeton d’actualisation n’est émis, quelle que soit la valeur entière définie dans OAUTH_REFRESH_TOKEN_VALIDITY. Le consentement de l’utilisateur est révoqué et l’utilisateur doit confirmer l’autorisation à nouveau.

Par défaut : TRUE

Note

Si ce paramètre est défini sur FALSE et que l’intégration de sécurité a également ENABLED = TRUE, le flux OAuth Snowflake se répète, un jeton d’accès non configurable est émis et le jeton d’accès est valide pendant 600 secondes (10 minutes). Une fois ce jeton d’accès expiré, l’utilisateur doit à nouveau s’authentifier.

Si vous définissez ce paramètre sur FALSE et ENABLED = false, aucun jeton n’est émis et l’intégration est désactivée.

OAUTH_REFRESH_TOKEN_VALIDITY = entier

Entier qui spécifie la durée pendant laquelle les jetons d’actualisation doivent être valides (en secondes). Cela peut être utilisé pour entraîner l’expiration périodique du jeton d’actualisation. Notez que OAUTH_ISSUE_REFRESH_TOKENS doit être défini sur TRUE.

Lorsqu’un jeton d’actualisation expire, l’application doit rediriger l’utilisateur à travers le flux d’autorisation pour obtenir un nouveau jeton d’actualisation.

Les valeurs minimale, maximale et par défaut prises en charge 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

Client personnalisé

3600 (1 heure)

7776000 90 jours

7776000 90 jours

Si votre entreprise a besoin de réduire la valeur minimale ou d’augmenter la valeur maximale, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.

BLOCKED_ROLES_LIST = '(nom_rôle', 'nom_rôle')

Liste des rôles Snowflake séparés par des virgules qu’un utilisateur ne peut pas accepter explicitement d’utiliser après l’authentification, par exemple 'custom_role1', 'custom_role2'.

Notez que les rôles ACCOUNTADMIN et SECURITYADMIN sont inclus par défaut dans cette liste. Toutefois, si ces rôles doivent être supprimés pour votre compte, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.

COMMENT = 'litéral_chaine'

Chaîne (littéral) qui spécifie un commentaire pour l’intégration.

Par défaut : aucune valeur

Paramètres client personnalisés OAuth Snowflake — Facultatif

Valable lorsque OAUTH_CLIENT = CUSTOM (c’est-à-dire lors de la création d’une intégration pour un client personnalisé)

OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE

Si TRUE, autorise le paramétrage de OAUTH_REDIRECT_URI sur une URI non protégée par TLS. Nous vous recommandons vivement d’utiliser TLS pour empêcher les redirections man-in-the-middle OAuth utilisées lors des attaques de hameçonnage.

Par défaut : FALSE

OAUTH_ENFORCE_PKCE = TRUE | FALSE

Booléen qui spécifie si la clé de vérification pour l’échange de code (PKCE) doit être requise pour l’intégration.

Par défaut, PKCE est facultatif et n’est appliqué que si les paramètres code_challenge et code_challenge_method sont tous deux inclus dans l’URL du point de terminaison d’autorisation. Cependant, nous conseillons vivement à votre client d’exiger PKCE pour toutes les autorisations afin de sécuriser davantage le flux de données OAuth. Pour plus d’informations, voir Configurer Snowflake OAuth pour les clients personnalisés.

Par défaut : FALSE

PRE_AUTHORIZED_ROLES_LIST = '(nom_rôle', 'nom_rôle')

Liste des rôles Snowflake séparés par des virgules qu’un utilisateur n’a pas besoin d’accepter explicitement d’utiliser après l’authentification (par exemple 'custom_role1', 'custom_role2'). Notez que les rôles ACCOUNTADMIN et SECURITYADMIN ne peuvent pas être inclus dans cette liste.

Note

Ce paramètre est pris en charge pour les clients confidentiels uniquement.

BLOCKED_ROLES_LIST = '(nom_rôle', 'nom_rôle')

Liste des rôles Snowflake séparés par des virgules qu’un utilisateur ne peut pas accepter explicitement d’utiliser après l’authentification, par exemple 'custom_role1', 'custom_role2'. Notez que les rôles ACCOUNTADMIN et SECURITYADMIN sont inclus par défaut dans cette liste. Toutefois, si ces rôles doivent être supprimés pour votre compte, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.

OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE

Booléen qui spécifie s’il faut autoriser le client à échanger un jeton d’actualisation contre un jeton d’accès lorsque le jeton d’accès actuel a expiré. Si défini sur FALSE, aucun jeton d’actualisation n’est émis. Le consentement de l’utilisateur est révoqué et l’utilisateur doit confirmer l’autorisation à nouveau.

Par défaut : TRUE

OAUTH_REFRESH_TOKEN_VALIDITY = entier

Entier qui spécifie la durée pendant laquelle les jetons d’actualisation doivent être valides (en secondes). Cela peut être utilisé pour entraîner l’expiration périodique du jeton d’actualisation. Notez que OAUTH_ISSUE_REFRESH_TOKENS doit être défini sur TRUE.

Notez que si votre entreprise souhaite que les valeurs minimales ou maximales soient abaissées ou augmentées, respectivement, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.

Valeurs

86400 (1 jour) à 7776000 (90 jours)

Par défaut

7776000

NETWORK_POLICY = 'politique_réseau'

Spécifie une stratégie réseau existante active pour votre compte. La stratégie réseau restreint la liste des adresses IP des utilisateurs lors de l’échange d’un code d’autorisation contre un jeton d’accès ou d’actualisation et lors de l’utilisation d’un jeton d’actualisation pour obtenir un nouveau jeton d’accès. Si ce paramètre n’est pas défini, la politique réseau du compte (le cas échéant) est utilisée à la place.

OAUTH_CLIENT_RSA_PUBLIC_KEY = clé_publique1

Spécifie une clé publique RSA. Pour plus d’informations, voir OAuth.

OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = clé_publique2

Spécifie une seconde clé publique RSA. Utilisée pour la rotation des clés.

COMMENT = 'litéral_chaine'

Chaîne (littéral) qui spécifie un commentaire pour l’intégration.

Par défaut : aucune valeur

Notes sur l’utilisation

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

Exemples

OAuth externe

Exemple OAuth externe Microsoft Azure AD

L’exemple suivant crée une intégration de sécurité OAuth externe pour un serveur d’autorisation Microsoft Azure AD OAuth 2.0.

create security integration external_oauth_azure_1
    type = external_oauth
    enabled = true
    external_oauth_type = azure
    external_oauth_issuer = '<AZURE_AD_ISSUER>'
    external_oauth_jws_keys_url = '<AZURE_AD_JWS_KEY_ENDPOINT>'
    external_oauth_token_user_mapping_claim = 'upn'
    external_oauth_snowflake_user_mapping_attribute = 'login_name';

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

DESC SECURITY INTEGRATION external_oauth_azure_1;

Exemple OAuth externe et Okta

L’exemple suivant crée une intégration de sécurité OAuth externe pour un serveur d’autorisation Okta OAuth 2.0.

create security integration external_oauth_okta_1
    type = external_oauth
    enabled = true
    external_oauth_type = okta
    external_oauth_issuer = '<OKTA_ISSUER>'
    external_oauth_jws_keys_url = '<OKTA_JWS_KEY_ENDPOINT>'
    external_oauth_token_user_mapping_claim = 'sub'
    external_oauth_snowflake_user_mapping_attribute = 'login_name';

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

DESC SECURITY INTEGRATION external_oauth_okta_1;

SAML2

Exemple SAML2

L’exemple suivant crée une intégration de sécurité Microsoft Active Directory Federation Services (ADFS) avec les deux paramètres facultatifs :

create security integration my_idp
    type = saml2
    enabled = true
    saml2_issuer = 'https://example.com'
    saml2_sso_url = 'http://myssoprovider.com'
    saml2_provider = 'ADFS'
    saml2_x509_cert='my_x509_cert'
    saml2_sp_initiated_login_page_label = 'my_idp'
    saml2_enable_sp_initiated = false
    ;

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

DESC SECURITY INTEGRATION my_idp;

SCIM

Exemple avec SCIM et Microsoft Azure AD

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

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

DESC SECURITY INTEGRATION aad_provisioning;

Exemple SCIM et Okta

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

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

DESC SECURITY INTEGRATION okta_provisioning;

Snowflake OAuth

Exemple Snowflake OAuth avec 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');

Exemple Snowflake OAuth avec Tableau Online ou Tableau Server

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

Exemple Snowflake OAuth avec client personnalisé

L’exemple suivant crée une intégration OAuth qui utilise l’authentification par paire de clés. L’intégration permet d’actualiser les jetons, qui expirent après 1 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 oauth_kp_int
  TYPE=OAUTH
  ENABLED=TRUE
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE='CONFIDENTIAL'
  OAUTH_REDIRECT_URI='https://localhost.com'
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  PRE_AUTHORIZED_ROLES_LIST = 'MYROLE'
  BLOCKED_ROLES_LIST = ('SYSADMIN')
  OAUTH_CLIENT_RSA_PUBLIC_KEY='
  MIIBI
  ..
  ';