Graph-Schnittstellen und Berechtigungen
Der Teams Chat Exporter verwendet ausschließlich delegierte Berechtigungen. Jeder Aufruf erfolgt im Namen der angemeldeten Person und kann nie mehr sehen als sie selbst in Teams und OneDrive.
Version 2.0 · Stand 4. November 2026 · 3 Min. Lesezeit
Delegiert, nicht Anwendung
Microsoft Graph kennt zwei Arten von Berechtigungen. Anwendungsberechtigungen erlauben einem Dienst den Zugriff auf alle Daten im Tenant, ohne angemeldete Person. Delegierte Berechtigungen gelten nur zusammen mit einer angemeldeten Person und sind auf deren Daten beschränkt. Der Teams Chat Exporter fordert keine einzige Anwendungsberechtigung an.
- Eine delegierte Berechtigung mit
.All(z. B.Files.Read.All) bedeutet „alles, worauf die Person Zugriff hat“, nicht „alles im Tenant“. - Administratoren können mit der App keine fremden Chats lesen. Sie sehen, wie alle anderen, nur ihre eigenen.
- Die Zustimmung erteilen Sie einmal für alle über „API-Zugriff“. Einzelne Personen werden nicht nach ihrer Zustimmung gefragt.
Berechtigungen im Detail
| Berechtigung | Wofür | Ohne sie |
|---|---|---|
User.Read | Anzeigename und ID der angemeldeten Person, damit eigene Nachrichten rechts stehen. | App startet nicht. |
Chat.Read | Chats der Person auflisten, Nachrichten und eingefügte Bilder lesen, Besprechungsdaten eines Chats. | Kein Export von Chats. |
ChannelMessage.Read.All | Kanalnachrichten und Antworten in Teams lesen, in denen die Person Mitglied ist. | Kein Export von Kanälen. |
Team.ReadBasic.All | Die Teams der Person auflisten. | Reiter „Kanäle“ leer. |
Channel.ReadBasic.All | Die Kanäle eines Teams auflisten. | Reiter „Kanäle“ leer. |
Files.Read.All | Anhänge laden, die in OneDrive anderer oder auf Team-Websites liegen und im Chat geteilt wurden. | Anhänge fehlen im Export. |
Files.ReadWrite | Exporte ins eigene OneDrive schreiben, vorhandene Exporte lesen. | Kein Export, kein Archiv. |
Calendars.Read | Teilnehmerbericht: Einladungen und Zusagen aus dem eigenen Kalender. | Bericht ohne Einladungsliste. |
OnlineMeetingArtifact.Read.All | Teilnehmerbericht: Anwesenheitslisten von Besprechungen, die die Person organisiert hat. | Bericht ohne Anwesenheitszeiten. |
Aufgerufene Endpunkte
Alle Aufrufe gehen an Microsoft Graph v1.0 (https://graph.microsoft.com/v1.0). Die App liest Listen seitenweise mit $top=50 und folgt @odata.nextLink.
| Zweck | Endpunkt | Berechtigung |
|---|---|---|
| Profil | GET /me | User.Read |
| Chats auflisten | GET /me/chats?$expand=members,lastMessagePreview | Chat.Read |
| Ein Chat | GET /me/chats/{id}?$expand=members | Chat.Read |
| Nachrichten (auch nur Neues) | GET /me/chats/{id}/messages mit Filter auf lastModifiedDateTime | Chat.Read |
| Eingefügte Bilder | GET …/messages/{id}/hostedContents/{id}/$value | Chat.Read bzw. ChannelMessage.Read.All |
| Teams | GET /me/joinedTeams | Team.ReadBasic.All |
| Kanäle | GET /teams/{id}/channels | Channel.ReadBasic.All |
| Kanalnachrichten | GET /teams/{id}/channels/{id}/messages?$expand=replies | ChannelMessage.Read.All |
| Antworten | GET /teams/{id}/channels/{id}/messages/{id}/replies | ChannelMessage.Read.All |
| Anhänge | GET /shares/{url}/driveItem und Download über @microsoft.graph.downloadUrl | Files.Read.All |
| Export schreiben | PUT /me/drive/root:/{pfad}:/content, große Dateien über createUploadSession | Files.ReadWrite |
| Archiv lesen | GET /me/drive/root:/{ordner}:/children, GET /me/drive/items/{id}/content | Files.ReadWrite |
| Besprechung eines Chats | GET /me/chats/{id}?$select=…,onlineMeetingInfo | Chat.Read |
| Kalender | GET /me/calendar/calendarView | Calendars.Read |
| Anwesenheitslisten | GET /me/onlineMeetings/{id}/attendanceReports | OnlineMeetingArtifact.Read.All |
Dazu kommt ein Aufruf an die SharePoint-REST-API der aktuellen Website, um den Lizenzschlüssel zu lesen: GET /_api/web/GetStorageEntity('TeamsChatExporterLicenseKey'). Dafür ist keine Graph-Berechtigung nötig.
Drosselung durch Microsoft Graph
Microsoft Graph begrenzt die Zahl der Anfragen pro Person und Tenant. Die App lässt deshalb höchstens zwei Exporte parallel laufen, beachtet Retry-After und wiederholt gedrosselte Anfragen automatisch. Wird es trotzdem zu viel, meldet ein Export „Microsoft Graph bremst gerade“ und lässt sich später fortsetzen.
Noch Fragen?
Viele Antworten stehen in den häufigen Fragen. Ab Paket L hilft Ihnen unser Support per E-Mail weiter.
