Demander des intégrations de sécurité avec des spécifications d’application¶
Cette rubrique décrit comment configurer une Snowflake Native App pour utiliser les spécifications d’application afin de demander l’accès à des intégrations de sécurité dans le compte de consommateur. Les intégrations de sécurité permettent à une application de se connecter à des fournisseurs d’authentification tiers comme OAuth.
Accéder à des fournisseurs d’authentification tiers à partir d’une application¶
Pour mettre en œuvre un service d’authentification tiers, Snowflake fournit des intégrations de sécurité. Une intégration de sécurité permet à une application de se connecter à un service d’authentification tiers tel que OAuth.
Note
L’Snowflake Native Apps ne prend en charge que les intégrations de sécurité de type
API_AUTHENTICATION. Pour plus d’informations, voir CREATE SECURITY INTEGRATION (authentification API externe).
Workflow de la spécification d’application pour les intégrations de sécurité¶
Le workflow général de configuration d’une application pour utiliser une intégration de sécurité est le suivant :
Les fournisseurs configurent l’octroi automatique de privilèges pour l’application. Cela accorde à l’application les privilèges nécessaires pour créer une intégration de sécurité.
Note
Les spécifications d’application exigent que
manifest_version = 2soit défini dans le fichier manifeste.Les fournisseurs ajoutent le privilège CREATE INTEGRATION au fichier manifeste.
Les fournisseurs ajoutent les instructions SQL au script d’installation pour créer les objets suivants en fonction des besoins :
Les fournisseurs peuvent ajouter ces commandes directement dans le script d’installation, ce qui fait que ces objets sont créés lors de l’installation de l’application. Alternativement, ces commandes peuvent être ajoutées à une procédure stockée qui est appelée au moment de l’exécution pour créer ces objets.
Les consommateurs approuvent les informations relatives à l’intégration de OAuth lors de la configuration de l’application. Pour plus d’informations sur la façon dont les consommateurs visualisent et approuvent les spécifications d’application, consultez Approuver des connexions à des ressources externes à l’aide de spécifications d’application.
Définition de la spécification d’application pour les intégrations de sécurité¶
Pour une intégration de sécurité, la définition de la spécification d’application comprend les propriétés requises pour se connecter à un fournisseur tiers. Pour OAuth, la définition de la spécification d’application dépend du type de OAuth. Le tableau suivant répertorie la définition de la spécification d’application pour chaque type :
Type d’intégration de sécurité |
Valeurs définies dans la spécification d’application |
|---|---|
|
|
|
|
|
|
Spécifier la version du fichier manifeste¶
Pour activer l’octroi automatique de privilèges pour une application, définissez la version au début du fichier manifeste, comme indiqué dans l’exemple suivant :
manifest_version: 2
Ajoutez le privilège CREATE INTEGRATION au fichier manifeste.¶
Pour permettre à une application de créer une intégration de sécurité, ajoutez le privilège CREATE INTEGRATION au fichier manifeste, comme indiqué dans l’exemple suivant :
manifest_version: 2
...
privileges:
- CREATE INTEGRATION
description: "Allows the app to create security integrations to access external auth providers"
...
Cette entrée dans la section privileges du fichier manifeste indique que l’application utilise une intégration de sécurité. Pour que l’application utilise l’octroi automatique de privilèges, le fichier manifeste requiert également manifest_version: 2.
Ajouter une intégration de sécurité au script d’installation¶
Les intégrations de sécurité permettent à une application de se connecter à un service d’authentification tiers comme OAuth. Pour créer une intégration de sécurité pour une application, ajoutez la commande CREATE SECURITY INTEGRATION (authentification API externe) au script d’installation, comme indiqué dans l’exemple suivant :
CREATE SECURITY INTEGRATION external_oauth_provider
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
OAUTH_CLIENT_ID = 'YOUR_CLIENT_ID'
OAUTH_CLIENT_SECRET = 'YOUR_CLIENT_SECRET'
OAUTH_GRANT = 'CLIENT_CREDENTIALS'
OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default')
ENABLED = TRUE;
Cet exemple montre comment créer une intégration de sécurité pour se connecter à Microsoft SharePoint à l’aide de OAuth avec des identifiants de connexion clients. Pour connaître les autres méthodes de connexion à un fournisseur OAuth prises en charge, consultez CREATE SECURITY INTEGRATION (authentification API externe).
Créer une spécification d’application pour une intégration de sécurité¶
L’exemple suivant montre comment créer une spécification d’application pour une intégration de sécurité à l’aide du type CLIENT_CREDENTIALS OAuth :
ALTER APPLICATION SET SPECIFICATION oauth_app_spec
TYPE = SECURITY_INTEGRATION
LABEL = 'Connection to an external OAuth provider'
DESCRIPTION = 'Integrates an external identity provider in the app'
OAUTH_TYPE = 'CLIENT_CREDENTIALS'
OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default');
Note
Les valeurs que vous fournissez lors de la création de la spécification d’application doivent être les mêmes que celles que vous utilisez lors de la création de l’intégration de sécurité dans le script d’installation.
Pour obtenir des informations sur l’utilisation d’autres types OAuth, consultez ALTER APPLICATION SET SPECIFICATIONS.
Approuver la spécification d’application dans le compte de consommateur¶
Une fois que le fournisseur a configuré l’application pour créer l’intégration de sécurité et la spécification d’application, les consommateurs peuvent consulter la spécification d’application et l’approuver ou la refuser selon les besoins lors de la configuration de l’application. Pour plus d’informations, voir Approuver des connexions à des ressources externes à l’aide de spécifications d’application.