Office365 API - Zugriff auf die Kalender anderer Benutzer / Räume

Ich versuche, eine Anwendung zu erstellen, die Zugriff auf alle Kalender einer Organisation (Benutzer, Räume usw.) hat.

erzeit meldet sich mein Authentifizierungsablauf im Namen eines Mandantenbenutzers an und verwendet Aktualisierungstoken, um auf die erforderlichen Ressourcen zuzugreifen. Sobald ich eine Anfrage mache an:

https://outlook.office365.com/api/v1.0/users/{room-resource@email}/events

Meine Bewerbung wird mit einem @ beantwort401

Aus meiner Sammlung geht hervor, dass dieser Fluss auf den Bereich eines einzelnen Benutzers beschränkt ist. Obwohl der Mieter adminsolltenn Sie die Berechtigung haben, eine der Raumressourcen anzuzeigen, ist der Raum technisch gesehen ein Benutzer selbst, sodass die API mit einem verbotenen Fehler reagiert. Es scheint nun, dass der ordnungsgemäße Ablauf darin besteht, dass ein Mandantenadministrator meiner Anwendung die Berechtigung erteilen muss, indem er das neue @ verwendeService OAuth Flow.

In diesem Beitrag scheint die API OAuth @ zu verwendeclient-Berechtigungsnachweise gewähren Typ (nur App-Token). Anstatt das @ zu benutz/oauth/common Endpunkt muss ich jetzt benutzen/oauth/tenant-id, das ich über das JWT-Token abrufen kann, das im @ zurückgegeben wurcode+id_token Antworttyp. Das führt zu meiner ersten Frage:

Ist die Verwendung des OpenID-Flows die einzige Möglichkeit, die Mandanten-ID zunächst abzurufen?

Next ist, wo die Dinge für mich ein wenig verschwommen werden.

Wir müssen jetzt ein X.509-SSL-Zertifikat generieren und den Fingerabdruck / Wert in unser Azure-Anwendungsmanifest hochladen. Leicht genug

Dann nach der Diskussion inOffice 365 Rest API - Daemon-Wochenauthentifizierung Wir erstellen ein bestimmtes JWT, codieren es mit base64 und signieren es mit unserem Zertifikat.

Ich bin noch nicht zu den letzten Schritten gekommen, aber ich werde meine Ergebnisse veröffentlichen, wenn ich kann. Ich stelle nur sicher, dass ich das richtige Verfahren für die Ressourcen befolge, auf die ich zugreifen möchte. Ich weiß, dass die Service-Token eine ziemlich neue Funktion sind. Es ist nur bedauerlich, dass ich den Fluss des Sendens der signierten JWT auf Stackoverflow finden musste und nicht die offizielle MSFT-Dokumentation ...

Ich habe auch festgestellt, dass wir kein @ erhalten, da wir den Client-Anmeldeinformationsfluss verwenderefresh_token in der Antwort. Also für meine letzte Frage:

Bei Zugriff auf verschiedene Ressourcen (z. B. Graph API / Office365 API) erhalte ich für jede Ressource nur ein anderes Zugriffstoken mithilfe meiner signierten Anforderung anstelle von Verwendung von Aktualisierungstoken für mehrere Ressourcen?

Wenn die allgemeine Richtung, in die ich gehe, richtig ist, lass es mich wissen! Jede Hilfe wird sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage