Cortex Agents für Microsoft Teams und Microsoft 365 Copilot¶
Einführung¶
Für die meisten Teams bedeutet der Zugriff auf aktuelle Dateneinblicke einen Kontextwechsel zwischen dedizierten Analyseplattformen und Kommunikationstools, was zu Verzögerungen und geringerer Produktivität führt. Die Integration eines agentenbasierten AI-Systems in Microsoft Teams kann die Antworten direkt dorthin bringen, wo Konversationen stattfinden und Entscheidungen getroffen werden, und so den Informationsfluss in Ihrem Unternehmen beschleunigen. Der Aufbau einer sicheren Analyselösung direkt im Chat, die sowohl leistungsfähig als auch intuitiv ist, ist jedoch ein beträchtliches Unterfangen. Glücklicherweise hat Snowflake eine Lösung für Sie erstellt.
Die Snowflake Cortex Agents-Integration für Microsoft Teams und Microsoft 365 Copilot bettet die konversationsfähigen AI-Agenten von Snowflake in Ihre Geschäftskommunikationsplattform ein. Geschäftsteams und technisch nicht versierte Benutzer können mit ihren strukturierten Snowflake-Daten über einfache, natürliche Sprache interagieren und erhalten direkte Antworten und Visualisierungen, ohne ihre Teams-Chats oder Microsoft 365 im weiteren Sinne verlassen zu müssen. Die Integration ist über Microsoft AppSource für eine nahtlose Bereitstellung verfügbar.
Wichtige Funktionen¶
Nahtlose Analysen über natürliche Sprache. Begeistern Sie die Geschäftsleitung bei Geschäftsentscheidungen mit sofortigen Einblicken über die Microsoft Teams- und Microsoft 365 Copilot-Schnittstellen. Benutzer können im Dialog Fragen stellen und erhalten umgehend genaue, LLM-gestützte Antworten in Text-, Tabellen- oder Diagrammform, was die datengesteuerte Entscheidungsfindung erheblich beschleunigt.
Doppelte Schnittstellen für umfassende Workflows. Cortex Agents für Microsoft Teams bieten zwei Schnittstellen für unterschiedliche Geschäftsanforderungen. Verwenden Sie die Standard-Teams-Anwendung für dedizierte, detaillierte Analysen innerhalb eines Teams-Bot-Anwendungschats oder den Microsoft 365 Copilot-Agenten, um gezielte Snowflake-Erkenntnisse in Ihren umfassenderen Konversations-Workflow innerhalb des Microsoft 365 Copilot-Ökosystems einzubringen.
Unterstützt von Snowflake Cortex Agents. Diese Integration wird von der Snowflake Cortex Agents-API unterstützt, die die Komplexität der Generierung genauer, zuverlässiger Erkenntnisse aus Ihren Daten bewältigt. Das agentenbasierte System interpretiert Benutzeranfragen auf intelligente Weise und generiert Antworten, sodass Ihre Teams keine komplexen AI-Muster für Konversationen erstellen oder zugrunde liegende Modelle verwalten müssen.
Sicherheit und Governance auf Unternehmensebene. Die Integration basiert auf dem datenschutzorientierten Fundament von Snowflake und stellt sicher, dass Sie AI-gesteuerte Anwendungsfälle sicher erkunden können. Dies bedeutet:
Ihre Daten bleiben innerhalb der Governance-Grenzen von Snowflake. Benutzer-Aufforderungen werden an die Cortex Agents-API gesendet, aber die zugrunde liegenden Daten, die zur Generierung einer Antwort abgefragt werden, verlassen niemals die sichere Umgebung von Snowflake. Der resultierende SQL-Abfrage wird innerhalb Ihres Snowflake-Warehouses ausgeführt.
Nahtlose Integration in die Datenschutz- und Governance-Features von Snowflake. Die Integration respektiert die rollenbasierte Zugriffssteuerung (RBAC) von Snowflake vollständig. Alle Abfragen, die im Namen eines Benutzers ausgeführt werden, halten sich an die festgelegten Berechtigungen und stellen sicher, dass Benutzer nur Daten sehen können, für die sie Zugriffsrechte haben.
Einrichten der Integration¶
Die Microsoft Teams-Integration von Cortex Agents ermöglicht es Organisationsadministratoren, mehrere Snowflake-Konten mit den Teams- und Copilot-Arbeitsbereichen in ihren Organisationen zu verbinden. Das Einrichten der Integration umfasst einige einfache Schritte, die im Folgenden zusammengefasst werden:
Mandantenweite Einrichtung durch Azure-Administrator. Die Integration erfordert eine einmalige Einrichtung durch einen Microsoft Azure-Administrator, um die Zustimmung für die Snowflake-Anwendung innerhalb des Azure Active Directory (AAD)-Mandanten zu erteilen. Dieser Schritt aktiviert die sichere OAuth 2.0-Authentifizierung für die Integration.
Snowflake-Sicherheitsintegration. Nachdem der Azure-Administrator die mandantenweite Einrichtung abgeschlossen hat, muss ein Snowflake-Administrator eine Sicherheitsintegration für jedes einzelne Snowflake-Konto konfigurieren, das mit der Microsoft Teams- oder M365 Copilot-Anwendung verbunden werden soll. Dieser Schritt sorgt dafür, dass die Integration sicher auf die erforderlichen Daten in jedem Snowflake-Konto zugreifen kann.
Verknüpfen von Konten mit dem Bot. Sobald die Sicherheitsintegration konfiguriert ist, kann der Snowflake-Administrator das Snowflake-Konto mit dem Microsoft Teams- oder M365 Copilot-Bot verknüpfen. Dieser Schritt ermöglicht dem Bot den Zugriff auf die Daten und Funktionen des Snowflake-Kontos, sodass Benutzer direkt innerhalb von Teams oder Copilot mit ihren Daten interagieren können.
Voraussetzungen¶
Bevor Sie mit der Integration beginnen, vergewissern Sie sich, dass Sie Folgendes festgelegt haben:
Administratorzugriff: Das Setup erfordert Administratorzugriff sowohl auf Snowflake als auch auf Ihrem Microsoft-Mandanten.
Snowflake-Kontoregion: Ihr Snowflake-Konto muss in der Azure-Region East US 2 gehostet werden. Snowflake plant die Unterstützung weiterer Regionen im Rahmen dieser Vorschau.
Snowflake-Administratorberechtigungen: Ihr Snowflake-Benutzer muss Zugriff auf die Rolle ACCOUNTADMIN oder SECURITYADMIN haben. Diese Berechtigungen sind erforderlich, um das erforderliche Sicherheitsintegrationsobjekt in Ihrem Snowflake-Konto zu erstellen.
Microsoft-Administratorberechtigungen: Ihr Azure-Benutzer muss über globale Administratorberechtigungen (oder eine entsprechende Rolle) für Ihren Microsoft Entra ID-Mandanten verfügen. Diese Berechtigungen sind nötig, um die erforderliche mandantenweite Administratorzustimmung für die Anwendung zu erteilen.
Microsoft-Mandanten-ID: Sie benötigen die Microsoft-Mandanten-ID Ihrer Organisation, um die Snowflake -Sicherheitsintegration zu konfigurieren. Weitere Informationen zum Ermitteln der Mandaten-ID Ihrer Organisation finden Sie unter Abrufen von Abonnementen- und Mandaten-IDs im Azure-Portal.
Individuelle Benutzerkonten: Jeder Endbenutzer muss seine eigenen Microsoft- und Snowflake-Benutzerkonten haben.
Endbenutzer-Lizenz: Benutzer müssen über die entsprechenden Microsoft-Lizenzen verfügen, um auf Microsoft Teams zugreifen zu können. Darüber hinaus ist eine Copilot-Lizenz erforderlich, wenn Sie die Integration in Microsoft 365 Copilot verwenden möchten.
Schritt 1: Mandantenweite Entra ID-Konfiguration¶
Um eine sichere Authentifizierung für Cortex Agents zu ermöglichen, muss ein Microsoft Azure-Administrator die Zustimmung für zwei im Snowflake-Mandanten gehostete Anwendungen erteilen und für jede Anwendung innerhalb Ihres Entra ID-Mandanten einen Dienstprinzipal erstellen. Die beiden Anwendungen sind:
OAuth-Ressource für Cortex Agents Bot: Repräsentiert die geschützte Snowflake-API und definiert die Zugriffsberechtigungen (Bereiche) für Clientanwendungen.
** Snowflake-OAuth-Client für Cortex Agents-Bot:** Repräsentiert die Clientanwendung, in diesem Fall den Back-End-Dienst der Teams-Anwendung, der nach der Anforderung eines Zugriffstokens die Snowflake-API aufruft.
Anweisungen zum Erteilen der Zustimmung für diese Anwendungen finden Sie weiter unten. Der Prozess ist für beide Anwendungen sehr ähnlich, aber die spezifischen Berechtigungen und Geltungsbereiche unterscheiden sich leicht.
Erteilen der Zustimmung für den Prinzipal der OAuth-Ressource¶
So erteilen Sie die Zustimmung für den Dienstprinzipal der Anwendung für die OAuth-Ressource des Cortex Agents-Bots:
Navigieren Sie in Ihrem Browser zu
https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=5a840489-78db-4a42-8772-47be9d833efe
, wobeitenant-id
die Microsoft-Mandanten-ID Ihrer Organisation ist.Wenn Sie noch nicht angemeldet sind, werden Sie aufgefordert, dies zu tun.
Das Dialogfeld Permission requested mit der für die Anwendung erforderlichen Berechtigung wird angezeigt.
Wählen Sie Accept aus, um die angeforderte Berechtigung zu erteilen.
Erteilen der Zustimmung für den Prinzipal des OAuth-Clients¶
Dieser Prozess zeigt zwei Dialogfelder an. Beide ähneln dem für den Prinzipal der OAuth-Ressource, die angeforderten Berechtigungen unterscheiden sich jedoch.
So erteilen Sie die Zustimmung für den Dienstprinzipal der Anwendung für den Snowflake OAuth-Client des Cortex Agents Bots:
Navigieren Sie in Ihrem Browser zu
https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=bfdfa2a2-bce5-4aee-ad3d-41ef70eb5086
, wobeitenant-id
die Microsoft-Mandanten-ID Ihrer Organisation ist.Das Dialogfeld Permissions requested (1 of 2) wird angezeigt, das einen Satz von Berechtigungen enthält, die für die Anwendung erforderlich ist.
Wählen Sie Accept aus, um die angeforderten Berechtigungen zu erteilen.
Der zweite Dialogfeld für die Berechtigungen wird angezeigt (Permissions requested (2 of 2)).
Wählen Sie Accept aus, um die angeforderten Berechtigungen zu erteilen.
Wichtig
Möglicherweise wird eine Fehlermeldung wie die folgende angezeigt, die besagt, dass ein erforderlicher Zeichenfolgenparameter für die Abfrage fehlt.
{
"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>"
}
}
Sie können diesen Fehler ignorieren. Die Zustimmung wurde dennoch erfolgreich erteilt. Um sicher zu sein, müssen Sie bestätigen, dass die Berechtigungen erfolgreich erteilt wurden, indem Sie die Anweisungen im nächsten Abschnitt befolgen.
Bestätigen der erteilten Berechtigungen¶
Nachdem Sie die Zustimmung für beide Anwendungen erteilt haben, können Sie bestätigen, dass die Berechtigungen erfolgreich erteilt wurden, indem Sie den Abschnitt Enterprise applications im Microsoft Entra ID-Portal überprüfen.
Melden Sie sich ggf. beim Microsoft Entra Admin Center an.
Navigieren Sie zu den Unternehmensanwendungen, indem Sie „Unternehmensanwendungen“ in das Suchfeld eingeben und dann Enterprise applications in den Ergebnissen auswählen.
Suchen Sie in der Liste All applications nach den beiden Anwendungen, für die Sie gerade Zustimmung erteilt haben: OAuth-Ressource des Snowflake Cortex Agents-Bots und OAuth-Client des Snowflake Cortex Agents-Bots Eine einfache Möglichkeit hierfür ist die Suche nach „Snowflake Cortex Agent“.
Wenn beide Anwendungen in der Liste angezeigt werden, wurden die Berechtigungen korrekt erteilt. Wenn eine oder beide Anwendungen fehlen, versuchen Sie erneut, die Zustimmung zu erteilen.
Schritt 2: Snowflake-Sicherheitsintegration¶
Die Integration von Snowflake mit Microsoft Teams erfordert eine Sicherheitsintegration, die kryptografisches Vertrauen zwischen Ihrem Snowflake-Konto und Ihrem Entra ID-Mandanten herstellt. Dieser Prozess erfordert Folgendes:
Aktivieren von Entra ID als externen OAUth-Anbieter in Snowflake.
Vorbereitung der Definition für den Cortex Agent und andere erforderliche Objekte.
Sicherstellen, dass die Benutzer, die den Agenten verwenden, auch die Berechtigung haben, auf die Snowflake-Objekte des Agenten zuzugreifen.
Aktivieren von Entra ID als externen OAuth-Anbieter¶
Ein Snowflake-Sicherheitsintegrationsobjekt stellt eine Integration mit einem externen OAuth-Anbieter dar, in diesem Fall Microsoft Entra ID. Diese Integration ermöglicht es Snowflake, Benutzer zu authentifizieren, die bei Microsoft Teams oder Copilot angemeldet sind.
Die folgenden SQL-Anweisung ist eine kommentierte Vorlage für die Erstellung der Integration. Dieser Befehl muss von einer Rolle mit ACCOUNTADMIN-Berechtigungen ausgeführt werden. Ersetzen Sie den tenant-id
-Platzhalter mit Ihrer Microsoft Mandanten-ID.
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'
Eine vollständige Referenz der für diesen Befehl verfügbaren Parameter finden Sie unter CREATE SECURITY INTEGRATION (External OAuth).
Zusammen verknüpfen die Parameter EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM und EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE eine Entra ID-Identität mit einer Snowflake-Identität. Damit die Authentifizierung erfolgreich ist, muss der Wert des angegebenen Anspruchs im JWT genau mit dem Wert des angegebenen Attributs eines Benutzerobjekts in Snowflake übereinstimmen. Die beiden von Snowflake empfohlenen Hauptkonfigurationen sind:
Zuordnung anhand des Benutzerprinzipalnamens (User Principal Name, UPN): Stellen Sie den Parameter EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM auf „upn“ und den Parameter EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE auf „LOGIN_NAME“ ein.
Zuordnung anhand der E-Mail-Adresse: Stellen Sie den Parameter EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM auf „email“ und den Parameter EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE auf „EMAIL_ADDRESS“ ein.
Die obige Beispielanweisung verwendet die Konfiguration im Rahmen der Zuordnung anhand der E-Mail-Adresse, gibt aber auch UPN im Parameter EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM an, sodass Sie die Zuordnungsmethode ändern können, indem Sie nur EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE ändern.
Die Beispielanweisung aktiviert auch EXTERNAL_OAUTH_ANY_ROLE_MODE, sodass die Standardrolle des Benutzers verwendet wird.
Weitere Informationen zu OAuth-Bereiche finden Sie unter Bereiche.
Vorbereiten der Cortex-Agentendefinition¶
Sobald die Sicherheitsintegration konfiguriert ist, müssen Sie die Umgebung und die Definition des Agenten in Snowflake vorbereiten. Dies beinhaltet das Erstellen der erforderlichen Datenbankobjekte und das Definieren der Logik des Agenten in einem einzigen JSON-Objekt Die Definition legt die Anweisungen des Agenten, seine Tools (wie Cortex Analyst und Cortex Search) und die Ressourcen für diese Tools fest. Die Schemadefinition folgt dem Bodyschema der Cortex Agents API-Anforderung mit einigen Ergänzungen. Im Folgenden sehen Sie die allgemeine Struktur des JSON-Objekts:
{
"model": ...,
"response_instruction": ...,
"experimental": ...
"tools": ...
"tool_resources": ...
"tool_choice": ...
"starter_prompts": ...
}
Laden Sie die Agentendefinition in einen Snowflake-Stagingbereich hoch, und stellen Sie sicher, dass sie für alle Endbenutzer zugänglich ist, die den Agenten verwenden werden.
Sie können die Benutzererfahrung verbessern, indem Sie zwei optionale Felder für Suchergebnisse und Konversationshinweise festlegen:
Suchanfragen können ein von Menschen lesbarer Titel und ein direkter Link zum Quelldokument bereitgestellt werden, indem in der Definition
tool_resources
des Suchtools zwei optionale Felder angegeben werden:title_column
ist eine Spalte, die den von Menschen lesbaren Titel eines Dokuments enthält.id_column
ist eine Spalte, die einen eindeutigen Bezeichner für das Dokument enthält, den Cortex Search verwendet, um einen Link zu dem Dokument zu erstellen.
Es können Starter-Aufforderungen bereitgestellt werden, um Benutzer bei der Formulierung ihrer Fragen im Feld
starter_prompts
auf der obersten Ebene der Agentendefinition zu unterstützen.{ .... "starter_prompts": ["prompt #1", "prompt #2", ...], ... }
Gewähren der erforderlichen Berechtigungen für Endbenutzer¶
Damit Benutzer erfolgreich mit einem Cortex Agent in Teams interagieren können, muss ihre Snowflake-Standardrolle (oder eine andere bestimmte Rolle) über Berechtigungen für alle zugrunde liegenden Objekte verfügen:
Alle Berechtigungen, die im Abschnitt „Anforderungen an die Zugriffssteuerung“ des Themas „Cortex Agents“ aufgeführt sind
READ-Zugriff auf den Stagingbereich, der die JSON-Definition des Agenten enthält
USAGE für das dem Agenten zugewiesene Warehouse
Schritt 3: Einrichten der Teams-App und Verbinden Ihres Snowflake-Kontos¶
Der letzte Schritt des Integrationsprozesses besteht darin, die Microsoft Teams-Anwendung einzurichten und sie mit den Snowflake-Benutzern zu verbinden, die sie verwenden werden. Dazu müssen Sie die folgenden Aufgaben erledigen:
Installieren Sie die Cortex Agents-App aus dem Teams Store
Verbinden Sie Ihr Snowflake-Konto mit der Teams-Anwendung
Installieren Sie die App aus dem Teams Store¶
Alle Benutzer müssen die Cortex Agents-App aus dem Microsoft Teams Store installieren. Um die App zu installieren, suchen Sie im Teams App Store nach „Snowflake Cortex Agents“ und klicken Sie dann auf Add, um die App zu installieren.
Bemerkung
Abhängig von den Microsoft Teams-Richtlinien Ihrer Organisation muss ein Teams-Administrator die App möglicherweise genehmigen, bevor sie für Benutzer verfügbar ist. Entsprechende Anweisungen finden Sie unter `Übersicht über die App-Verwaltung und -Governance im Teams Admin Center<https://learn.microsoft.com/en-us/microsoftteams/manage-apps>`_.
Verbinden Ihres Snowflake-Kontos mit der Teams-App¶
Der erste Benutzer, der mit der Cortex Agents-App in Teams interagiert, wird aufgefordert, sein Snowflake-Konto mit der App zu verbinden. Dieser Benutzer muss die Rolle ACCOUNTADMIN oder SECURITYADMIN in Snowflake haben, damit dieser Schritt erfolgreich ist.
Zusammenfassend muss die Standardrolle jedes Benutzers in Snowflake über die erforderlichen Berechtigungen für den Zugriff auf die Objekte des Agenten verfügen, wie im Abschnitt „Anforderungen an die Zugriffssteuerung“ des Themas „Cortex Agents“ beschrieben, sowie über READ-Zugriff auf den Stagingbereich, der JSON-Definition des Agenten enthält, und USAGE für das Warehouse des Agenten. (Die Standardrolle des Benutzers wird durch die Einstellung DEFAULT_ROLE im Profil des Benutzers festgelegt).
Sicherheitsintegrationen blockieren standardmäßig die wichtigsten Verwaltungsrollen von Snowflake. Daher können Sie keine administrativen Rollen wie ACCOUNTADMIN als Standardrolle für den Benutzer verwenden, der den Teams-Bot einrichten wird. Informationen zu dieser Einschränkung finden Sie unter BLOCKED_ROLES_LIST im Thema CREATE SECURITY INTEGRATION.
Snowflake empfiehlt, eine dedizierte, nicht administrative Rolle mit den erforderlichen Berechtigungen zu erstellen und diese als Standard für den Setup-Benutzer festzulegen. Alternativ können Sie auch den SECONDARY ROLES-Mechanismus wie folgt verwenden, um die zusätzlichen Berechtigungen zu erteilen, ohne die primäre Standardrolle des Benutzers zu ändern:
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('<integration_specific_role>');
Um den Teams-Bot einzurichten, gehen Sie wie folgt vor:
Klicken Sie auf I’m the Snowflake administrator unter dem Hinweis, dass ein Administrator Snowflake für Teams konfigurieren muss, um den Prozess zu starten.
Geben Sie die URL Ihres Snowflake-Kontos an der angegebenen Stelle ein.
Um diese URL zu finden, melden Sie sich bei Snowsight an und klicken Sie in der linken unteren Ecke der Seite auf die Kontoauswahl. Der Hostname-Teil der URL wird oben im Menü angezeigt und hat das Format
your-organization-your-account
. Die vollständige URL istyour-organization-your-account.snowflakecomputing.com
.Der Konfigurationsassistent überprüft, ob die URL zu einer gültigen Snowflake-Instanz in der Azure-Region US East 2 führt und bestätigt, dass Ihr Benutzer Zugriff darauf hat und über die erforderlichen Administratorberechtigungen verfügt.
Bemerkung
Möglicherweise wird eine Warnung angezeigt, die Sie anweist, sicherzustellen, dass die Sicherheitsintegration „Microsoft Identity Platform Access Token v2.0“ verwendet. Sie können diese Warnung ignorieren; das Format des Tokens für die Snowflake-Sicherheitsintegration ist kompatibel.
Nachdem diese Prüfung bestanden wurde, wird ein Formular angezeigt, das die folgenden Konfigurationsdetails anfragt:
Kontoalias: Ein benutzerfreundlicher Name für dieses Snowflake-Konto, der in der Teams-Schnittstelle angezeigt wird, z. B. „Verkaufsanalyse“.
Pfad der Agentendefinition: Der vollqualifizierte Pfad zur JSON-Definitionsdatei des Agenten in einem Snowflake-Stagingbereich im Format
@stage_name/path_to_definition_file
, z. B.@my_cortex_agents/my_agent.json
.Standard-Warehouse: Der Name des Snowflake-Warehouses, das der Agent für Abfragen verwendet.
Geben Sie diese Informationen ein, und klicken Sie dann auf Finalize account configuration.
Nachdem das Setup die letzte Prüfung bestanden hat, wird die Teams-App mit Ihrem Snowflake-Konto verbunden und der Agent ist einsatzbereit.
Tipp
Sobald Sie Ihr Snowflake-Konto mit der Cortex Teams-App verbunden haben, können Sie weitere Snowflake-Konten mit derselben App verbinden, indem Sie sich bei der Teams-App mit einem Benutzer anmelden, der über die erforderlichen Berechtigungen verfügt, und den Befehl „Neues Konto hinzufügen“ im Chat ausführen.
Verwenden von Cortex Agents¶
Nachdem die Integration eingerichtet wurde, wird der Bot in der Microsoft Teams-Schnittstelle angezeigt und ermöglicht Ihren Benutzern, in einem privaten Chat mit ihm zu interagieren. Benutzer stellen Fragen in natürlicher Sprache, und der Bots liefert Antworten, die auf Snowflake-Daten basieren.
In Microsoft 365 Copilot können Ihre Benutzer mit dem Agenten im Rahmen ihres breiteren Workflows interagieren, Fragen stellen und Antworten zu ihren Snowflake-Daten über die Copilot-Schnittstelle erhalten.
Sicherheitshinweise¶
Die Cortex Agents-Integration für Microsoft Teams wurde unter Berücksichtigung der Sicherheit entwickelt und nutzt die vorhandenen Sicherheitsfeatures von Snowflake und die Authentifizierungsfunktionen von Microsoft Entra ID. Die Integration sorgt dafür, dass die Daten der Benutzer sicher bleiben und der Zugriff durch das rollenbasierte Zugriffssteuerungssystem (RBAC-System) gesteuert wird.
End-to-End-Authentifizierungsablauf¶
Um die Sicherheitsauswirkungen der Verwendung der Cortex Agents-Integration für Microsoft Teams zu verstehen, ist es wichtig, den End-to-End-Authentifizierungsablauf zu verstehen. Dieser Prozess umfasst die folgenden Schritte:
Benutzerinteraktion: Ein Benutzer sendet eine -Nachricht an den Snowflake Cortex Agents-Bot in Microsoft Teams.
Authentifizierungstrigger: Der Backend-Dienst des Bots (die „Client“-App) initiiert einen OAuth 2.0-Ablauf, der den Benutzer zu Microsoft Entra ID umleitet.
Benutzerauthentifizierung: Der Benutzer meldet sich bei seinem Microsoft-Konto mit seinen Unternehmensanmeldeinformationen an und erfüllt alle MFA-Richtlinien oder Richtlinien für bedingten Zugriff, die von ihrem Mandanten erzwungen werden.
Token-Ausgabe: Entra ID bietet einen kurzlebigen Autorisierungscode. Das Backend des Bots tauscht diesen Code sicher gegen ein JWT-Zugriffstoken aus.
API-Aufruf an Snowflake: Das Backend des Bots ruft die Snowflake Cortex Agents API auf, einschließlich des Zugriffstokens im
Authorization: Bearer
-Header.Snowflake Token-Validierung: Der Snowflake-Dienst empfängt die Anfrage und validiert das JWT gegen die im Snowflake -Sicherheitsintegrationsobjekt definierte Richtlinie.
Rollenbasierte Zugriffssteuerung¶
Weil sie die Cortex Agents API unter einer bestimmten Benutzerrolle verwendet, führt die Teams-Integration Cortex Agents -Anfragen mit den genauen Berechtigungen der angegebenen Snowflake-Rolle des Benutzers aus. Der Agent erbt alle vorhandenen Data Governance-Steuerungsmechanismen, einschließlich:
Rollenbasierte Zugriffssteuerung: Der Agent kann nur auf Datenbanken, Schemas, Tabellen und Warehouses zugreifen, deren Verwendung die Benutzerrolle erlaubt.
Datenmaskierungsrichtlinien: Der Agent respektiert dynamische Datenmaskierungsrichtlinien und gewährt nur Zugriff, wenn die Rolle des Benutzers dies erlaubt.
Zugriffsrichtlinien auf Zeilenebene: Der Agent setzt Sicherheitsrichtlinien auf Zeilenebene durch.
Der Agent kann keine bestehenden Snowflake-Sicherheitskontrollen umgehen, und Benutzer können nicht auf Daten zugreifen, für die sie nicht bereits eine Zugriffsberechtigung haben.
Aktuelle Einschränkungen¶
Diese Beschränkungen gelten für die Integration von Cortex Agents für Microsoft Teams im Vorschau-Release. Snowflake beabsichtigt, diese in zukünftigen Releases zu beheben.
- OAuth-Identitätsanbieter muss Entra ID sein
Die Integration unterstützt ausschließlich Microsoft Entra ID als Identitätsanbieter für die Authentifizierung und benötigt eine direkte Eins-zu-Eins-Zuordnung zwischen Entra ID- und Snowflake-Benutzern. Organisationen, die andere IdPs verwenden (z. B. Snowflake oder Okta), können diese Integration derzeit nicht verwenden.
- Abhängigkeit der Standardbenutzerrolle
Die Funktionalität der Integration ist aufgrund einer architektonischen Einschränkung in der Cortex Agents API an die Standard-Snowflake-Rolle jedes Benutzers gebunden. Diese bestimmt die Sitzungsberechtigungen basierend auf dem während der Authentifizierung festgelegten Rollenkontext. Daher müssen der Standardrolle des Benutzers alle erforderlichen Berechtigungen für die zugrunde liegenden Objekte erteilt werden, damit der Agent korrekt funktioniert. Während das Feature SECONDARY ROLES von Snowflake dazu beitragen kann, den Datenzugriff zu erweitern, wird der primäre Ausführungskontext durch die Standardrolle des Benutzers bestimmt.
- Eine Agentendefinition pro Snowflake-Konto
Die Integration bietet eine 1:1-Zuordnung zwischen einer Teams-Integrationsinstanz und einer einzelnen Cortex-Agentendefinition pro Snowflake-Konto. Derzeit können Sie nicht mehrere unterschiedliche Agenten von einem einzigen Snowflake-Konto aus verfügbar machen.
- Kein Multi-Turn-Kontext
Die Integration unterstützt derzeit keinen Multi-Turn-Konversationskontext. Jede Abfrage eines Teams-Benutzers ist eine eigenständige, zustandslose Transaktion. Der Agent erinnert sich nicht an den Kontext vorheriger Fragen, sodass Benutzer bei jeder Anfrage explizit sein müssen.
Problembehandlung¶
Wenn Sie Probleme mit der Integration von Cortex Agents für Microsoft Teams haben, finden Sie in den folgenden Abschnitten mögliche Lösungen.
Probleme mit Berechtigungen und Zugriff¶
Die Standardrolle des Benutzers muss über die erforderlichen Berechtigungen verfügen, um auf die Objekte zuzugreifen, die der Agent verwendet oder auf die er zugreift. Fehlermeldungen, die durch Zugriffsprobleme verursacht werden, enthalten normalerweise den Satz „Datenbankobjekt existiert nicht oder ist nicht autorisiert“.
Um solche Probleme zu beheben, müssen Sie Folgendes überprüfen:
Die Standardrolle des Benutzers ist auf eine Rolle eingestellt, die über die erforderlichen Berechtigungen verfügt.
Die Standardrolle des Benutzers verfügt über die erforderlichen Berechtigungen für die Objekte des Agenten, einschließlich des Stagingbereichs, der die JSON-Definition des Agenten und das dem Agenten zugewiesene Warehouse enthält.
Einstellung der Standardrolle¶
Der erste Schritt zur Behebung von Zugriffsproblemen besteht darin, die Einstellung der Standardrolle des Benutzers zu überprüfen. Um diese Einstellung zu überprüfen, führen Sie den Befehl DESCRIBE USER auf, und überprüfen Sie die Eigenschaft DEFAULT_ROLE in der Ausgabe. Wenn die Standardrolle des Benutzers nicht korrekt ist, ändern Sie diese mit dem Befehl ALTER USER.
ALTER USER <user_name> SET DEFAULT_ROLE = '<correct_role>';
Wenn das Ändern der primären DEFAULT_ROLE nicht möglich ist, können Sie den Sekundärrollen-Mechanismus von Snowflake verwenden. Ein Benutzer kann -Aktionen mit den kombinierten Berechtigungen seiner Primärrolle und seiner aktiven Sekundärrollen ausführen. So können Sie dem Benutzer eine zusätzliche, integrationsspezifische Rolle zuweisen, ohne seine Primärrolle zu ändern.
Um eine Sekundärrolle für die Cortex Agents-Integration hinzuzufügen, verwenden Sie SQL-Befehle wie die folgenden. Um sicherzustellen, dass Sie keine sekundären Rollen entfernen, die dem Benutzer bereits zugewiesen sind, beachten Sie die Eigenschaft DEFAULT_SECONDARY_ROLES in der Ausgabe von DESCRIBE USER. Schließen Sie diese bereits vorhandenen Rollen ein, wenn Sie die integrationsspezifische Rolle hinzufügen.
DESCRIBE USER <user_name>; -- take note of DEFAULT_SECONDARY_ROLES
GRANT ROLE <integration_specific_role> TO USER <user_name>;
ALTER USER <user_name> SET DEFAULT_SECONDARY_ROLES = ('<pre_existing_role_1>', ....,
'<integration_specific_role>');
Erforderliche Berechtigungen¶
Die Standardrolle des Benutzers (oder eine Standard-Sekundärrolle) muss die unten beschriebenen Berechtigungen besitzen.
Cortex-AI-Funktionszugriff über die Rolle SNOWFLAKE.CORTEX_USER. Standardmäßig ist diese Rolle der Rolle PUBLIC zugewiesen, damit alle Benutzer auf Cortex-AI-Funktionen zugreifen können. Wenn Ihre Organisation SNOWFLAKE.CORTEX_USER aus PUBLIC entfernt hat, müssen Sie sie explizit der Rolle zuweisen, unter der der Agent ausgeführt wird.
Wenn der Agent das Cortex Analyst-Tool verwendet, muss die Rolle außerdem über die folgenden Berechtigungen verfügen:
USAGE für alle Datenbanken und Schemas, auf die im semantischen Modell verwiesen wird
SELECT für alle Tabellen und Ansichten, auf die im semantischen Modell verwiesen wird
READ-Zugriff für den Stagingbereich, der die Datei(en) des semantischen Modells enthält
Wenn der Agent einen Cortex Search Service verwendet, muss die Rolle über USAGE für den jeweils verwendeten Service verfügen.
Probleme bei der Sicherheitsintegration¶
Eine Snowflake -Sicherheitsintegration verbindet den Microsoft Entra ID-Mandanten mit dem Snowflake-Konto. Die Probleme in diesem Abschnitt beziehen sich auf die Sicherheitsintegration.
Ungültiges OAuth-Zugriffstoken (Fehlercode 390303)¶
Dieser Fehler kann darauf hinweisen, dass ein oder mehrere Eigenschaftswerte in der Sicherheitsintegration falsch sind, sodass Snowflake das von Entra ID erhaltene Zugriffstoken nicht validieren kann. Um dies zu korrigieren, überprüfen Sie die folgenden Felder in der Sicherheitsintegration. Stellen Sie insbesondere sicher, dass die Mandanten-ID in den URLs korrekt ist.
EXTERNAL_OAUTH_ISSUER: Der Wert muss auf die korrekte URL des Entra ID-Ausstellers eingestellt sein, die im Format :samp:
https://login.microsoftonline.com/<tenant-id>/v2.0
vorliegt, wobeitenant-id
die Microsoft-Mandanten-ID Ihrer Organisation ist.EXTERNAL_OAUTH_JWS_KEYS_URL: Der Wert muss auf die korrekte URL der JWS-Schlüssel eingestellt sein, die im Format
https://login.microsoftonline.com/<tenant-id>/discovery/v2.0/keys
vorliegt, wobeitenant-id
die Microsoft-Mandanten-ID Ihrer Organisation ist.EXTERNAL_OAUTH_AUDIENCE_LIST: Dieser Wert muss die korrekte Zielgruppe für die Anwendung für die OAuth-Ressource des Cortex Agents Bots enthalten, welches die Anwendungs-ID
5a840489-78db-4a42-8772-47be9d833efe
ist.
Aktualisieren Sie fehlerhafte Werte mit dem Befehl ALTER SECURITY INTEGRATION.
Falscher Benutzername oder Kennwort (Fehlercode 390304)¶
Diese Fehlermeldung weist auf eine Nichtübereinstimmung zwischen der von Entra ID gesendeten Benutzerkennung und dem entsprechenden Benutzerdatensatz in Snowflake hin. Dies liegt normalerweise daran, dass die Entra ID nicht genau einem Snowflake-Benutzer zugeordnet ist. Dies kann passieren, wenn der Snowflake-Benutzer nicht existiert (oder die zugeordnete UPN oder E-Mail-Adresse falsch ist) oder wenn die Zuordnung für mehrere Snowflake-Benutzer aufgelöst wird (z. B. wenn die Zuordnung mithilfe einer E-Mail-Adresse erfolgt und mehrere Benutzer dieselbe Adresse verwenden).
Die Fehlermeldung enthält den UPN und die E-Mail-Adresse des Benutzers, der versucht, sich anzumelden. Verwenden Sie diese Informationen, um die Konfiguration des betroffenen Benutzers mithilfe des Befehls DESCRIBE USER zu überprüfen. Stellen Sie sicher, dass die Eigenschaft NAME oder EMAIL des Benutzers mit dem Wert der gleichen Eigenschaft in Entra ID für den entsprechenden Benutzer übereinstimmt. Wenn Sie die Zuordnung von E-Mail-Adressen verwenden, müssen Sie sicherstellen, dass die E-Mail-Adresse für alle Benutzer des Snowflake-Kontos eindeutig ist.
Rolle nicht im Zugriffstoken aufgeführt oder wurde herausgefiltert (Fehlercode 390317)¶
Dieser Fehler tritt auf, wenn Snowflake dem Benutzer anhand der Informationen im OAuth-Zugriffstoken keine Rolle zuweisen kann. Das Zugriffstoken ist mit dem Bereich session:role-any
konfiguriert, der es dem Benutzer ermöglicht, jede der ihm zugeordneten Rollen in Snowflake zu übernehmen. Die Sicherheitsintegration muss jedoch explizit so konfiguriert werden, dass sie dieses Verhalten zulässt.
Verwenden Sie den Befehl DESCRIBE SECURITY INTEGRATION, um den Wert der Eigenschaft EXTERNAL_OAUTH_ANY_ROLE_MODE zu überprüfen, und ändern Sie den Wert dann in ENABLE
oder 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';
Die in der Verbindungszeichenfolge angegebene Rolle ist diesem Benutzer nicht zugewiesen (Fehlercode 390186)¶
Dieser Fehler tritt auf, wenn die Snowflake-Sicherheitsintegration der Standardrolle des Benutzers die Verwendung der Sicherheitsintegration nicht erlaubt.
Um dies zu beheben, überprüfen Sie die folgenden Eigenschaften in der Ausgabe von DESCRIBE SECURITY INTEGRATION:
EXTERNAL_OAUTH_ALLOWED_ROLES_LIST: Wenn der Parameter aktiviert ist, stellen Sie sicher, dass er die Standardrolle des Benutzers enthält.
EXTERNAL_OAUTH_BLOCKED_ROLES_LIST: Wenn der Parameter aktiviert ist, stellen Sie sicher, dass er nicht die Standardrolle des Benutzers enthält.