Solicitação de integrações de segurança com especificações de aplicativos¶
Este tópico descreve como configurar um Snowflake Native App para usar as especificações de aplicativo para solicitar acesso às integrações de segurança na conta do consumidor. As integrações de segurança permitem que um aplicativo se conecte a um serviço de autenticação de terceiros, como o OAuth.
Acesso a provedores de autenticação de terceiros a partir de um aplicativo¶
Para implementar um serviço de autenticação de terceiros, o Snowflake fornece integrações de segurança. Uma integração de segurança permite que um aplicativo se conecte a um serviço de autenticação de terceiros, como o OAuth.
Nota
Os Snowflake Native Apps só oferecem suporte a integrações de segurança do tipo
API_AUTHENTICATION. Para obter mais informações, consulte CREATE SECURITY INTEGRATION (Autenticação de API externa).
Fluxo de trabalho de especificação de aplicativos para integrações de segurança¶
Este é o fluxo de trabalho geral de configuração de aplicativo para uso de uma integração de segurança:
Os provedores configuram a concessão automatizada de privilégios para o aplicativo. Isso concede privilégios ao aplicativo para criar uma integração de segurança.
Nota
As especificações de aplicativo exigem que
manifest_version = 2seja definido no arquivo de manifesto.Os provedores adicionam o privilégio CREATE INTEGRATION ao arquivo de manifesto.
Os provedores adicionam instruções SQL ao script de configuração para criar os seguintes objetos, conforme necessário:
Os provedores podem adicionar esses comandos diretamente no script de configuração, de modo que esses objetos sejam criados quando o aplicativo for instalado. Alternativamente, esses comandos podem ser adicionados a um procedimento armazenado que é chamado no momento da execução para criar esses objetos.
Os consumidores aprovam as informações relacionadas à integração do OAuth quando configuram o aplicativo. Para saber como os consumidores visualizam e aprovam especificações de aplicativos, consulte Aprovar conexões com recursos externos usando especificações de aplicativo.
Definição da especificação de aplicativo para integrações de segurança¶
Para uma integração de segurança, a definição da especificação de aplicativo inclui as propriedades necessárias para se conectar a um provedor de terceiros. Para o OAuth, a definição da especificação do aplicativo depende do tipo de OAuth. A tabela a seguir lista a definição de especificações do aplicativo para cada tipo:
Tipo de integração de segurança |
Valores definidos na especificação de aplicativo |
|---|---|
|
|
|
|
|
|
Definição da versão do arquivo de manifesto¶
Para habilitar a concessão automatizada de privilégios para um aplicativo, defina a versão no início do arquivo de manifesto, conforme mostrado no exemplo a seguir:
manifest_version: 2
Adicionar o privilégio CREATE INTEGRATION ao arquivo de manifesto¶
Para permitir que um aplicativo crie uma integração de segurança, adicione o privilégio CREATE INTEGRATION ao arquivo de manifesto, como mostrado no exemplo a seguir:
manifest_version: 2
...
privileges:
- CREATE INTEGRATION
description: "Allows the app to create security integrations to access external auth providers"
...
Esta entrada na seção privileges do arquivo de manifesto especifica que o aplicativo usa uma integração de segurança. Para que o aplicativo use a concessão automatizada de privilégios, o arquivo de manifesto também exige manifest_version: 2.
Adicionar uma integração de segurança ao script de configuração¶
As integrações de segurança permitem que um aplicativo se conecte a um serviço de autenticação de terceiros, como o OAuth. Para criar uma integração de segurança para um aplicativo, adicione o comando CREATE SECURITY INTEGRATION (Autenticação de API externa) ao script de configuração, como mostrado no exemplo a seguir:
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;
Este exemplo mostra como criar uma integração de segurança para se conectar ao Microsoft SharePoint usando o OAuth com credenciais de cliente. Consulte outros métodos aceitos para conexão com um provedor do OAuth em CREATE SECURITY INTEGRATION (Autenticação de API externa).
Criar uma especificação de aplicativo para uma integração de segurança¶
O exemplo a seguir mostra como criar uma especificação de aplicativo para uma integração de segurança usando o tipo 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');
Nota
Os valores que você fornece ao criar a especificação de aplicativo devem ser os mesmos que você usa na criação da integração de segurança no script de configuração.
Para obter informações sobre o uso de outros tipos de OAuth, consulte ALTER APPLICATION SET SPECIFICATIONS.
Aprovação da especificação do aplicativo na conta de consumidor¶
Depois que o provedor configura o aplicativo para criar a integração de segurança e a especificação do aplicativo, os consumidores podem visualizar a especificação e aprová-la ou rejeitá-la conforme necessário no momento da configuração. Para obter mais informações, consulte Aprovar conexões com recursos externos usando especificações de aplicativo.