MS Teams-Integration
Die MS Teams-Integration macht eine App (KI-Chatbot oder Agent) als Bot in Microsoft Teams verfügbar – Nutzer chatten direkt in Teams mit Private GPT. Die Laufzeit nutzt denselben Conversation Engine-Pfad wie das Web-Dashboard.
Abgrenzung:
| Thema | Doc |
|---|---|
| Allgemeine Agent-Konfiguration | Agent |
| Reiner Web-Chat ohne Bot | KI-Chatbot |
| SharePoint als Wissens-/Live-Quelle | SharePoint-Integration |
Datenflussdiagramm
Zweck, Zielgruppe und Einsatzbereich
- Zweck: Private GPT direkt in den Teams-Chat integrieren – ohne dass Nutzer für kurze Dialoge die Web-App öffnen müssen.
- Zielgruppe: CoCoAdmins und App-Admins (Integration aktivieren, Credentials, Verteilung); Microsoft-/Teams-Admins für Bot-Registrierung und organisatorische App-Verteilung.
- Einsatzbereich: unternehmensweite oder teambezogene Nutzung freigegebener Chatbots/Agenten in Teams. Nicht geeignet, wenn kein Azure Bot / keine Teams-App-Verteilung möglich ist oder der Tenant nicht dem Plattform-
TENANT_IDentspricht.
Fachlicher Nutzen und erwartete Ergebnisse
- Niedrige Einstiegshürde: Fachfragen und Agent-Aufträge dort, wo Kommunikation stattfindet.
- Einheitliche App-Logik (Prompt, Tools, Wissen) in Web und Teams.
- Nachvollziehbarkeit über Session „Teams Chat“, optional Quellen-/Tool-Karten und Link ins Dashboard.
Erwartetes Ergebnis: Freigegebene Nutzer schreiben dem Bot in Teams und erhalten gestreamte Antworten derselben App; Unberechtigte werden abgewiesen.
Voraussetzungen für die Nutzung
Technisch
- Erreichbare Hub-URL (Messaging Endpoint muss von Azure Bot aus dem Internet/erlaubten Netzen erreichbar sein – nicht
localhostin Produktion). - Azure App Registration + Azure Bot Service (Microsoft App ID und Client Secret).
- Umgebungsvariable
TENANT_IDder Plattform muss zum Teams-Tenant der Nutzer passen. - App im Hub angelegt (Typ KI-Chatbot oder Agent); Teams-Integration im Tab Integrationen aktiviert.
- Client Secret wird AES-verschlüsselt gespeichert (
teamsConfig.microsoftAppPasswordEncrypted).
Organisatorisch
- Klärung: welche App als Bot, Zielgruppe, Freigabeprozess in Teams (Org-weit, ausgewählte Teams/Nutzer).
- App-Berechtigungen im Hub (
App einschränken/ Gruppen) und CoCo-Plattformrolle der Nutzer.
Abhängig
- Allgemeine Chat-/App-Infrastruktur; optional dieselben Tools/Wissensquellen wie im Web (siehe Agent, RAG Agent).
Konfiguration des Features und seiner grundlegenden Einstellungen
Pfad: /dashboard/settings/[appid] → Tab Integrationen → Abschnitt Microsoft Teams.

1. Integration im Hub aktivieren
| Einstellung | Bedeutung |
|---|---|
| Microsoft Teams Integration (Switch) | App als Teams-Bot aktivieren/deaktivieren |
| Webhook URL (Messaging Endpoint) | https://<hub-host>/api/teams/<appId>/messages – in die Azure-Bot-Konfiguration übernehmen (Kopier-Button) |
| Microsoft App ID | Application (Client) ID der Azure App Registration |
| Client Secret | Secret der App Registration; einmal gesetzt: Feld leer lassen zum Beibehalten |
| Speichern | Konfiguration schreiben |
Sinnvolle Defaults: Integration erst aktivieren, wenn Endpoint und Credentials stehen; Secrets nicht im Prompt oder in Tickets im Klartext ablegen.
2. Azure Bot / Messaging Endpoint
- In Azure Bot die Messaging Endpoint auf die kopierte Webhook-URL setzen.
- App ID und Client Secret müssen zu denselben Werten im Hub passen.
- Bot Framework Auth läuft tenant-gebunden (
TENANT_ID).
3. App-Verteilung in Microsoft Teams
Die Verteilung der Teams-App erfolgt außerhalb des Private AI Hub – typischerweise über Azure Bot / Teams-App-Paket und den Teams Admin Center- bzw. Organisationskatalog-Prozess eures Tenants.
Empfohlene Reihenfolge:
- Hub-Integration speichern (Endpoint + Credentials).
- Azure Bot mit Messaging Endpoint verbinden und Bot testen.
- Teams-App (Bot) im Tenant hochladen bzw. veröffentlichen.
- Verteilungsrichtlinie festlegen: Org-weit, ausgewählte Nutzer/Gruppen oder ausgewählte Teams – analog zu eurer M365-Governance.
- Sicherstellen, dass verteilte Nutzer im Hub CoCo-Zugang und ggf. App-Berechtigung haben (sonst antwortet der Bot mit Zugriffsmeldung).
- Stichprobe: berechtigter Nutzer chattet mit dem Bot; unberechtigter Nutzer wird abgewiesen.
Ohne App-Verteilung erscheint der Bot bei den Zielnutzern nicht – die Hub-Konfiguration allein reicht nicht.
Deaktivieren: Switch im Hub aus → speichern; bei Bedarf Teams-App-Zuweisung zurücknehmen und Azure Endpoint entfernen.
Rollen- und Berechtigungskonzept
| Rolle | Darf |
|---|---|
| CoCoAdmin | Teams-Config jeder App setzen; App-Berechtigungen global steuern |
| App-Admin | Teams-Config der eigenen App (Enable, App ID, Secret) |
| Teams-/M365-Admin | Bot-Registrierung, Teams-App-Upload und App-Verteilung im Tenant |
| App-User / CoCo-User | Bot nutzen, wenn Tenant, CoCo-Rolle und App-Zugriff passen |
Laufzeitprüfungen in der Teams-Route (in dieser Reihenfolge):
conversation.tenantId=TENANT_ID- Nutzer hat CoCo-General-Rolle (Entra/Graph)
- Bei geschützter App:
resolveUserAppAccess(User/Gruppen)
Konfiguration von Verhaltensregeln, Vorgaben und Einschränkungen
- Verhalten steuern wie im Web: System-Prompt, freigeschaltete Tools, Quellen anzeigen / Aktionen anzeigen.
- In Teams sichtbar: Tool-Karten nur wenn
showToolCallsnicht deaktiviert; Quellen-Karten nur wennshowSourcesnicht deaktiviert. - Erzwungen: Tenant-Check, Rollen-/App-Zugriff, Text-only-Eingabe über den Bot, Antwortaufteilung bei ca. 4000 Zeichen.
- Reset-Befehle für Nutzer:
/neuund/deleteconversation.
Verwaltung und Pflege der verwendeten Daten-, Wissens- oder Kontextquellen
Nicht zutreffend als eigene Teams-Datenquelle: Teams liefert den Transportkanal. Wissens- und Tool-Quellen pflegt ihr wie bisher an der App (Dateien & Jobs, SharePoint, Outlook-Tools usw.). Die Teams-Session speichert den Chatverlauf unter Session-Name Teams Chat (teamsConversationId).
Definition der zulässigen Eingaben, Ausgaben und Verarbeitungsgrenzen
Eingaben
- Teams-Nachrichten vom Typ Message mit Text.
- Befehle
/neu//deleteconversation. - Keine Datei-Uploads über den Teams-Bot-Endpunkt.
Ausgaben
- Text (gestreamt, anschließend final; lange Texte in Chunks).
- Adaptive Cards: Tool-Aufruf, Quellen, Dashboard-Link inkl. optionalem Kontext-Token-Hinweis.
Grenzen
- Kontextfenster der App (History wird getrimmt, u. a. ca. 60 % des Context Windows für Historie).
- Fremde Tenants und Nutzer ohne Rolle/App-Recht → Ablehnung.
- Messaging Endpoint muss produktiv erreichbar sein.
Konfiguration angebundener Systeme, Tools, Schnittstellen oder Integrationen
| System | Zweck |
|---|---|
| Azure App Registration | App ID + Client Secret |
| Azure Bot Service | Messaging Endpoint → Hub-Webhook |
| Microsoft Teams | Client-UI und App-Verteilung |
Hub POST /api/teams/[appid]/messages | Bot Framework Adapter + Conversation Engine |
| Entra Graph | CoCo-Rolle und Gruppen für App-Zugriff |
Secrets nur verschlüsselt im Hub speichern; niemals in Docs, Prompts oder Tickets im Klartext.
Umgang mit vertraulichen, personenbezogenen oder besonders schützenswerten Daten
- Chatverläufe liegen in Hub-Sessions und zusätzlich im Teams-Kontext (Tenant-Richtlinien beachten).
- Client Secret verschlüsselt; nicht an Clients zurückgeben (
hasPassword-Flag statt Klartext). - App-Berechtigungen eng halten; besonders schützenswerte Inhalte nicht unnötig über Teams-Kanäle führen.
- Quellen-/Dashboard-Links können auf interne Ressourcen zeigen – nur für berechtigte Nutzer verteilen.
Monitoring von Verfügbarkeit, Qualität, Fehlerraten und technischen Auffälligkeiten
- Tab Logs der App: Fehler der Teams-Route (
createAppLogbei Exceptions). - Symptome: Bot antwortet nicht (Endpoint/Credentials/Verteilung), „Zugriff verweigert“ (Tenant), „kein Zugriff“ (Rolle/App).
- Qualität: Stichprobenchats in Teams und Vergleich mit Web-Session derselben App.
- Typing ohne Folgeantwort: Backend-/Modellfehler in Logs prüfen.
Monitoring von Nutzung, Ressourcenverbrauch, Token-Verbrauch und Kosten
- Tab Statistik: Nachrichten/Token/Kosten der App (inkl. Teams-Traffic, sofern über dieselben Sessions/Usage erfasst).
- In Teams optional Kontextzeile (Input-Token vs. Context Window) auf der Dashboard-Karte.
- Lange Verläufe ohne
/neuerhöhen Tokenverbrauch.
Test- und Abnahmeverfahren vor der produktiven Freigabe
Checkliste:
- Teams-Integration im Hub aktiv, korrekte App ID, Secret gesetzt, Webhook kopiert.
- Azure Bot Messaging Endpoint = produktive Hub-URL (
/api/teams/<appId>/messages). - App-Verteilung an Testnutzer erfolgt (Teams Admin / Katalog).
- Testnutzer mit CoCo-Rolle und App-Recht: Frage → gestreamte Antwort.
- Nutzer ohne App-Recht bzw. ohne CoCo: erwartete Ablehnungsmeldung.
/neusetzt Konversation zurück; Im Dashboard öffnen zeigt die Session.- Bei Agent mit Tools/Quellen: Karten erscheinen gemäß Sichtbarkeits-Einstellungen.
- Rollback: Integration im Hub deaktivieren; Teams-Zuweisung entziehen; bei Bedarf Azure Endpoint leeren.