CREATE SECURITY INTEGRATION (authentification API externe)¶
Crée une nouvelle intégration de sécurité pour l’authentification API externe dans le compte ou remplace une intégration existante.
Pour des informations sur la création d’autres types d’intégrations de sécurité (par exemple, OAuth externe), voir CREATE SECURITY INTEGRATION.
- Voir aussi :
ALTER SECURITY INTEGRATION (authentification API externe) , DESCRIBE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS
Syntaxe¶
CREATE SECURITY INTEGRATION <name>
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
ENABLED = { TRUE | FALSE }
[ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
[ OAUTH_CLIENT_ID = '<string_literal>' ]
[ OAUTH_CLIENT_SECRET = '<string_literal>' ]
[ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
[ OAUTH_GRANT = '<string_literal>' ]
[ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
[ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
[ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
[ COMMENT = '<string_literal>' ]
Paramètres requis¶
name
Spécifie l’identificateur (c’est-à-dire le nom) de l’intégration. Cette valeur doit être unique dans 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. « Mon objet »). Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus de détails, voir Exigences relatives à l’identificateur.
TYPE = API_AUTHENTICATION
Spécifie que vous créez une interface de sécurité entre Snowflake et un service externe qui utilise OAuth 2.0 avec une authentification API externe.
AUTH_TYPE = OAUTH2
Spécifie que l’intégration utilise OAuth 2.0 pour s’authentifier auprès du service externe.
ENABLED = { TRUE | FALSE }
Spécifie si cette intégration de sécurité est activée ou désactivée.
TRUE
Permet l’exécution de l’intégration en fonction des paramètres spécifiés dans l’intégration de définition.
FALSE
Suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.
Paramètres facultatifs¶
Notez qu’il s’agit d’une liste exhaustive de paramètres que vous pouvez configurer. Configurez les paramètres dans l’intégration pour qu’ils correspondent aux paramètres que vous configurez lors de la création d’un secret en fonction du flux OAuth que vous choisissez.
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
Spécifie que POST est utilisé comme méthode d’authentification pour le service externe.
OAUTH_CLIENT_ID = 'string_literal'
Spécifie l’ID client pour l’application OAuth dans le service externe.
OAUTH_CLIENT_SECRET = 'string_literal'
Spécifie le secret client pour l’application OAuth dans l’instance ServiceNow de l’étape précédente. Le connecteur l’utilise pour demander un jeton d’accès à l’instance ServiceNow.
OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'
Spécifie l’URL pour l’authentification auprès du service externe. Par exemple, pour se connecter à l’instance ServiceNow, l’URL doit être au format suivant :
https://<instance_name>.service-now.com/oauth_token.do
Où
instance_name
est le nom de votre instance ServiceNow.OAUTH_GRANT = 'string_literal'
Spécifie le type de flux OAuth. Un des éléments suivants :
'CLIENT_CREDENTIALS'
ou'AUTHORIZATION_CODE'
Cette valeur doit correspondre au flux OAuth que vous choisissez lors de la création d’un secret.
OAUTH_ALLOWED_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )
Spécifie une liste de champs d’application séparés par des virgules, avec des guillemets simples entourant chaque champ d’application, à utiliser lors de la conception d’une requête à partir de OAuth par un rôle avec USAGE sur l’intégration pendant le flux d’identifiants de connexion client OAuth.
Cette liste doit être un sous-ensemble des champs d’application définis dans la propriété
OAUTH_ALLOWED_SCOPES
de l’intégration de sécurité. Si les valeurs de propriétéOAUTH_SCOPES
ne sont pas spécifiées, le secret hérite de tous les champs d’application spécifiés dans l’intégration de sécurité.Pour le connecteur ServiceNow, la seule valeur de champ d’application possible est
'useraccount'
.Par défaut : liste vide (c’est-à-dire
[]
).OAUTH_ACCESS_TOKEN_VALIDITY = integer
Spécifie la durée de vie par défaut du jeton d’accès OAuth (en secondes) émis par un serveur OAuth.
La valeur définie dans cette propriété est utilisée si la durée de vie du jeton d’accès n’est pas renvoyée en tant que partie de la réponse du jeton OAuth. Lorsque les deux valeurs sont disponibles, la plus petite des deux valeurs sera utilisée pour actualiser le jeton d’accès.
OAUTH_REFRESH_TOKEN_VALIDITY = integer
Spécifie la valeur pour déterminer la validité du jeton d’actualisation obtenu à partir du serveur OAuth.
COMMENT = 'string_literal'
Spécifie un commentaire pour l’intégration.
Par défaut : aucune valeur
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
CREATE INTEGRATION |
Compte |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Les instructions CREATE OR REPLACE <objet> sont atomiques. Autrement dit, lorsque l’objet est remplacé, la suppression de l’ancien objet et la création du nouvel objet sont traitées en une seule transaction.
Exemples¶
Créez une intégration de sécurité nommée servicenow_oauth
pour connecter Snowflake à l’instance ServiceNow nommée myinstance
à l’aide de OAuth avec le flux d’accord de code :
CREATE SECURITY INTEGRATION servicenow_oauth TYPE = api_authentication AUTH_TYPE = oauth2 OAUTH_CLIENT_AUTH_METHOD = client_secret_post OAUTH_CLIENT_ID = 'sn-oauth-134o9erqfedlc' OAUTH_CLIENT_SECRET = 'eb9vaXsrcEvrFdfcvCaoijhilj4fc' OAUTH_TOKEN_ENDPOINT = 'https://myinstance.service-now.com/oauth_token.do' ENABLED = true;