Cortex Agents para Microsoft Teams e Microsoft 365 Copilot¶
Introdução¶
Para a maioria das equipes, acessar insights de dados em tempo hábil significa alternar o contexto entre plataformas de análise dedicadas e ferramentas de comunicação, o que causa atrasos e reduz a produtividade. Integrar um sistema de AI de agente ao Microsoft Teams pode levar as respostas diretamente para onde as conversas e decisões acontecem, acelerando o fluxo de informações em sua empresa. Mas criar uma solução de análise de chat segura e que seja poderosa e intuitiva é uma tarefa significativa. Felizmente, a Snowflake criou uma para você.
A integração dos Snowflake Cortex Agents para Microsoft Teams e Microsoft 365 Copilot incorpora os agentes de AI de conversação da Snowflake à sua plataforma de comunicação empresarial. Equipes empresariais e usuários não técnicos podem interagir com seus dados estruturados e não estruturados do Snowflake usando linguagem simples e natural para receber respostas diretas e visualizações sem sair de seus bate-papos do Teams ou do ecossistema mais amplo do Microsoft 365. A integração está disponível via Microsoft AppSource para uma implementação perfeita.
Principais recursos¶
Análise contínua via linguagem natural. Satisfaça os tomadores de decisão da sua empresa, dando a eles o poder de obter insights por conta própria nas interfaces do Microsoft Teams e do Microsoft 365 Copilot. Você pode descobrir tendências e analisar dados sem conhecimento técnico ou esperar que um painel personalizado seja criado. Os usuários podem fazer perguntas em conversação e receber de forma precisa, respostas em texto baseadas em LLM, tabela ou gráfico dinamicamente, acelerando drasticamente a tomada de decisões baseada em dados.
Interfaces duplas para fluxos de trabalho abrangentes. Os Cortex Agents para Microsoft Teams oferecem duas interfaces distintas para atender a diferentes necessidades empresariais. Use o aplicativo padrão do Teams para fazer análises dedicadas e aprofundadas em um chat do aplicativo Teams Bot ou aproveite o Microsoft 365 Copilot Agent para levar insights direcionados do Snowflake para o seu fluxo de trabalho de conversação mais amplo dentro do ecossistema do Microsoft 365 Copilot.
Desenvolvido por Snowflake Cortex Agents. Essa integração é alimentada pela API Snowflake Cortex Agents, que lida com as complexidades de gerar insights precisos e confiáveis a partir dos seus dados. O sistema de agente interpreta as solicitações dos usuários e gera respostas de forma inteligente, poupando suas equipes da necessidade de criar padrões de AI de conversação complexos ou gerenciar modelos subjacentes. Você pode reutilizar os mesmos agentes usados com Inteligência do Snowflake, evitando duplicar o esforço de configuração e governança.
Segurança e governança de nível empresarial. Construída com a base que prioriza a privacidade do Snowflake, a integração garante que você consiga explorar com confiança casos de uso orientados por AI. Isso significa:
Seus dados permanecem dentro dos limites de governança da Snowflake. Os prompts do usuário são enviados à API Cortex Agents, mas os dados subjacentes consultados para gerar uma resposta nunca saem do ambiente seguro do Snowflake. A consulta SQL resultante é executada no seu warehouse virtual Snowflake.
Integração perfeita com os recursos de privacidade e governança do Snowflake. A integração respeita integralmente o controle de acesso baseado em funções (RBAC) do Snowflake. Todas as consultas executadas em nome de um usuário respeitam as permissões estabelecidas, garantindo que os usuários visualizem apenas os dados aos quais estão autorizados a acessar.
Configurar a integração¶
A integração do Cortex Agent com o Microsoft Teams permite que os administradores da organização conectem várias contas Snowflake aos espaços de trabalho do Teams e do Copilot em suas organizações. A configuração da integração envolve algumas etapas simples, resumidas abaixo:
Configuração em todo o locatário pelo administrador Azure. A integração requer uma configuração única por um administrador do Microsoft Azure para conceder consentimento para o aplicativo Snowflake dentro do Microsoft Entra ID (anteriormente Azure Active Directory). Esta etapa habilita a autenticação segura OAuth 2.0 para a integração.
Integração de segurança do Snowflake. Após o administrador do Azure concluir a configuração em todo o locatário, um administrador do Snowflake deve configurar uma integração de segurança para cada conta Snowflake individual que ele deseja conectar ao aplicativo Microsoft Teams ou M365 Copilot. Esta etapa garante que a integração consiga acessar com segurança os dados necessários em cada conta Snowflake.
Vinculação de contas ao bot. Após a configuração da integração de segurança, o administrador do Snowflake pode vincular a conta Snowflake ao bot do Microsoft Teams ou M365 Copilot. Esta etapa permite que o bot acesse os dados e as funcionalidades da conta Snowflake, possibilitando que os usuários interajam com seus dados diretamente no Teams ou no Copilot.
Pré-requisitos¶
Antes de iniciar o processo de integração, estabeleça o seguinte:
Acesso de administrador. A configuração exige acesso administrativo tanto no Snowflake quanto no seu locatário da Microsoft.
Região da conta Snowflake: sua conta Snowflake deve estar hospedada na região Azure East US 2. A Snowflake pretende oferecer suporte a mais regiões no futuro.
Privilégios administrativos do Snowflake: seu usuário Snowflake deve ter acesso à função ACCOUNTADMIN ou SECURITYADMIN. Essas permissões são necessárias para criar o objeto de integração de segurança necessário na sua conta Snowflake.
Privilégios administrativos da Microsoft: seu usuário do Azure deve ter privilégios de Administrador Global (ou função equivalente) para o seu locatário do Microsoft Entra ID. Esses privilégios são necessários para conceder o consentimento administrativo necessário para todo o locatário do aplicativo.
ID do locatário da Microsoft: você precisa do ID do locatário da Microsoft da sua organização para configurar a integração de segurança do Snowflake. Para obter mais informações sobre como encontrar o ID do locatário da sua organização, consulte Obter assinatura e IDs do locatário no portal do Azure.
Contas de usuário individuais: cada usuário final deve ter as próprias contas de usuário Microsoft e Snowflake.
Licenciamento de usuário final: os usuários devem ter as licenças Microsoft apropriadas para acessar o Microsoft Teams. Uma licença Copilot também é necessária se você planeja usar a integração com o Microsoft 365 Copilot.
Etapa 1: Configuração do Entra ID em todo o locatário¶
Para habilitar a autenticação segura para os Cortex Agents, um administrador do Microsoft Azure deve conceder consentimento para dois aplicativos hospedados no locatário do Snowflake, criando uma entidade de serviço para cada aplicativo dentro do seu locatário Entra ID. Os dois aplicativos são:
Cortex Agents Bot OAuth Resource: representa a API Snowflake protegida e define as permissões de acesso (escopos) para aplicativos cliente.
Cortex Agents Bot Snowflake OAuth Client: representa o aplicativo cliente, neste caso, o serviço de back-end do aplicativo Teams, que chama o Snowflake API após solicitar um token de acesso.
As instruções para conceder consentimento para esses aplicativos são fornecidas abaixo. O processo é muito semelhante para ambos os aplicativos, mas as permissões e os escopos específicos diferem ligeiramente.
Concessão de consentimento para a entidade do OAuth Resource¶
Para conceder consentimento para a entidade de serviço do aplicativo Cortex Agents Bot OAuth Resource:
No seu navegador, acesse
https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=5a840489-78db-4a42-8772-47be9d833efe, em quetenant-idé o ID do locatário da Microsoft da sua organização.Se você ainda não tiver se conectado, receberá uma solicitação para fazer isso.
A caixa de diálogo Permission requested é exibida, mostrando a permissão que o aplicativo exige.
Selecione Accept para conceder a permissão solicitada.
Concessão de consentimento para a entidade do OAuth Client¶
Esse processo exibe duas caixas de diálogo. Cada uma é semelhante à da entidade do OAuth Resource, mas as permissões solicitadas são diferentes.
Para conceder consentimento para a entidade de serviço do aplicativo Cortex Agents Bot Snowflake OAuth Client:
No seu navegador, acesse
https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=bfdfa2a2-bce5-4aee-ad3d-41ef70eb5086, em quetenant-idé o ID do locatário da Microsoft da sua organização.A caixa de diálogo Permissions requested (1 of 2) é exibida, mostrando um conjunto de permissões que o aplicativo exige.
Selecione Accept para conceder as permissões solicitadas.
A segunda caixa de diálogo de permissão é exibida (Permissions requested (2 of 2)).
Selecione Accept para conceder as permissões solicitadas.
Importante
Você pode ver uma mensagem de erro informando que um parâmetro de cadeia de caracteres de consulta necessário estava faltando, como a seguinte.
{
"error": {
"code": "ServiceError",
"message": "Missing required query string parameter: code. Url = https://unitedstates.token.botframework.com/.auth/web/redirect?admin_consent=True&tenant=<TENANT-ID>"
}
}
Você pode ignorar esse erro com segurança. O consentimento ainda foi concedido com sucesso. Para ter certeza, confirme se as permissões foram concedidas com sucesso seguindo as instruções na próxima seção.
Confirmação de concessões de permissões¶
Após conceder o consentimento para ambos os aplicativos, você pode confirmar se as permissões foram concedidas com sucesso verificando a seção Enterprise applications do portal Microsoft Entra ID.
Faça login no Centro de administração do Microsoft Entra se necessário.
Acesse Enterprise Applications digitando “enterprise applications” na caixa de pesquisa e selecione Enterprise applications nos resultados.
Na lista All applications, encontre os dois aplicativos para os quais você acabou de conceder o consentimento: Snowflake Cortex Agents Bot OAuth Resource e Snowflake Cortex Agents Bot OAuth Client. Uma maneira fácil de fazer isso é pesquisar por “Snowflake Cortex Agent”.
Se ambos os aplicativos aparecerem na lista, as permissões foram concedidas corretamente. Se um ou ambos os aplicativos estiverem ausentes, tente conceder o consentimento novamente.
Etapa 2: Integração de segurança do Snowflake¶
A integração do Snowflake com o Microsoft Teams requer uma integração de segurança que estabeleça confiança criptográfica entre sua conta Snowflake e seu locatário do Entra ID. Esse processo exige o seguinte:
Habilitação do Entra ID como um provedor OAuth externo no Snowflake.
Escolher ou criar pelo menos um objeto Cortex Agent para a integração.
Concessão de funções e privilégios necessários para que os usuários pretendidos possam invocar o agente.
Habilitação do Entra ID como um provedor OAuth externo¶
Um objeto de integração de segurança do Snowflake representa uma integração com um provedor OAuth externo, neste caso, o Microsoft Entra ID. Essa integração permite que o Snowflake autentique usuários conectados ao Microsoft Teams ou ao Copilot.
A instrução SQL a seguir é um modelo anotado para a criação da integração. Este comando deve ser executado por uma função com privilégios ACCOUNTADMIN. Substitua os espaços reservados tenant-id pelo ID do seu locatário da Microsoft.
CREATE OR REPLACE SECURITY INTEGRATION entra_id_cortex_agents_integration
TYPE = EXTERNAL_OAUTH
ENABLED = TRUE
EXTERNAL_OAUTH_TYPE = AZURE
EXTERNAL_OAUTH_ISSUER = 'https://login.microsoftonline.com/<tenant-id>/v2.0'
EXTERNAL_OAUTH_JWS_KEYS_URL = 'https://login.microsoftonline.com/<tenant-id>/discovery/v2.0/keys'
EXTERNAL_OAUTH_AUDIENCE_LIST = ('5a840489-78db-4a42-8772-47be9d833efe')
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = ('email', 'upn')
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'email_address'
EXTERNAL_OAUTH_ANY_ROLE_MODE = 'ENABLE'
Consulte CREATE SECURITY INTEGRATION (OAuth externo) para obter uma referência completa dos parâmetros disponíveis para esse comando.
Juntos, os parâmetros EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM e EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE vinculam uma identidade Entra ID a uma identidade Snowflake. Para que a autenticação seja bem-sucedida, o valor da declaração especificada em JWT deve corresponder exatamente ao valor do atributo especificado em um objeto de usuário no Snowflake. As duas configurações principais que o Snowflake recomenda são:
Mapeamento por nome principal do usuário (UPN): Defina o parâmetro EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM como “upm” e o parâmetro EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE como “LOGIN_NAME”.
Mapeamento por endereço de e-mail: Defina o parâmetro EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM como “email” e o parâmetro EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE como “EMAIL_ADDRESS”.
A instrução de exemplo acima usa a configuração de mapeamento de endereço de e-mail, mas também especifica UPN no parâmetro EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM, permitindo que você altere o método de mapeamento mudando apenas EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE.
A instrução de exemplo também habilita EXTERNAL_OAUTH_ANY_ROLE_MODE para que a função padrão do usuário seja usada.
Para obter mais informações sobre escopos OAuth, consulte Escopos.
Requisitos de provisionamento de usuários¶
Para garantir a autenticação bem-sucedida usando a configuração de mapeamento descrita anteriormente, certifique-se de que os seguintes requisitos sejam atendidos:
Existe um mapeamento rigoroso de um para um entre usuários do Entra ID e usuários do Snowflake. Designar ou criar um usuário Snowflake para cada usuário do Entra ID que utilizará a integração.
Cada usuário do Entra ID é mapeado para exatamente um usuário do Snowflake. Para mapeamento de e-mail, o e-mail primário do Entra ID deve corresponder exatamente ao EMAIL_ADDRESS do usuário Snowflake Para mapeamento de UPN, o UPN do Entra ID deve corresponder exatamente ao LOGIN_NAME do usuário Snowflake.
Para reduzir o esforço de administração manual, você tem a opção de configurar o provisionamento e desprovisionamento automático de usuários no Entra ID para Snowflake. Consulte Configuração do provisionamento automático.
Criação e configuração do Cortex Agents¶
Depois de criar a integração de segurança, certifique-se de que pelo menos um objeto do Cortex Agent exista em sua conta Snowflake para a integração com o Teams ou o Microsoft 365 Copilot para uso.
Se você já tem um agente de trabalho que deseja usar, nenhuma outra ação é necessária para esta etapa.
Para criar um novo agente, siga as instruções.
Nota
Se você já usa o Snowflake Intelligence e criou agentes para essa experiência, pode reutilizar esses agentes com a integração do Microsoft Teams com a integração do Microsoft 365 Copilot. Você não precisa recriá-los ou reconfigurá-los. Quaisquer alterações feitas em um agente (como instruções, ferramentas, objetos subjacentes ou privilégios) são imediatamente refletidas em todas as três interfaces.
Concessão dos privilégios necessários aos usuários¶
Certifique-se de que a função sob a qual a integração será executada (a função padrão de cada usuário ou funções secundárias permitidas) tenha as concessões descritas na seção de requisitos de controle de acesso.
Etapa 3: Configuração do aplicativo Teams e conexão de sua conta Snowflake¶
A etapa final do processo de integração é configurar o aplicativo Microsoft Teams e conectá-lo aos usuários Snowflake que o utilizarão. Para isso, você precisa concluir as seguintes tarefas:
Instalar o aplicativo Cortex Agents da loja do Teams
Conectar sua conta Snowflake ao aplicativo do Teams
Instalar o aplicativo da loja do Teams¶
Todos os usuários devem instalar o aplicativo Cortex Agents da loja do Microsoft Teams. Para instalar o aplicativo, pesquise «Snowflake Cortex Agents» na loja de aplicativos do Teams e clique em Add para instalar o aplicativo.
Nota
Dependendo das políticas do Microsoft Teams da sua organização, um administrador do Teams pode precisar aprovar o aplicativo antes que ele seja disponibilizado aos usuários. Consulte Visão geral do gerenciamento e governança de aplicativos no centro de administração do Teams para obter instruções.
Conectar sua conta Snowflake ao aplicativo do Teams¶
O primeiro usuário a interagir com o aplicativo Cortex Agents no Teams é solicitado a conectar a conta Snowflake dele ao aplicativo. Esse usuário deve ter a função ACCOUNTADMIN ou SECURITYADMIN no Snowflake para que esta etapa seja bem-sucedida.
Para redimensionar, a função padrão de cada usuário no Snowflake deve ter os privilégios necessários para acessar os objetos do agente, conforme descrito na Seção de requisitos de controle de acesso do tópico do Cortex Agents.
As integrações de segurança bloqueiam as principais funções administrativas do Snowflake por padrão. Portanto, você não pode usar funções administrativas como ACCOUNTADMIN como a função padrão para o usuário que vai configurar o bot do Teams. Para obter informações sobre essa restrição, consulte BLOCKED_ROLES_LIST no tópico CREATE SECURITY INTEGRATION.
O Snowflake recomenda que você crie uma função dedicada e não administrativa com as permissões necessárias e a defina como padrão para o usuário de configuração. Como alternativa, use o mecanismo SECONDARY ROLES para conceder as permissões adicionais sem alterar a função padrão primária do usuário, como segue:
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('ALL');
Para configurar o bot do Teams, siga estas etapas:
Clique em I’m the Snowflake administrator, abaixo do aviso informando que um administrador precisa configurar o Snowflake para o convite do Teams, para iniciar o processo.
Forneça o URL de sua conta Snowflake onde indicado, e selecione Connect Snowflake account.
Para encontrar o URL dessa conta, faça login no Snowsight e clique no seletor de contas no canto inferior esquerdo da página. A parte do nome do host do URL é exibida na parte superior do menu e está no formato
your-organization-your-account. O URL completo éyour-organization-your-account.snowflakecomputing.com.O assistente de configuração verifica se o URL leva a uma instância válida do Snowflake na região do Azure US East 2 e confirma se o usuário tem acesso a ela e os privilégios administrativos necessários.
Após a validação final da configuração, o aplicativo Teams será conectado à sua conta Snowflake e os agentes estarão pronto para uso.
Dica
Depois de conectar sua conta Snowflake ao aplicativo Cortex Teams, você poderá conectar outras contas Snowflake ao mesmo aplicativo fazendo login no aplicativo Teams com um usuário que tenha os privilégios necessários e emitindo o comando «adicionar nova conta» no chat.
Uso do Cortex Agents¶
Após a configuração da integração, o bot aparece na interface do Microsoft Teams, permitindo que seus usuários interajam com ele em um chat privado. Os usuários podem fazer perguntas em linguagem natural e o bot responde com respostas baseadas nos dados do Snowflake.
No Microsoft 365 Copilot, seus usuários podem interagir com os agentes no contexto de seus fluxos de trabalho mais amplos, fazendo perguntas e recebendo respostas sobre seus dados do Snowflake na interface do Copilot.
Feedback sobre as respostas (somente para equipes)¶
Os usuários podem fornecer feedback qualitativo sobre as respostas do agente diretamente na interface do Microsoft Teams (por exemplo, marcar uma resposta como útil ou não útil e, opcionalmente, adicionar um comentário). Os usuários também podem revisar o feedback que enviaram anteriormente. Para obter instruções, consulte Exibição do feedback do usuário para agentes.
Nota
O recurso de feedback está disponível apenas no Microsoft Teams e não tem suporte na experiência do Microsoft 365 Copilot.
Alternância entre contas e agentes¶
Você pode conectar vários contas Snowflake à integração. Cada conta conectada pode expor um ou mais Cortex Agents. Com as contas conectadas, os usuários podem alternar entre contas e agentes na UI do Teams com um único clique; não é necessário se autenticar novamente ou digitar novamente os detalhes da conexão. Alternar entre contas e agentes facilita a comparação de insights entre domínios empresariais (por exemplo, vendas vs. marketing), preservando o contexto de segurança de cada usuário.
Dica
Também é possível alternar entre agentes em uma conta por conversação (por exemplo, inserindo «escolha o agente») se preferir uma interação de comando em vez da UI.
Considerações de segurança¶
A integração do Cortex Agents para o Microsoft Teams foi projetada com a segurança em mente, aproveitando os recursos de segurança existentes do Snowflake e os recursos de autenticação do Microsoft Entra ID. A integração garante que os dados do usuário permaneçam seguros e que o acesso seja controlado pelo sistema de controle de acesso baseado em funções (RBAC) do Snowflake.
Fluxo de autenticação de ponta a ponta¶
Para entender as implicações de segurança do uso da integração do Cortex Agents para o Microsoft Teams, é importante entender o fluxo de autenticação de ponta a ponta. Esse processo envolve as seguintes etapas:
Interação do usuário: um usuário envia uma mensagem para o bot Snowflake Cortex Agents no Microsoft Teams.
Acionador de autenticação: o serviço de back-end do bot (o aplicativo «Cliente») inicia um fluxo OAuth 2.0, redirecionando o usuário para o Microsoft Entra ID.
Autenticação do usuário: o usuário entra na conta Microsoft com as credenciais corporativas, atendendo a todas as políticas de MFA ou acesso condicional aplicadas pelo locatário.
Emissão de token: o Entra ID fornece um código de autorização de curta duração. O back-end do bot troca esse código com segurança por um token de acesso JWT.
Chamada de API para o Snowflake: o back-end do bot chama a API Snowflake Cortex Agents, incluindo o token de acesso no cabeçalho
Authorization: Bearer.Validação do token Snowflake: o serviço Snowflake recebe a solicitação e valida o JWT em relação à política definida no objeto de integração de segurança do Snowflake.
Controle de acesso baseado em função¶
Como utiliza a API Cortex Agents sob uma função de usuário específica, a integração com o Teams executa solicitações dos Cortex Agents com os mesmos privilégios da função Snowflake designada pelo usuário. O agente herda todos os controles de governança de dados existentes, inclusive:
Controle de acesso baseado em função: o agente só pode acessar bancos de dados, esquemas, tabelas e warehouses que a função do usuário permite.
Políticas de mascaramento de dados: o agente respeita as políticas dinâmicas de mascaramento de dados, concedendo acesso somente quando permitido pela função do usuário.
Políticas de acesso em nível de linha: o agente aplica políticas de segurança em nível de linha.
O agente não pode ignorar nenhum controle de segurança do Snowflake existente, e os usuários não podem acessar dados que ainda não estejam autorizados a ver.
Limitações atuais¶
- O provedor de identidade OAuth deve ser Entra ID
A integração oferece suporte exclusivo ao Microsoft Entra ID como provedor de identidade para autenticação e exige um mapeamento direto um para um entre usuários do Entra ID e do Snowflake. Organizações que usam outro IdP primário (por exemplo, Okta ou outro provedor de SAML/OIDC) podem habilitar essa integração configurando a federação de identidade padrão entre esse provedor e o Microsoft Entra ID. Nesse modelo federado, o IdP principal manipula o login do usuário, depois o Entra ID emite o token final requerido pela integração.
- Dependência da função do usuário padrão
A funcionalidade da integração está vinculada à função padrão do Snowflake de cada usuário devido a uma restrição arquitetônica na API Cortex Agents, que determina as permissões de sessão com base no contexto da função estabelecida durante a autenticação. Portanto, a função padrão do usuário deve receber todos os privilégios necessários nos objetos subjacentes para que o agente funcione corretamente. Embora o recurso SECONDARY ROLES do Snowflake possa ajudar a ampliar o acesso aos dados, o contexto de execução principal é regido pela função padrão do usuário.
Solução de problemas¶
Se você encontrar problemas com a integração dos Cortex Agents para o Microsoft Teams, consulte as seções a seguir para obter possíveis soluções.
Problemas de privilégio e acesso¶
A função padrão do usuário deve ter os privilégios necessários para acessar os objetos usados ou acessados pelo agente. Mensagens de erro causadas por problemas de acesso geralmente incluem a frase «o objeto de banco de dados não existe ou não está autorizado».
A solução desses problemas envolve verificar se a função padrão do usuário está definida para uma função que tenha os privilégios necessários.
Configuração da função padrão¶
A primeira etapa na solução de problemas de acesso é verificar a configuração da função padrão do usuário. Para verificar esta configuração, use o comando DESCRIBE USER. Verifique a propriedade DEFAULT_ROLE na saída. Se a função padrão do usuário estiver incorreta, altere-a usando o comando ALTER USER.
ALTER USER <user_name> SET DEFAULT_ROLE = '<correct_role>';
Se alterar a função primária DEFAULT_ROLE do usuário não for viável, você pode usar o mecanismo de funções secundárias do Snowflake. Um usuário pode executar ações usando os privilégios combinados de suas funções primária e secundária ativa. Isso permite que você conceda uma função adicional específica de integração ao usuário sem alterar a função primária.
Para adicionar uma função secundária para a integração de Cortex Agents, use comandos SQL como os seguintes.
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('ALL');
Permissões necessárias¶
Certifique-se de que a função sob a qual a integração será executada (a função padrão de cada usuário ou funções secundárias permitidas) tenha as concessões descritas na seção de requisitos de controle de acesso.
Problemas de integração de segurança¶
Uma integração de segurança do Snowflake conecta o locatário do Microsoft Entra ID à conta Snowflake. Os problemas desta seção estão relacionados à integração de segurança.
Token de acesso OAuth inválido (código de erro 390303)¶
Este erro pode indicar que um ou mais valores de propriedade na integração de segurança estão incorretos, impedindo o Snowflake de validar o token de acesso recebido do Entra ID. Para corrigir isso, verifique os seguintes campos na integração de segurança. Em particular, verifique se o ID do locatário está correto nos URLs.
EXTERNAL_OAUTH_ISSUER: deve ser configurado para o URL correto do emissor do Entra ID, que está no formato
https://login.microsoftonline.com/tenant-id/v2.0, em quetenant-idé o ID de locatário da Microsoft de sua organização.EXTERNAL_OAUTH_JWS_KEYS_URL: deve ser definido como o URL correto das chaves JWS, que está no formato
https://login.microsoftonline.com/tenant-id/discovery/v2.0/keys, em quetenant-idé o ID de locatário da Microsoft da sua organização.EXTERNAL_OAUTH_AUDIENCE_LIST: deve incluir o público correto para o aplicativo Cortex Agents Bot OAuth Resource, que é o ID de aplicativo
5a840489-78db-4a42-8772-47be9d833efe.
Atualize os valores incorretos com o comando ALTER SECURITY INTEGRATION.
Nome de usuário ou senha incorretos (código de erro 390304)¶
Esta mensagem de erro indica uma incompatibilidade entre o identificador de usuário enviado pelo Entra ID e o registro do usuário correspondente no Snowflake, geralmente porque a identidade do usuário do Entra ID não mapeia exatamente para um usuário Snowflake. Isso pode ocorrer quando o usuário Snowflake não existe, quando o UPN ou endereço de e-mail mapeado está incorreto, ou quando o mapeamento é resolvido para vários usuários Snowflake (por exemplo, se o mapeamento for realizado usando um endereço de e-mail e vários usuários compartilharem o mesmo endereço).
A mensagem de erro inclui o UPN e o e-mail do usuário que tentou efetuar login. Use essas informações para verificar a configuração do usuário afetado usando o comando DESCRIBE USER. Certifique-se de que a propriedade NAME ou EMAIL do usuário corresponda ao valor da mesma propriedade no Entra ID para o usuário correspondente. Ao utilizar o mapeamento de endereços de e-mail, cada usuário na conta Snowflake que utilizará a integração deve ter um endereço de e-mail exclusivo.
Função não listada no token de acesso ou foi filtrada (código de erro 390317)¶
Esse erro ocorre quando o Snowflake não consegue designar uma função ao usuário com base nas informações do token de acesso OAuth. O token de acesso está configurado com o escopo session:role-any, que permite que o usuário assuma qualquer uma das funções designadas a ele no Snowflake. No entanto, a integração de segurança deve ser configurada explicitamente para permitir esse comportamento.
Use o comando DESCRIBE SECURITY INTEGRATION para verificar o valor da propriedade EXTERNAL_OAUTH_ANY_ROLE_MODE e, em seguida, altere-o para ENABLE ou ENABLE_FOR_LOGIN.
DESCRIBE SECURITY INTEGRATION entra_id_cortex_agents_integration;
ALTER SECURITY INTEGRATION entra_id_cortex_agents_integration
SET EXTERNAL_OAUTH_ANY_ROLE_MODE = 'ENABLE';
A função especificada na cadeia de conexão não foi concedida a este usuário (código de erro 390186)¶
Este erro ocorre quando a integração de segurança do Snowflake não permite que a função padrão do usuário utilize a integração.
Para resolver isso, verifique as seguintes propriedades na saída de DESCRIBE SECURITY INTEGRATION:
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST: Se o parâmetro estiver habilitado, verifique se ele contém a função padrão do usuário.
EXTERNAL_OAUTH_BLOCKED_ROLES_LIST: Se o parâmetro estiver habilitado, verifique se ele não contém a função padrão do usuário.