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 :

  1. 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 = 2 soit défini dans le fichier manifeste.

  2. Providers add the CREATE SECURITY INTEGRATION privilege to the manifest file.

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

  4. Consumers approve information related to OAuth integration when configuring the app. For more information on how consumers view and approve app specifications, see 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

CLIENT_CREDENTIALS

  • OAUTH_TOKEN_ENDPOINT (obligatoire)

  • OAUTH_ALLOWED_SCOPES (obligatoire)

AUTHORIZATION_CODE_GRANT

  • OAUTH_TOKEN_ENDPOINT (obligatoire)

  • OAUTH_AUTHORIZATION_ENDPOINT (facultatif)

JWT

  • OAUTH_TOKEN_ENDPOINT (obligatoire)

  • OAUTH_AUTHORIZATION_ENDPOINT (facultatif)

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
Copy

Add the CREATE SECURITY INTEGRATION privilege to the manifest file

  1. To allow an app to create a security integration, add the CREATE SECURITY INTEGRATION privilege to the manifest file, as shown in the following example:

    manifest_version: 2
    ...
    privileges:
      - CREATE SECURITY INTEGRATION:
          description: "Allows the app to create security integrations to access external auth providers"
    ...
    
    Copy

If you set the manifest_version to 2 in the manifest file, Snowflake automatically grants the CREATE SECURITY INTEGRATION privilege to the app during installation or upgrade.

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;
Copy

This example shows how to create a security integration to connect to Microsoft Graph using OAuth with client credentials. For other supported methods of connecting to an OAuth provider, see 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');
Copy

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.