Cortex Agents pour Microsoft Teams et Microsoft 365 Copilot¶
Introduction¶
Pour la plupart des équipes, accéder à des informations pertinentes en temps opportun implique de passer d’une plateforme d’analyse dédiée à un outil de communication, ce qui entraîne des retards et une baisse de productivité. L’intégration d’un système AI agentique dans Microsoft Teams peut apporter les réponses directement à l’endroit où les conversations et les décisions se produisent, accélérant ainsi le flux d’informations dans votre entreprise. Mais mettre en place une solution d’analyse sécurisée, intégrée au chat, à la fois puissante et intuitive, représente un défi de taille. Heureusement, Snowflake en a créé une pour vous.
L’intégration Snowflake Cortex Agents pour Microsoft Teams et Microsoft 365 Copilot intègre les agents AI conversationnels de Snowflake sur votre plateforme de communication professionnelle. Les équipes commerciales et les utilisateurs non techniciens peuvent interagir avec leurs données structurées et non-structurées Snowflake à l’aide d’un langage simple et naturel, et obtenir des réponses directes et des visualisations sans quitter leurs chats Teams ou l’écosystème Microsoft 365 au sens large. L’intégration est disponible via `Microsoft AppSource<https://appsource.microsoft.com/en-us/product/Office365/WA200008996>`_ pour un déploiement fluide.
Fonctionnalités clés¶
Analyses transparentes via le langage naturel. Réjouissez les décideurs de votre entreprise en leur permettant d’obtenir eux-mêmes des informations dans les interfaces Microsoft Teams et Microsoft 365 Copilot. Vous pouvez découvrir des tendances et analyser des données sans expertise technique ni attendre la création d’un tableau de bord personnalisé. Les utilisateurs peuvent poser des questions de manière conversationnelle et recevoir des réponses précises et alimentées par un LLM, sous forme de texte, de tableau ou de graphique à la volée, ce qui accélère considérablement la prise de décision basée sur les données.
Interfaces doubles pour des flux de travail complets. Les Cortex Agents pour Microsoft Teams proposent deux interfaces distinctes pour prendre en charge différents besoins commerciaux. Utilisez l’application Teams standard pour une analyse approfondie et dédiée dans le cadre d’une conversation avec l’application chat Teams Bot, ou tirez parti de Microsoft 365 Copilot Agent pour intégrer des informations Snowflake ciblées dans votre flux de travail conversationnel plus large au sein de l’écosystème Microsoft 365 Copilot.
Alimentée par les Snowflake Cortex Agents. Cette intégration est alimentée par l’API Snowflake Cortex Agents, qui prend en charge les complexités de la génération d’informations précises et fiables à partir de vos données. Le système agentique interprète intelligemment les requêtes des utilisateurs et génère des réponses, évitant ainsi à vos équipes d’avoir à développer des modèles d’AI conversationnels complexes ou à gérer des modèles sous-jacents. Vous pouvez réutiliser les mêmes agents que ceux que vous utilisez avec Snowflake Intelligence, afin d’éviter une duplication de la configuration et des efforts de gouvernance.
Sécurité et gouvernance de niveau entreprise. Construite sur la base de confidentialité de Snowflake, l’intégration vous permet d’explorer en toute confiance les cas d’utilisation axés sur l’AI. Cela signifie que :
Vos données restent dans les limites de gouvernance de Snowflake. Les invites des utilisateurs sont envoyées à l’API Cortex Agents, mais les données sous-jacentes interrogées pour générer une réponse ne quittent jamais l’environnement sécurisé de Snowflake. La requête SQL qui en résulte est exécutée dans votre entrepôt virtuel Snowflake.
Intégration transparente avec les fonctionnalités de confidentialité et de gouvernance de Snowflake. L’intégration respecte pleinement le contrôle d’accès basé sur les rôles de Snowflake (RBAC). Toutes les requêtes exécutées pour le compte d’un utilisateur respectent ses autorisations établies, ce qui garantit que les utilisateurs ne peuvent voir que les données auxquelles ils sont autorisés à accéder.
Configurer l’intégration¶
L’intégration Microsoft Teams de Cortex Agent permet aux administrateurs d’organisation de connecter plusieurs comptes Snowflake aux espaces de travail Teams et Copilot de leur organisation. La configuration de l’intégration nécessite quelques étapes simples, résumées ci-dessous :
Configuration à l’échelle du client par l’administrateur Azure. L’intégration nécessite une configuration unique par un administrateur Microsoft Azure pour accorder l’autorisation à l’application Snowflake dans le client Microsoft Entra ID (anciennement Azure Active Directory). Cette étape active l’authentification sécurisé OAuth 2.0 pour l’intégration.
Intégration de sécurité Snowflake. Une fois que l’administrateur Azure a terminé la configuration à l’échelle du client, un administrateur Snowflake doit configurer une intégration de sécurité pour chaque compte Snowflake individuel qu’il souhaite se connecter à l’application Microsoft Teams ou à M365 Copilot. Cette étape garantit que l’intégration peut accéder en toute sécurité aux données nécessaires dans chaque compte Snowflake.
Liaison des comptes au bot. Une fois l’intégration de sécurité configurée, l’administrateur Snowflake peut lier le compte Snowflake au bot Microsoft Teams ou à celui de M365 Copilot. Cette étape permet au bot d’accéder aux données et aux fonctionnalités du compte Snowflake, ce qui permet aux utilisateurs d’interagir directement avec leurs données dans Teams ou Copilot.
Conditions préalables¶
Avant de commencer le processus d’intégration, assurez-vous d’avoir mis en place les éléments suivants :
Accès administrateur. La configuration nécessite un accès administratif à la fois sur Snowflake et sur votre client Microsoft.
Région du compte Snowflake : votre compte Snowflake doit être hébergé dans la région Azure US Est 2. Snowflake a l’intention de prendre en charge davantage de régions à l’avenir.
Privilèges administratifs Snowflake : votre utilisateur Snowflake doit avoir accès au rôle ACCOUNTADMIN ou SECURITYADMIN. Ces autorisations sont nécessaires pour créer l’objet d’intégration de sécurité nécessaire dans votre compte Snowflake.
Privilèges d’administrateur Microsoft : votre utilisateur Azure doit disposer des privilèges d’administrateur global (ou un rôle équivalent) pour votre client ID Microsoft Entra. Ces privilèges sont nécessaires pour accorder le consentement administratif requis à l’échelle du client pour l’application.
ID client Microsoft : vous avez besoin de l’ID client Microsoft de votre organisation pour configurer l’intégration de sécurité Snowflake. Pour plus d’informations sur la recherche de l’ID client de votre organisation, voir Trouver l’abonnement et les IDs client dans le portail Azure.
Comptes d’utilisateur individuels : chaque utilisateur final doit avoir ses propres comptes d’utilisateur Microsoft et Snowflake.
Limitation de l’utilisateur final : les utilisateurs doivent disposer des licences Microsoft appropriées pour accéder à Microsoft Teams. Une licence Copilot est également nécessaire si vous prévoyez d’utiliser l’intégration avec Microsoft 365 Copilot.
Étape 1 : Configuration de l’ID Entra à l’échelle du client¶
Pour activer l’authentification sécurisée pour les Cortex Agents, un administrateur Microsoft Azure doit donner son accord pour deux applications hébergées dans le client Snowflake, en créant un principal de service pour chaque application de votre client ID Entra. Les deux applications sont les suivantes :
Ressource OAuth du bot Cortex Agents : représente l’API Snowflake protégée et définissent les autorisations d’accès (champs d’application) pour les applications clientes.
Client OAuth Snowflake du Bot Cortex Agents : représente l’application cliente, dans ce cas le service back-end de l’application Teams, qui appelle l’API Snowflake après avoir demandé un jeton d’accès.
Les instructions pour donner son accord à ces demandes sont fournies ci-dessous. Le processus est très similaire pour les deux applications, mais les autorisations et les champs d’application spécifiques diffèrent légèrement.
Donner son accord pour le principal de ressource OAuth¶
Pour donner votre accord au principal de service de l’application de ressource OAuth du Bot Cortex Agents :
Dans votre navigateur, accédez à
https://login.microsoftonline.com/<id-client>/adminconsent?client_id=5a840489-78db-4a42-8772-47be9d833efe, oùtenant-idest le client Microsoft de votre organisation ID.Si vous n’êtes pas encore connecté, vous serez invité à le faire.
Une boîte de dialogue Permission requested apparaît, indiquant l’autorisation dont l’application a besoin.
Sélectionner Accept pour accorder l’autorisation demandée.
Donner son accord pour le principal du client OAuth¶
Ce processus affiche deux boîtes de dialogue. Chacun est similaire à celui de le principal de ressource OAuth, mais les autorisations demandées sont différentes.
Pour donner votre accord au principal de service de l’application client OAuth Snowflake du Bot Cortex Agents :
Dans votre navigateur, accédez à
https://login.microsoftonline.com/<id-client>/adminconsent?client_id=bfdfa2a2-bce5-4aee-ad3d-41ef70eb5086, oùtenant-idest le client Microsoft de votre organisation ID.Une boîte de dialogue Permissions requested (1 of 2) apparaît, montrant un ensemble d’autorisations dont l’application a besoin.
Sélectionner Accept pour accorder les autorisations demandées.
La deuxième boîte de dialogue d’autorisation apparaît (Permissions requested (2 of 2)).
Sélectionner Accept pour accorder les autorisations demandées.
Important
Vous pouvez voir un message d’erreur indiquant qu’un paramètre de chaîne de requête requis était manquant, comme ce qui suit.
{
"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>"
}
}
Vous pouvez ignorer cette erreur en toute sécurité. L’accord a encore été donné avec succès. Pour en être sûr, confirmez que les autorisations ont été accordées en suivant les instructions de la section suivante.
Confirmation des accords d’autorisations¶
Après avoir accordé le consentement pour les deux applications, vous pouvez confirmer que les autorisations ont été accordées correctement en vérifiant la section Enterprise applications du portail ID Microsoft Entra.
Connectez-vous au Centre d’administration Microsoft Entra si nécessaire.
Naviguez jusqu’aux applications d’entreprise en saisissant « applications d’entreprise » dans le champ de recherche, puis en sélectionnant Enterprise applications dans les résultats.
Dans la liste All applications, cherchez les deux applications pour lesquelles vous venez de donner votre accord : Ressource OAuth du Bot Snowflake Cortex Agents et Client OAuth du Bot Snowflake Cortex Agents. Un moyen simple de le faire est de rechercher « Snowflake Cortex Agent ».
Si les deux applications apparaissent dans la liste, les autorisations ont été correctement accordées. S’il manque l’une ou les deux applications, essayez à nouveau de donner votre accord.
Étape 2 : Intégration de sécurité Snowflake¶
L’intégration de Snowflake avec Microsoft Teams requiert une intégration de sécurité qui établit une confiance cryptographique entre votre compte Snowflake et votre client Entra ID. Ce processus nécessite :
L’activation de l’ID Entra en tant que fournisseur OAuth externe dans Snowflake.
La sélection ou la création d’au moins un objet d’Agent Cortex pour l’intégration.
L’attribution des rôles et des privilèges nécessaires afin que les utilisateurs prévus puissent invoquer l’agent.
L’activation de l’ID Entra en tant que fournisseur OAuth externe¶
Un objet d’intégration de sécurité Snowflake représente une intégration avec un fournisseur OAuth externe, en l’occurrence l’ID Microsoft Entra. Cette intégration permet à Snowflake d’authentifier les utilisateurs qui sont connectés à Microsoft Teams ou Copilot.
L’instruction SQL qui suit est un modèle annoté pour la création de l’intégration. Cette commande doit être exécutée par un rôle doté de privilèges ACCOUNTADMIN. Remplacer les espaces tenant-id réservés avec votre ID client 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'
Voir CREATE SECURITY INTEGRATION (External OAuth) pour une référence complète des paramètres disponibles pour cette commande.
Ensemble, les paramètres EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM et EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE lient une identité ID Entra avec une identité Snowflake. Pour que l’authentification réussisse, la valeur de la demande spécifiée dans le JWT doit correspondre exactement à la valeur de l’attribut spécifié sur un objet utilisateur dans Snowflake. Les deux principales configurations recommandées par Snowflake sont les suivantes :
Mappage par nom d’utilisateur principal (UPN) : Définissez le paramètre EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM sur “upn” et le paramètre EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE sur “LOGIN_NAME”.
Mappage par adresse e-mail : Définissez le paramètre EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM sur “email” et le paramètre EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE sur “EMAIL_ADDRESS”.
L’exemple d’instruction ci-dessus utilise la configuration de mappage des adresses e-mail, mais spécifie également l’UPN dans le paramètre EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM, ce qui vous permet de modifier la méthode de mappage en modifiant uniquement le EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE.
L’instruction d’exemple permet également d’effectuer des EXTERNAL_OAUTH_ANY_ROLE_MODE, de sorte que le rôle par défaut de l’utilisateur soit utilisé.
Pour plus d’informations sur les champs d’application OAuth, voir Champs d’application.
Exigences en matière d’approvisionnement des utilisateurs¶
Pour garantir une authentification réussie à l’aide de la configuration de mappage décrite précédemment, assurez-vous que les conditions suivantes sont remplies :
Un mappage strict de un à un existe entre les utilisateurs Entra ID et les utilisateurs Snowflake. Désignez ou créez un utilisateur Snowflake pour chaque utilisateur Entra ID qui utilisera l’intégration.
Chaque utilisateur Entra ID correspond à un seul utilisateur Snowflake. Pour le mappage des e-mails, l’e-mail principal Entra ID doit correspondre exactement à l’EMAIL_ADDRESS de l’utilisateur Snowflake. Pour le mappage UPN, le UPN Entra ID doit correspondre exactement au LOGIN_NAME de l’utilisateur.
Pour réduire l’effort d’administration manuelle, vous pouvez éventuellement configurer l’approvisionnement et le désapprovisionnement automatiques des utilisateurs à partir d’Entra ID vers Snowflake. Consultez Configurer l’approvisionnement automatique.
Créer et configurer les Agents Cortex¶
Après avoir créé l’intégration de sécurité, assurez-vous qu’au moins un objet d’Agent Cortex existe dans votre compte Snowflake pour l’intégration Teams ou Microsoft 365 Copilot à utiliser.
Si vous disposez déjà d’un agent fonctionnel que vous souhaitez utiliser, aucune action supplémentaire n’est requise pour cette étape.
Pour créer un nouvel agent, suivez les instructions.
Note
Si vous utilisez déjà Snowflake Intelligence et que vous avez créé des agents pour cette expérience, vous pouvez réutiliser ces agents avec l’intégration Microsoft Teams et Microsoft 365 Copilot. Vous n’avez pas besoin de les recréer ou de les reconfigurer ; toutes les modifications que vous apportez à un agent (telles que les instructions, les outils, les objets sous-jacents ou les privilèges) sont immédiatement répercutées sur les trois interfaces.
Accorder les privilèges requis aux utilisateurs¶
Assurez-vous que le rôle sous lequel l’intégration sera exécutée (le rôle par défaut de chaque utilisateur ou les rôles secondaires autorisés) dispose des accords décrits dans la section Exigences en matière de contrôle d’accès.
Étape 3 : Configuration de l’application Teams et connexion à votre compte Snowflake¶
La dernière étape du processus d’intégration consiste à configurer l’application Microsoft Teams et à la connecter aux utilisateurs de Snowflake qui l’utiliseront. Cela vous oblige à effectuer les tâches suivantes :
Installez l’application Cortex Agents depuis Teams Store
Connectez votre compte Snowflake à l’application Teams
Installez l’application depuis Teams Store¶
Tous les utilisateurs doivent installer l’application Cortex Agents à partir de Microsoft Teams Store. Pour installer l’application, recherchez « Snowflake Cortex Agents » dans Teams Store, puis cliquez sur Add pour installer l’application.
Note
Selon les politiques Microsoft Teams de votre organisation, un administrateur Teams peut avoir besoin d’approuver l’application avant qu’elle ne soit disponible pour les utilisateurs. Voir Vue d’ensemble de la gestion et de la gouvernance des applications dans le centre d’administration Teams pour obtenir des instructions.
Connecter votre compte Snowflake à l’application Teams¶
Le premier utilisateur qui interagit avec l’application Cortex Agents dans Teams est invité à connecter son compte Snowflake à l’application. Cet utilisateur doit disposer du rôle ACCOUNTADMIN ou SECURITYADMIN dans Snowflake pour passer cette étape.
Pour récapituler, le rôle par défaut de chaque utilisateur dans Snowflake doit disposer des privilèges requis pour accéder aux objets de l’agent, comme décrit dans la section Exigences en matière de contrôle d’accès de la rubrique Agents Cortex.
Les intégrations de sécurité bloquent par défaut les rôles administratifs principaux de Snowflake. Par conséquent, vous ne pouvez pas utiliser des rôles administratifs tels que ACCOUNTADMIN comme rôle par défaut pour l’utilisateur qui configurera le bot Teams. Pour plus d’informations sur cette restriction, voir BLOCKED_ROLES_LIST dans la rubrique CREATE SECURITY INTEGRATION.
Snowflake vous recommande de créer un rôle dédié, non administratif, avec les autorisations requises et de le définir par défaut pour l’utilisateur en charge de la configuration. Vous pouvez également utiliser le mécanisme :doc:` SECONDARY ROLES </sql-reference/sql/use-secondary-roles>` pour accorder les autorisations supplémentaires, sans modifier le rôle principal par défaut de l’utilisateur, comme suit :
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('ALL');
Pour configurer le bot Teams, suivez les étapes suivantes :
Cliquez sur I’m the Snowflake administrator, sous l’avertissement indiquant qu’un administrateur doit configurer Snowflake pour l’exécution Teams, pour démarrer le processus.
Indiquez l’URL de votre compte Snowflake à l’endroit approprié, puis sélectionnez Connect Snowflake account.
Pour trouver cette URL, connectez-vous à Snowsight et cliquez sur le sélecteur de compte dans le coin inférieur gauche de la page. La partie nom d’hôte de l’URL s’affiche en haut du menu et se présente sous le format
your-organization-your-account. L’URL complète estyour-organization-your-account.snowflakecomputing.com.L’assistant de configuration vérifie que l’URL conduit à une instance de Snowflake valide dans la Région Est 2 Azure US et confirme que votre utilisateur y a accès tout en disposant des privilèges administratifs requis.
Une fois la configuration validée, l’application Teams est connectée à votre compte Snowflake et les agents sont prêts à être utilisés.
Astuce
Une fois votre compte Snowflake connecté à l’application Cortex Teams, vous pouvez connecter d’autres comptes Snowflake à la même application en vous connectant à l’application Teams avec un utilisateur disposant des privilèges nécessaires et en exécutant la commande « ajouter un nouveau compte » dans le chat.
Utiliser les Agents Cortex¶
Une fois l’intégration configurée, le bot apparaît dans l’interface Microsoft Teams, ce qui permet à vos utilisateurs d’interagir avec lui dans un chat privé. Les utilisateurs peuvent poser des questions dans un langage naturel et le bot répond avec des réponses basées sur les données Snowflake.
Dans Microsoft 365 Copilot, vos utilisateurs peuvent interagir avec les agents dans le contexte de leurs flux de travail plus larges, poser des questions et recevoir des réponses sur leurs données Snowflake dans l’interface Copilot.
Commentaires sur les réponses (Teams uniquement)¶
Les utilisateurs peuvent fournir des commentaires qualitatifs sur les réponses des agents directement dans l’interface Microsoft Teams (par exemple, marquer une réponse comme utile ou inutile et ajouter éventuellement un commentaire). Les utilisateurs peuvent également examiner les commentaires qu’ils ont précédemment soumis. Pour obtenir des instructions, voir Voir les commentaires des utilisateurs pour les agents.
Note
La fonctionnalité de commentaires n’est disponible que dans Microsoft Teams et n’est pas prise en charge dans l’expérience Microsoft 365 Copilot.
Basculer entre les comptes et les agents¶
Vous pouvez connecter plusieurs comptes Snowflake à l’intégration. Chaque compte connecté peut exposer un ou plusieurs Agents Cortex. Une fois les comptes connectés, les utilisateurs peuvent basculer entre les comptes et les agents dans l’UI de Teams en un seul clic ; il n’est pas nécessaire de s’authentifier ou de saisir à nouveau les détails de la connexion. Le basculement entre les comptes et les agents facilite la comparaison des insights entre les domaines commerciaux (par exemple, les ventes et le marketing), tout en préservant le contexte de sécurité de chaque utilisateur.
Astuce
Vous pouvez également basculer entre les agents d’un compte de manière conversationnelle (par exemple, en saisissant « choisir agent ») si vous préférez utiliser une interaction de commande à la place de l’UI.
Remarques relatives à la sécurité¶
L’intégration Cortex Agents pour Microsoft Teams est conçue dans un souci de sécurité, en tirant parti des fonctions de sécurité existantes de Snowflake et de Capacités d’authentification de l’ID Microsoft Entra. L’intégration garantit que les données des utilisateurs restent sécurisées et que l’accès est contrôlé par le contrôle d’accès basé sur les rôles du système (RBAC) de Snowflake.
Flux d’authentification de bout en bout¶
Pour comprendre les implications en matière de sécurité liées à l’utilisation de l’intégration Cortex Agents pour Microsoft Teams, il est important de comprendre le flux d’authentification de bout en bout. Ce processus comprend les étapes suivantes :
Interaction utilisateur : un utilisateur envoie un message au bot Snowflake Cortex Agents dans Microsoft Teams.
Déclencheur d’authentification : le service backend du bot (l’application « client ») lance un flux OAuth 2.0, qui redirige l’utilisateur vers l’ID Microsoft Entra.
Authentification de l’utilisateur : l’utilisateur se connecte à son compte Microsoft avec ses identifiants de connexion d’entreprise, ce qui satisfait chaque MFA ou les politiques d’accès conditionnel appliquées par leur client.
Émission de jetons : l’ID Entra fournit un code d’autorisation de courte durée. Le backend du bot échange ce code en toute sécurité contre un jeton d’accès JWT.
Appel API vers Snowflake : le back-end du bot appelle l’API Snowflake Cortex Agents, en incluant le jeton d’accès dans l’en-tête
Authorization: Bearer.Validation du jeton Snowflake : le service Snowflake reçoit la requête et valide le JWT conformément à la politique définie dans l’objet d’intégration de sécurité Snowflake.
Contrôle d’accès basé sur les rôles¶
Parce qu’il utilise l’API Cortex Agents sous un rôle d’utilisateur spécifique, l’intégration Teams exécute les requêtes des agents Cortex avec les privilèges exacts du rôle Snowflake désigné pour l’utilisateur. L’agent hérite de tous les contrôles existants de la gouvernance des données, y compris :
Contrôle d’accès basé sur les rôles : l’agent ne peut accéder qu’aux bases de données, schémas, tables et entrepôts que le rôle de l’utilisateur lui permet d’utiliser.
Politiques de masquage des données : l’agent respecte les politiques de masquage dynamique des données et n’accorde l’accès que lorsque le rôle de l’utilisateur l’autorise.
Politiques d’accès au niveau des lignes : l’agent applique des politiques de sécurité au niveau des lignes.
L’agent ne peut contourner aucun contrôle de sécurité Snowflake existant et les utilisateurs ne peuvent pas accéder aux données qu’ils ne sont pas déjà autorisés à voir.
Limites actuelles¶
- Le fournisseur d’identité OAuth doit être l’ID Entra
L’intégration prend exclusivement en charge l’ID Microsoft Entra comme fournisseur d’identité pour l’authentification et nécessite un mappage direct une à une entre les utilisateurs ID Entra et les utilisateurs Snowflake. Les organisations qui utilisent un autre IdP principal (par exemple, Okta ou un autre fournisseur SAML/OIDC) peuvent activer cette intégration en configurant la fédération d’identité standard entre ce fournisseur et Microsoft Entra ID. Dans ce modèle fédéré, l’IdP principal gère la connexion de l’utilisateur, après quoi Entra ID émet le dernier jeton requis par l’intégration.
- Dépendance par défaut au rôle utilisateur
La fonctionnalité de l’intégration est liée au rôle Snowflake par défaut de chaque utilisateur en raison d’une contrainte architecturale de l’API Cortex Agents, qui détermine les autorisations de session en fonction du contexte de rôle établi lors de l’authentification. Par conséquent, le rôle par défaut de l’utilisateur doit se voir accorder tous les privilèges nécessaires sur les objets sous-jacents pour que l’agent fonctionne correctement. Alors que la fonctionnalité SECONDARY ROLES de Snowflake peut aider à élargir l’accès aux données, le contexte d’exécution principal est régi par le rôle par défaut de l’utilisateur.
Résolution des problèmes¶
Si vous rencontrez des problèmes avec l’intégration des Agents Cortex pour Microsoft Teams, consultez les sections ci-dessous pour connaître les solutions possibles.
Problèmes de privilège et d’accès¶
Le rôle par défaut de l’utilisateur doit disposer des privilèges requis pour accéder aux objets utilisés par l’agent ou auxquels il accède. Les messages d’erreur causés par des problèmes d’accès comprennent généralement la phrase « l’objet de la base de données n’existe pas ou n’est pas autorisé ».
Le dépannage de ces problèmes implique de vérifier que le rôle par défaut de l’utilisateur est défini sur un rôle qui dispose des privilèges requis.
Paramètre de rôle par défaut¶
La première étape de la résolution des problèmes d’accès consiste à vérifier le paramètre de rôle par défaut de l’utilisateur. Pour vérifier ce paramètre, utilisez la commande DESCRIBE USER. Vérifiez la propriété DEFAULT_ROLE dans la sortie. Si le rôle par défaut de l’utilisateur est incorrect, modifiez-le à l’aide de la commande ALTER USER.
ALTER USER <user_name> SET DEFAULT_ROLE = '<correct_role>';
Si le rôle principal DEFAULT_ROLE de l’utilisateur n’est pas réalisable, vous pouvez utiliser le mécanisme de rôles secondaires de Snowflake. Un utilisateur peut effectuer des actions en utilisant les privilèges combinés de ses rôles primaire et secondaire actif. Cela vous permet d’attribuer un rôle supplémentaire spécifique à l’intégration à l’utilisateur sans modifier son rôle principal.
Pour ajouter un rôle secondaire à l’intégration Cortex Agents, utilisez les commandes SQL comme les suivantes.
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('ALL');
Autorisations requises¶
Assurez-vous que le rôle sous lequel l’intégration sera exécutée (le rôle par défaut de chaque utilisateur ou les rôles secondaires autorisés) dispose des accords décrits dans la section Exigences en matière de contrôle d’accès.
Problèmes d’ntégration de sécurité¶
Une intégration de sécurité Snowflake connecte le client Microsoft Entra ID vers le compte Snowflake. Les problèmes de cette section sont liés à l’intégration de la sécurité.
Jeton d’accès OAuth non valide (code d’erreur 390303)¶
Cette erreur peut indiquer qu’une ou plusieurs valeurs de propriété dans l’intégration de sécurité sont incorrectes, ce qui empêche Snowflake de valider le jeton d’accès reçu de Entra ID. Pour y remédier, vérifiez les champs suivants dans l’intégration de sécurité. En particulier, assurez-vous que le client ID est correct dans le URLs.
EXTERNAL_OAUTH_ISSUER : doit être réglé sur la bonne URL émettrice Entra ID, qui est au format
https://login.microsoftonline.com/tenant-id/v2.0, oùtenant-idest l’ID client Microsoft de votre organisation.EXTERNAL_OAUTH_JWS_KEYS_URL : doit être réglé sur la bonne URL de clés JWS, qui est au format
https://login.microsoftonline.com/tenant-id/discovery/v2.0/keys, oùtenant-idest l’ID client Microsoft de votre organisation.EXTERNAL_OAUTH_AUDIENCE_LIST : doit inclure l’audience correcte pour le bot de l’application de ressources OAuth Cortex Agents, qui est l’application ID
5a840489-78db-4a42-8772-47be9d833efe.
Mettre à jour les valeurs incorrectes à l’aide de la commande ALTER SECURITY INTEGRATION.
Nom d’utilisateur ou mot de passe incorrect (code d’erreur 390304)¶
Ce message d’erreur indique une erreur entre l’identificateur de l’utilisateur envoyé par Entra ID et l’enregistrement de l’utilisateur correspondant dans Snowflake, généralement car l’identité de l’utilisateur Entra ID ne correspond pas exactement à un utilisateur de Snowflake. Cela peut se produire lorsque l’utilisateur Snowflake n’existe pas, lorsque l’UPN mappé ou l’adresse e-mail est incorrecte, ou lorsque le mappage se résout en plusieurs utilisateurs Snowflake (par exemple, si le mappage est effectué en utilisant une adresse e-mail et que plusieurs utilisateurs partagent la même adresse).
Le message d’erreur comprend l’UPN et l’e-mail de l’utilisateur qui tente de se connecter. Utilisez ces informations pour vérifier la configuration de l’utilisateur concerné à l’aide de la commande DESCRIBE USER. Assurez-vous que la propriété NAME ou EMAIL de l’utilisateur correspond à la valeur de la même propriété dans l’ID Entra pour l’utilisateur correspondant. Lors de l’utilisation du mappage d’adresses e-mail, chaque utilisateur du compte Snowflake qui utilisera l’intégration doit avoir une adresse e-mail unique.
Rôle non répertorié dans le jeton d’accès ou filtré (code d’erreur 390317)¶
Cette erreur se produit lorsque Snowflake ne peut pas attribuer un rôle à l’utilisateur sur la base des informations contenues dans le jeton d’accès OAuth. Le jeton d’accès est configuré avec le champ d’application session:role-any, qui permet à l’utilisateur d’assumer n’importe lequel des rôles qui lui sont assignés dans Snowflake. Toutefois, l’intégration de sécurité doit être explicitement configurée pour autoriser ce comportement.
Utilisez la commande DESCRIBE SECURITY INTEGRATION pour vérifier la valeur de la propriété EXTERNAL_OAUTH_ANY_ROLE_MODE, puis remplacez-la par 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';
Le rôle spécifié dans la chaîne de connexion n’est pas attribué à cet utilisateur (code d’erreur 390186)¶
Cette erreur se produit lorsque l’intégration de sécurité Snowflake n’autorise pas le rôle par défaut de l’utilisateur à utiliser l’intégration de sécurité.
Pour résoudre ce problème, vérifiez les propriétés suivantes dans la sortie de DESCRIBE SECURITY INTEGRATION :
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST : Si le paramètre est activé, vérifiez qu’il contient le rôle par défaut de l’utilisateur.
EXTERNAL_OAUTH_BLOCKED_ROLES_LIST : Si le paramètre est activé, vérifiez qu’il ne contient pas le rôle par défaut de l’utilisateur.