Graph und Kosten
Über die universelle Graph-API können sowohl Programme als auch Anwender auf ihre Daten zugreifen. Am 2. Jun 2022 hat Microsoft in einen Blog-Artikel daran erinnert, dass es eine Änderung zum 6. Jul 2022 gibt: Bestimmte Zugriffe auf Graph sind zukünftig nicht mehr mit der regulären Lizenz eingeschlossen. Die erste diesbezügliche Ankündigung gab es schon im Oktober 2021.
Was kostet?
Als Referenz gilt schon die Seite, die Microsoft im Oktober 2021 bereitgestellt hat:
- Licensing and payment requirements for Microsoft Teams APIs
in Microsoft Graph
https://docs.microsoft.com/en-us/graph/teams-licenses
Microsoft unterscheidet dabei einen "Mode-A" und einen Mode-B" und zuletzt einen "Eval-Mode". Das Kriterium ist dabei, ob der Client "Security oder Compliance"-Funktionen nutzt.
- Microsoft Azure: API Terms for Security & Compliance
Applications
https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA#ServiceSpecificTerms
Zudem werden dann noch die genutzten Methoden unterschieden. Für Zugriffe von Applikationen des Mode-A (nutzen Security oder Compliance) gilt folgende Tabelle:
Quelle:
https://docs.microsoft.com/en-us/graph/teams-licenses#modela-requirements
Wenn Sie genau hinschauen, dann sind das alles nur "Lese"-Zugriffe auf Teams-Informationen, die aus Compliance-Gründen in anderen Produkten gespeichert werden müssen.
- chatMessage – Change Notifications API
- chats: getAllMessages – Export API
- channel: getAllMessages – Export API
- Update chatMessage – Patch API
- Export content with the Microsoft Teams Export APIs
https://docs.microsoft.com/en-us/microsoftteams/export-teams-content
Diese APIs sind auch nicht generell und pauschal nutzbar. Microsoft hat sich hier eine Registrierungspflicht vorbehalten. Als Entwickler, der diese APIs nutzen will, müssen Sie ihre Applikation bei Microsoft übe ein Formular anmelden:
- Access to Protected APIs with Azure Subscription request
https://forms.office.com/pages/responsepage.aspx?id=v4j5cvGGr0GRqy180BHbRzunGr4BpIZKrR2pxgnek8xURTVSUllZVFYyVlE4Tkw3UFZXSFZXN0I2WC4u
Over Limit
Aktuell scheint Microsoft noch keine "strenge Lizenzkontrolle" umgesetzt zu haben. Für die korrekte Lizenz ist der Administrator des Tenant zuständig und nicht der App-Administrator:
It is the responsibility of the tenant owner (not the app
owner) to ensure users are properly licensed.
Quelle:
https://docs.microsoft.com/en-us/graph/teams-licenses#required-licenses-for-modela
Wenn eine Applikation das Limit überscheitet, dann bekommt Sie einen 402 Fehlercode. Aber auch hier steht wachsweich:
A successful API call does not mean that the proper licensing is in place.
Not all license violations can be detected, and grace periods might be granted
in some cases. Similarly, API success in evaluation mode does not guarantee the
call is within seeded capacity as grace periods may be granted in some cases.
Quelle:
https://docs.microsoft.com/en-us/graph/teams-licenses#improper-licensing-and-evaluation-mode-seeded-capacity-exceeded
.
Auf der anderen Seite plant Microsoft erst noch, die Zusatznutzung zu berechnen.
In the future, Microsoft will charge a fee for usage over
the seeded capacity. You will also be able to associate an Azure subscription to
your application registration.
Quelle:
https://docs.microsoft.com/en-us/graph/teams-licenses#price-for-additional-use
Das ist alles noch etwas halbgar. Auf der einen Seite fordert Microsoft eine Lizenz, damit die APIs durch Applikations genutzt werden dürfen aber weder die Lizenz noch die Grenzwerte werden zuverlässig erzwungen. Ich vermute, dass auch Microsoft erst einmal einen "Zähler" implementiert hat, um die Nutzung zu ermitteln und erst nach und nach die Fesseln enger zieht.
Einschätzung
Es gibt nun also APIs, mit der Sie Daten aus Teams massenhaft und zeitnah exportieren können, um Compliance-Anforderungen zur ausgelagerte "Sicherungen" zu unterstützen. Allerdings ist die Kostenstruktur nicht gerade klar, denn wie wollen Sie denn Abschätzen, wie effektiv eine Applikation die API nutzt? Letztlich sehen Sie es erst bei der Abrechnung und ob sie diese kontrollieren können, steht auf einem anderen Blatt. Da sollten Sie Entwickler wohl einen "Aufrufzähler" addieren.
Als Backup taugen die APIs aber noch nicht wirklich, denn es fehlt eine Import-Schnittstelle dazu.
Wie reagieren die Kunden, wenn Microsoft vielleicht auch die Export-Schnittstellen auf Postfächer oder Sharepoint gesondert bepreist? Da bekommt der Begriff "Vendor Lock-in" eine ganz neue Bedeutung.
Weitere Links
- Upcoming billing changes for Microsoft Graph APIs for Teams messages
https://devblogs.microsoft.com/microsoft365dev/upcoming-billing-changes-for-microsoft-graph-apis-for-teams-messages/ - Licensing and payment requirements for Microsoft Teams APIs
in Microsoft Graph
https://docs.microsoft.com/en-us/graph/teams-licenses - Export content with the Microsoft Teams Export APIs
https://docs.microsoft.com/en-us/microsoftteams/export-teams-content - Microsoft Azure: API Terms for Security & Compliance
Applications
https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA#ServiceSpecificTerms - Microsoft Charging for Teams Export Graph APIs from July
https://practical365.com/teams-export-graph-apis/