Teams Datenablage
Wussten sie schon, dass Microsoft Teams selbst gar keine eigene Datenbank zum Speichern hat, sondern eigentlich nur die vorhandenen Dienste von AzureAD, Exchange Online, SharePoint Online nutzt? Nur für den Präsenzstatus und die Meetings gibt es neue Infrastrukturen, die diese temporären Daten bereithalten. Daher hat mich interessiert, wo die Daten tatsächlich liegen und wie Teams darauf zugreift.
Quellen bei Microsoft
Ehe ich mich an eine Seite mache, schaue ich schon herum, welche Informationen öffentlich sind und ob sich der Aufwand lohnt. Ich habe dazu auch zwei PowerPoint-Folien gefunden. Beide Folien zeigen die verschiedenen Komponenten, die irgendwie damit zusammenhängen.
Quelle Foundations of Microsoft Teams
https://www.youtube.com/watch?v=xJBvJTDiQqg
Quelle Foundations of Microsoft Teams
https://www.youtube.com/watch?v=xJBvJTDiQqg
Quelle: Net at Work
Aber eine klare Aussage, welche Daten nun wo liegen, konnte ich da noch nicht auslesen. Also habe ich mich selbst auf die Suche gemacht.
Analyse
Ich habe mir daher den Teams Client genauer angeschaut und die Kommunikation mit Fiddler analysiert. Anders als Skype for Business,, wo der Client sich mit Exchange, Skype, Outlook u.a. Diensten verbindet, nutzt Teams einen anderen Weg: Der Teams Client (Windows, Mobile, Web) spricht mit wenigen Ausnahmen nur mit seinem Teams Service, der dann auf die Daten in anderen Quellen zugreift. Das macht es für einen Entwickler des Clients deutlich einfacher, wenn er nur eine Schnittstelle und eine Authentifizierung bedienen muss. Da die ganze "komplizierte Logik" im Service ist, kann Microsoft hier natürlich auch viel einfacher das Verhalten optimieren.
Achtung: Das Bild ist nicht ganz korrekt. Einige Zugriffe des Clients gehen an der Teams Middleware vorbei direkt zu SharePoint Online/OneDrive Business. Auch 3rd-Party Apps gehen am Teams Backend vorbei zu ihren eigenen Diensten
Ich habe daher auf meinem Client zuerst einmal per Fiddler dem Teams-Client auf die Finger geschaut und habe eigentlich erwartet, dass er einzig zur URL teams.microsoft.com geht. So konnte ich recht gut erkennen, welchen "Backend" der Teams Client nutzt. Hier zuerst eine tabellarische Übersicht, zu der ich dann weitere Abschnitte je Datenbereich beschreibe:
Daten | Zugriff | Ablageort |
---|---|---|
Identity und Authentifizierung |
Teams Backend |
AzureAD, TeamsAD |
Präsenzstatus |
Teams Backend |
Azure-Blob, SfB/Azure Personendokument |
Buddy-Liste/ Kontakte |
Teams Backend |
Exchange Postfach des Benutzers |
1:1 Chats, |
Teams Backend |
Persönliches Postfach, Exchange Mailbox beim User, CosmosDB, wenn Benutzer keine Exchange Online Lizenz hat. |
1:1 Dateien |
OneDrive |
Persönliches OneDrive https://netatwork-my.sharepoint.com/personal/frank_carius_netatwork_de/Documents/Microsoft%20Teams-Chatdateien/dateiname |
Team |
SharePoint |
SharePoint Site https://netatwork.sharepoint.com/sites/T-NAWModernWorkplace/Shared%20Documents/General |
Channel Chat |
Teams Backend |
Office Groups |
Channel Wiki |
SharePoint |
SharePoint Site des Team Das Wiki in einem
Teams-Kanal wird ab Feb 2023 durch OneNote
ersetzt |
Channel Dateien/OneNote |
SharePoint |
SharePoint Site des Team |
Channel Whiteboard |
SharePoint |
SharePoint Site des Team |
Channel Webseiten |
Direkt |
Webseite |
Meeting Recording |
OneDrive SharePoint |
Früher Streams, nun OneDrive bei individuellen Meetings oder das Teams-OneDrive |
Konferenz MCU |
Teams MCU |
Die MCU leitet eingehende Pakete direkt an die Konferenzteilnehmer weiter. Hier gibt es ausnahmsweise keinen Speicher |
Voice Mail |
Exchange Online |
Exchange Postfach des Anwenders über eine Beta API Siehe Teams Voicemail |
Missed Call Meldung |
Teams Backend |
Exchange Postfach des Anwenders über eine Beta API Siehe Teams Voicemail |
Sie sehen schon ,dass Teams selbst eigentlich nur einen kleinen Bereich in einem eigenen Speicher ablegt und für die große Menge der Daten sich SharePoint Bibliotheken und Exchange Gruppenpostfächer und Exchange Benutzerpostfächern bedient. Das macht aber auch Sinn, da beide Plattform bewährt und skalierbar sind und auch vorhandene Lösungen für Compliance, Reporting etc. mit genutzt werden.
Die meiste Kommunikation geht dabei über das Teams Backend unter "teams.microsoft.com". Damit unterscheidet sich Teams von Skype for Business und anderen Produkten, die auf dem Client die Daten zusammenführen. Das macht es auf dem Client viel einfacher. Skype for Business hat sich ja per SIP, EWS, MAPI, RTP, HTTP mit unterschiedlichen Backend-Systemen verbunden.
Eine gute Quelle ist dabei auf die Seite Informationen zur Aufbewahrung für Microsoft Teams https://docs.microsoft.com/de-de/microsoft-365/compliance/retention-policies-teams?view=o365-worldwide.
Teams verwendet einen
Azure-unterstützten Chatdienst als primären Speicher für
alle Nachrichten (Chats und Kanalnachrichten).
...
Daten von Teams-Chats werden in einem verborgenen Ordner im
Postfach jedes Benutzers gespeichert, der am Chat teilnimmt.
Ein ähnlicher verborgener Ordner im Gruppenpostfach wird für
Teams-Kanalnachrichten genutzt. Diese ausgeblendeten Ordner
sind nicht für den direkten Zugriff von Benutzern oder
Administratoren gedacht, ...
...
UserMailbox: In diesen Postfächern werden Nachrichtendaten
für cloudbasierte Teams-Benutzer gespeichert.
MailUser: In diesen Postfächern werden Nachrichtendaten für
lokale Teams-Benutzer gespeichert.
GroupMailbox: In diesen Postfächern werden Nachrichtendaten
für Teams-Kanäle gespeichert.
...
Teams verwendet einen Azure-unterstützten Chatdienst als
primären Speicher für alle Nachrichten (Chats und
Kanalnachrichten). Wenn Sie aus Compliance-Gründen
Teams-Nachrichten löschen müssen, können
Aufbewahrungsrichtlinien für Teams die Nachrichten nach
einem bestimmten Zeitraum löschen, je nachdem, wann sie
erstellt wurden. Nachrichten werden dann sowohl aus den
Exchange-Postfächern, in denen sie für Compliancevorgänge
gespeichert wurden, als auch aus dem primären Speicher
gelöscht, der vom zugrunde liegenden Azure-unterstützten
Chatdienst verwendet wird.
Allerdings ist das Bild so nicht ganz korrekt, denn in Teams können ja durchaus noch andere Quellen eingebunden werden, die dann von Client direkt angesprochen werden, z.B. externe Webseiten etc.
- Speicherort von Daten in Microsoft Teams
https://docs.microsoft.com/de-de/microsoftteams/location-of-data-in-teams - Informationen zur Aufbewahrung für
Microsoft Teams
https://docs.microsoft.com/de-de/microsoft-365/ompliance/retention-policies-teams?view=o365-worldwide
Identity und Authentifizierung
Jeder Teams Benutzer muss natürlich dem System bekannt sein, eine SIP-Adresse haben und sich anmelden können. Diese Funktion wird durch das klassische AzureAD bereit gestellt, in dem Sie als Administrator manuell oder besser noch per AADConnect die Personen verwalten.
Da Microsoft aber das AzureAD mit den Konten nicht noch mit weiteren Diensten überladen will, hat Teams genau wie Exchange Online noch ein eigenes Directory, in dem die Identitäten übertragen werden. Siehe dazu auch Azure AD - Ein Verzeichnisdienst, oder zwei oder mehr.
Allerdings wertet Teams fast keine Informationen aus ihrem lokalen Active Directory aus, da es lokal keine Schemaerweiterung für Teams bedarf und ADSync so auch nichts abgleichen kann. Das Provisioning muss daher direkt gegen AzureAD und Teams in der Cloud erfolgen.
1:1 Chat
Anders als bei Skype sind diese Unterhaltungen "beständig", d.h. bleiben erhalten und damit müssen Sie auch irgendwo gespeichert werden. Teams legt diese Informationen in einem versteckten Ordner im Postfach ab.
Wenn ein Anwender kein Exchange Online Postfach hat, bekommt er für Teams dennoch ein "verstecktes" Postfach nur für Teams. Teams legt die Informationen also nicht auf einem OnPremise Postfach ab.
- Searching cloud-based mailboxes for On-Premises
users
https://docs.microsoft.com/en-us/microsoft-365/compliance/search-cloud-based-mailboxes-for-On-Premises-users
1:1 Dateien
Wenn ich in dem Bereich auch mit Dateien arbeite, dann landen diese aber nicht im Postfach sondern in meinem persönlichen OneDrive, auf den auch andere Personen zugreifen können
Team Basis
Ein Team ist nur der Container für verschiedene Channels, in denen sich letztlich das Leben abspielt. Daher legt das Teams Backend für ein neu eingerichtete Team direkt eine eigenständige SharePoint Site im Tenant mit an. Zudem gibt es auch noch eine Group Mailbox in Exchange Online. Dies beiden Standspeicher sind für das Team die zentrale Ablage.
Team:Channel:Chat
Ein Team ist nur der Container für verschiedene Channels, in denen sich letztlich das Leben abspielt. Wenn Sie in einem Channel eine Unterhaltung führen, dann ist auch diese "persistent". Sie wird ein einer "Exchange Group Mailbox" abgelegt.
Team:Channel:Wiki, Dateien und OneNote
In jedem neuen Channel legt Teams auch immer eine Karteikarte "Wiki" und "Dateien" an. Diese Daten landen auch im SharePoint des Teams.
Das Wiki in einem Teams-Kanal wird ab
Feb 2023 durch OneNote ersetzt
MC496248 Wiki retirement and the future of note taking in
Teams Channels
https://admin.microsoft.com/#/MessageCenter/:/messages/MC496248
Team:Meeting:Recording
Anwender können sowohl individuell ein persönliches Meeting starten als auch in einem Channel ein Meeting anberaumen. Ein klassischen Meeting dem Chat-Bereich vor allem aus Audio und Video-Übertragungen, Präsentationen und Desktop-Freigaben. Diese Informationen werden über SRTP als "Echtzeitdaten" übertragen und landen erst einmal nicht als Datei in einem Speicher. Nur die Chat-Nachrichten befinden Sie im normalen Chat-Bereich
Aber die Konferenzteilnehmer können bei entsprechender Berechtigung eine Aufzeichnung der Besprechung aktivieren. Anders als bei Skype for Business ist hier aber nicht ein Client für die Aufzeichnung zuständig, da dies bei einem Teams Client im Browser oder Mobil-Client gar nicht so einfach und erst recht nicht sinnvoll wäre. Das Teams Backend übernimmt in dem Zuge die Aufzeichnung und speichert die Daten dann in Office Streams. Die Information liegt also weder im OneDrive, der SharePoint Library oder dem Exchange Postfach. Im Chat-Verlauf wird aber die Aufzeichnung verlinkt.
Bei der Wiedergabe bezieht der Betrachter die Daten direkt vom Azure Media Netzwerk. Streams kümmert sich um all die Funktionen wie Vor/Zurück-Spulen, Anhalten etc.
Weitere Links
- Teams Cache
- Teams und Exchange - Teams mit Exchange Online, On-Premises, ohne Postfach, Schattenpostfach und CosmosDB
- Teams und Exchange On-Premises
- Teams ohne Exchange Postfach
- Azure AD - Ein Verzeichnisdienst, oder zwei oder mehr
- Cloud Storage
-
How Exchange and Microsoft Teams interact
https://docs.microsoft.com/en-us/MicrosoftTeams/exchange-teams-interact - Microsoft Teams IT architecture and telephony solutions
posters
https://docs.microsoft.com/en-us/microsoftteams/teams-architecture-solutions-posters - Foundations of Microsoft Teams
https://www.youtube.com/watch?v=xJBvJTDiQqg - Files restore for SharePoint and Microsoft Teams
https://techcommunity.microsoft.com/t5/Microsoft-SharePoint-Blog/Files-restore-for-SharePoint-and-Microsoft-Teams/ba-p/480760 - Microsoft Learn: Microsoft 365 data locations – Microsoft
365 Enterprise
https://learn.microsoft.com/en-us/microsoft-365/enterprise/o365-data-locations - Where does Microsoft 365 store your data? A detailed guide
https://nikkichapple.com/microsoft-365-data-locations/