2017-12-04 4 views
3

Ich wurde nicht autorisiert, wenn ich aufrufe, um den Kalender in der Microsoft Graph-API abzurufen. Mit dieser Überprüfung wird ein Zugriffstoken abgerufen.Zugriff auf die Kalender in office365-Gruppen nicht möglich

Ich denke, das Problem ist, dass, wenn ich die Get HTTP-Anfrage im Kalender abrufen das Access-Token nicht mit Anmeldeinformationen, die in den Unauthorized Call führen wird erstellt. Wie kann ich meinen Code ändern, um damit Credentials zu senden und einen besseren Token mit mehr Privilegien zu erhalten?

Im Azure-Portal gewährte ich alle Berechtigungen, um festzustellen, ob die Anwendungsberechtigungen nicht ordnungsgemäß festgelegt wurden.

AuthenticationContext authenticationContext = new AuthenticationContext(authString, false); 
ClientCredential clientCred = new ClientCredential(_azureAd_ClientId, _azureAd_SecretKey); 

string tokenResult; 

AuthenticationResult authenticationResult; 
try 
{ 
    authenticationResult = await authenticationContext.AcquireTokenAsync(_azureAd_GraphResource, clientCred); 
    var user = authenticationResult.UserInfo; 
    string_token = authenticationResult.AccessToken; 
    tokenResult = JsonConvert.SerializeObject(authenticationResult); 
} 
catch (Exception ex) 
{ 
    throw new Exception(ex.Message, ex.InnerException); 
} 
+0

Ist der Wert von '_azureAd_GraphResource'' https: // graph.microsoft.com'? – juunas

+0

Ja, aber mit einem Ende Schrägstrich "https://graph.microsoft.com/" –

+0

Ja, das ist in Ordnung. Hast du App-Berechtigungen hinzugefügt? Da Sie Client-Anmeldeinformationen verwenden, gelten delegierte Berechtigungen hier nicht. Beachten Sie außerdem, dass Sie diese Berechtigungen z. Klicken Sie im Portal auf die Schaltfläche Berechtigungen erteilen. – juunas

Antwort

0

Kommentare Beim Lesen scheint es, dass Sie eine neue Zustimmungsaufforderung, um auslösen können, müssen die Anwendung die Berechtigungen erteilen Sie neu konfiguriert. Wenn dies eine V1-App ist, können Sie prompt = admin_consent am Ende Ihrer Anfrage hinzufügen. Wenn es sich um eine V2-App handelt, sollten Sie den Endpunkt/adminconsent verwenden. Weitere Informationen dazu finden Sie unter here.

Es gibt auch einige weitere Dokumente zur allgemeinen Einwilligung von Administratoren here.

Verwandte Themen