0

Ich versuche, die Graph-API zu verwenden, ich authentifiziere mich gegen eine SharePoint-Website als URL der Ressource. Dies liegt daran, dass ich C# CSOM api verwende, um mit der Sharepoint-Site zu kommunizieren.Azure Active Directory-Diagramm Api - Benutzer

Wenn ich versuche, eine Grafik-API-Anfrage mit dem gleichen Bearer-Token zu erstellen, heißt es nicht autorisiert. Ich habe der mobilen App auch die Berechtigungen für die Graph-API erteilt. Bedeutet dies, dass meine Ressource uri anders sein muss, wenn ja, was sollte es sein, da es nicht klar ist? Ich bin unsicher, wie ich es finden kann.

Ich möchte im Grunde die registrierte app in azure Erlaubnis Sharepoint und Grafik API geben. Wenn ich das Token erhalten, möchte ich in der Lage sein, dies von Anfragen für beide Typen zu verwenden

var client = new HttpClient(); 

client.DefaultRequestHeaders.Add("Accept", "application/json"); 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "TOKEN_FROM_AUTHENTCIATION"); 

var result = client.GetAsync("https://graph.microsoft.com/v1.0/me/messages?$select=subject,from,receivedDateTime&$top=25&$orderby=receivedDateTime%20DESC").Result; 

Meine Verbindungsdetails ähnlich sind wie folgt zusammen:

<add key="ida:AADInstance" value="https://login.microsoftonline.com/{0}" /> 
<add key="ida:Tenant" value="mytenant.onmicrosoft.com" /> 
<add key="ida:ApplicationId" value="A GUID" /> 
<add key="ida:RedirectUri" value="http://AnyUri/" /> 
<add key="ida.ResourceUrl" value="https://mytenant.sharepoint.com/" /> 

Ich denke, dass meine ResourceUrl Muss ein Graph sein, aber nicht verstehen, was es sein soll. Muss ich eine Instanz des Graphen API für meine Domain erstellen?

Ich mache diese Anforderung mit dem Token Fiedler wie folgt verwendet wird, aber dies kommt zurück als nicht autorisiert 401

GET https://graph.windows.net/22312560-20c8-0000-0000-0000000000/users/[email protected]/$links/manager?api-version=1.6 

Content-Type: text/json 
Accept: application/json 
Host: graph.windows.net 
Content-Length: 0 
Authorization: Bearer <THE_TOKEN> 

Antwort

1

Hier sind die Schritte Sie folgen müssen, um sicherzustellen, dass Ihre App wie erwartet funktioniert:

  1. Stellen Sie sicher, dass die App-Registrierung permissions to the Microsoft Graph mit den Bereichen enthält, die für den API-Aufruf erforderlich sind.

  2. Stellen Sie Ihre Ressource "https://graph.microsoft.com/"

  3. eine new access token für diese Ressource holen.
  4. Rufen Sie die Microsoft Graph-API mit diesem neuen Token auf. Sie können überprüfen, ob alles gut aussieht, indem Sie einen JWT-Decoder wie this one verwenden.
+0

Hallo Shawn, ich habe die ResourceId zu https://graph.microsoft.com gesetzt, aber das Token ich noch nicht authentifiziert bekommen sagt, wenn ich versuche und ein Fiedler Antrag stellen, Ill meine Frage mit dem Fiedler Beispiel aktualisieren, Was ist eine einfache Grafikanforderung, die ich ausprobieren könnte? – Andrew

+1

Beachten Sie, dass sich die Azure Active Directory-Grafik-API "https: // graph.windows.net /" von der Microsoft Graph-API "https: // graph.microsoft.com /" unterscheidet. Wenn Sie ein Token für eine bestimmte Ressource erhalten, ist dieses Token nur gültig, wenn Sie diese Ressource aufrufen. Der Fehler hier scheint, dass Sie die AAD Graph API mit einem Token für MS Graph API aufrufen. Stattdessen versuchen Sie diesen Aufruf: "https: // graph.microsoft.com/v1.0/me /' –

+1

Perfekt, danke das ist toll, so eine einfache Sache, jetzt haben Sie mir gezeigt, sehr geschätzt – Andrew

Verwandte Themen