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.Providers add the CREATE SECURITY INTEGRATION privilege to the manifest file.
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.
Consumers approve information related to OAuth integration when configuring the app. For more information on how consumers view and approve app specifications, see 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
Add the CREATE SECURITY INTEGRATION privilege to the manifest file¶
To allow an app to create a security integration, add the
CREATE SECURITY INTEGRATIONprivilege 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" ...
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.
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;
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 (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.