2016-09-27 1 views
0

Mein Team und ich haben Web App erstellt, die die Microsoft Graph-API zum Wiederherstellen von Daten aus der Office 365-Umgebung eines Benutzers verwendet. Die Anwendung verwendet Azure AD, um Benutzern ein Zugriffstoken bereitzustellen.Wie kann ich ein Zugriffstoken verwenden, das von der Microsoft Graph-API für den Zugriff auf andere APIs abgerufen wird?

Wir versuchen nun, eine Komponente hinzuzufügen, die mit der EWS-API auf die Exchange Online-Informationen des gleichen Benutzers zugreifen kann. Es scheint jedoch so, als ob der Versuch, dasselbe Zugriffstoken wie das von der Graph-API bereitgestellte zu verwenden, immer eine Antwort 401 (nicht autorisiert) zurückgibt, selbst wenn ich in meiner Azure AD-Anwendung die entsprechenden Berechtigungen eingerichtet habe. Hier ist der Code, den wir zu versuchen, verwenden und einige Informationen des Benutzers zuzugreifen:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013); 
service.HttpHeaders.Add("Authorization", "Bearer " + accessToken); 
service.PreAuthenticate = true; 
service.SendClientLatencies = true; 
service.EnableScpLookup = false; 
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); 
TasksFolder tasksfolder = TasksFolder.Bind(service, WellKnownFolderName.Tasks, 
         new PropertySet(BasePropertySet.IdOnly, FolderSchema.TotalCount)); 

Die Bind-Methode wird immer geben einen 401-Fehler, die mich auffordert, zu denken, dass ther Zugriffstoken von einer API gilt nicht für ein anderes ist.

Wenn das der Fall ist, ist es möglich, ein einzelnes Zugriffstoken zu erhalten, das für mehrere API-Aufrufe gültig ist?

+0

Haben Sie dieses Problem lösen? I kann keine Berechtigung sehen, die genau wie die erste Antwort in Azure-App-Berechtigungen vorschlägt – amlwwalker

Antwort

Verwandte Themen