ALTER SECURITY INTEGRATION (authentification API externe)

Modifie les propriétés d’une intégration de sécurité existante créée pour l’authentification API externe.

Pour des informations sur la modification d’autres types d’intégrations de sécurité (par exemple Snowflake OAuth), voir ALTER SECURITY INTEGRATION.

Voir aussi :

CREATE SECURITY INTEGRATION (authentification API externe) , DESCRIBE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS

Syntaxe

OAuth : identifiants de connexion client

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'CLIENT_CREDENTIALS']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

OAuth : flux d’accord de code d’autorisation

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'AUTHORIZATION_CODE']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

OAuth : JWT flux du porteur

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'JWT_BEARER']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

Paramètres

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration.

SET ...

Spécifie un(e) ou plusieurs paramètre(s)/propriété(s) à définir pour l’intégration (séparés par des espaces, des virgules ou de nouvelles lignes) :

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.

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
Copy

instance_name est le nom de votre instance ServiceNow.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

Spécifie le point de terminaison du jeton utilisé par le client pour obtenir un jeton d’accès en présentant son jeton d’attribution ou d’actualisation d’autorisation. Le point de terminaison du jeton est utilisé avec chaque autorisation accordée, à l’exception du type d’autorisation implicite (puisqu’un jeton d’accès est délivré directement).

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. Le connecteur l’utilise pour demander un jeton d’accès à l’instance ServiceNow.

OAUTH_GRANT = 'string_literal'

Spécifie le type de flux OAuth. Un des éléments suivants :

  • 'CLIENT_CREDENTIALS' lorsque l’intégration utilise les identifiants de connexion client.

  • 'AUTHORIZATION_CODE' lorsque l’intégration utilise un code d’autorisation.

  • 'JWT_BEARER' quand l’intégration utilise un jeton du porteur de type JWT (JSON Web Token).

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

OAUTH_ALLOWED_SCOPES = ( list )

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 []).

COMMENT = 'string_literal'

Ajoute un commentaire ou remplace un commentaire existant pour l’intégration.

Par défaut : aucune valeur

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus de détails sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.

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

OWNERSHIP

Intégration

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

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.

Exemples

L’exemple suivant lance l’opération d’une intégration suspendue :

ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;
Copy