Vue d’ensemble des spécifications d’application¶
Cette rubrique décrit comment un fournisseur peut configurer une Snowflake Native App pour utiliser les spécifications d’application afin de demander l’accès à des services et à des points de terminaison en dehors de Snowflake. Les spécifications d’application permettent aux consommateurs d’examiner et d’approuver ou de refuser les connexions externes dont une application a besoin.
Accéder aux services externes à partir d’une Snowflake Native App¶
Certaines Snowflake Native Apps ont besoin de se connecter à des ressources existantes en dehors de Snowflake. Pour gérer les connexions à ces ressources, Snowflake fournit différents objets pour différents types de connexions.
Pour accéder à des services externes, Snowflake fournit les objets suivants :
- Intégrations d’accès externes:
Autorisez un accès sécurisé à des points de terminaison réseau externes dans le cadre d’une fonction définie par l’utilisateur ou d’une procédure stockée. Les intégrations d’accès externes utilisent des règles de réseau pour restreindre l’accès à des emplacements de réseau externes spécifiques.
- Intégrations de sécurité:
Autoriser un accès sécurisé à des fournisseurs d’authentification tiers tels que OAuth. Les intégrations de sécurité fournissent une authentification et un contrôle d’accès sécurisés.
Lorsque vous utilisez l’octroi automatique de privilèges, une application dispose des privilèges requis pour créer ces objets lors de l’exécution du script d’installation. Cependant, étant donné que ces objets autorisent les connexions en dehors de Snowflake, les consommateurs doivent approuver ces connexions lors de la configuration de l’application.
L’utilisation de l’octroi automatique de privilèges avec les spécifications d’application présente les avantages suivants :
Les consommateurs n’ont pas à créer manuellement l’intégration d’accès externe ou les intégrations de sécurité requises par l’application ni à approuver l’accès à celles-ci à l’aide de références.
Les fournisseurs n’ont pas à écrire de code qui vérifie l’existence des privilèges et des objets requis lors de l’installation ou de la mise à niveau.
Utiliser les spécifications d’application pour permettre aux consommateurs d’approuver les connexions externes¶
Les spécifications d’application permettent à un fournisseur de spécifier les informations de connexion demandées par l’application. Lorsque le consommateur installe l’application, il examine la spécification d’application et l’approuve ou la refuse si nécessaire.
Pour plus d’informations sur l’utilisation des spécifications d’application pour demander l’accès à des point de terminaison externes, consultez Demander des intégrations d’accès externe (EAIs) avec des spécifications d’application. Pour plus d’informations sur l’utilisation des spécifications d’application pour demander l’accès à des intégrations OAuth, consultez Demander des intégrations de sécurité avec des spécifications d’application. Demander des intégrations d’accès externe (EAIs) avec des spécifications d’application.
Définition de la spécification d’application¶
Une définition de la spécification d’application contient les propriétés requises pour configurer des connexions à des ressources externes à Snowflake. Ces propriétés sont montrées au consommateur pour approbation. La définition de la spécification d’application contient un sous-ensemble des métadonnées et des propriétés d’une intégration d’accès externe ou d’une intégration de sécurité.
Pour plus d’informations sur la définition de la spécification d’application pour les intégrations de sécurité, consultez Définition de la spécification d’application pour les intégrations de sécurité.
Pour plus d’informations sur la définition de la spécification d’application pour les intégrations d’accès externes, consultez Définition de la spécification d’application pour les intégrations d’accès externes.
Numéros de séquence d’une spécification d’application¶
Le numéro de séquence est similaire à un numéro de version pour la spécification d’application. Les numéros de séquence sont automatiquement incrémentés lorsqu’un fournisseur modifie la définition de la spécification d’application. La définition d’une spécification d’application comprend des détails de configuration et d’autres informations requises. Les champs qui ne font pas partie de la définition, comme description, ne déclenchent pas de mise à jour du numéro de séquence.
Les numéros de séquence permettent aux fournisseurs et aux consommateurs d’identifier les différentes versions d’une spécification d’application. Par exemple, si un fournisseur ajoute un nouveau détail de configuration à la définition de la spécification d’application, le numéro de séquence est incrémenté. Lorsque le consommateur voit la spécification d’application, il peut voir que le numéro de séquence a changé, et il peut consulter la spécification d’application mise à jour.
Bonnes pratiques pour l’utilisation des spécifications d’application¶
L’octroi automatique de privilèges garantit que l’application dispose des privilèges requis pour créer des intégrations d’accès externes. Toutefois, les consommateurs peuvent choisir de refuser la spécification d’application qui permet la connexion aux points de terminaison externes. Lors du développement d’une application, les fournisseurs doivent tenir compte des situations où les spécifications d’application peuvent ne pas être approuvées.
Par exemple, une application peut demander à utiliser plusieurs ports réseau pour une intégration d’accès externe, mais le consommateur peut n’en autoriser qu’un seul. L’application doit inclure une logique pour gérer les erreurs qui se produisent si un port réseau n’est pas disponible. De plus, il est recommandé de repérer toutes les exceptions HTTP qui pourraient se produire.
Utiliser des fonctions de rappel avec des spécifications d’application¶
Dans certains contextes, une application peut avoir besoin de savoir quand le consommateur a approuvé ou refusé une spécification d’application. Par exemple, l’application peut avoir besoin d’attendre qu’une spécification d’application soit approuvée avant de créer un objet.
Pour gérer cette situation, le Snowflake Native App Framework fournit un mécanisme qui permet au fournisseur de définir une procédure stockée de rappel qui s’exécute lorsque le consommateur approuve ou refuse une spécification d’application.
Les fournisseurs peuvent ajouter une procédure stockée au fichier manifeste comme indiqué dans l’exemple suivant :
lifecycle_callbacks:
specification_action: callbacks.on_spec_update
Cet exemple montre comment ajouter une procédure stockée nommée callbacks.on_spec_update au fichier manifeste. Dans le script d’installation, les fournisseurs peuvent ajouter une procédure stockée comme indiqué dans l’exemple suivant :
CREATE OR REPLACE PROCEDURE callbacks.on_spec_update (
name STRING,
status STRING,
payload STRING)
...
Cet exemple montre la signature d’une procédure stockée appelée callbacks.on_spec_update. Dans le corps de cette procédure, les fournisseurs incluent le code nécessaire pour vérifier l’état de la spécification d’application, créer des objets et effectuer les actions nécessaires.