2014-01-14 1 views
8

Nach dieser: http://msdn.microsoft.com/en-us/library/windowsazure/dn424880.aspx und diese http://msdn.microsoft.com/en-us/library/windowsazure/hh974467.aspxAbfrage der Windows Azure Active Directory Graph Api zur Rest Anruf

Ich sollte ein Erhaltungs-Anforderungs-

https://graph.windows.net/<my-object-guid>/tenantDetails?api-version=0.9 

und ich bin mit Fiddler tun können fang einfach an. Einstellung im Composer: Benutzer-Agent: Fiddler Host: graph.windows.net Autorisierung: Träger eyJ0eXA .... (Mein Token, benutzte einige C# von WAAL, um das Token zu erhalten).

Dies ist, was

HTTP/1.1 401 Unauthorized 
Cache-Control: private 
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8 
Server: Microsoft-IIS/8.0 
WWW-Authenticate: Bearer realm="<my-object-guid>", error="invalid_token", error_description="Access Token missing or malformed.", authorization_uri="https://login.windows.net/<my-object-guid>/oauth2/authorize", client_id="00000002-0000-0000-c000-000000000000" 
ocp-aad-diagnostics-server-name: 11iIdMb+aPxfKyeakCML7Tenz8Kyy+G8VG19OZB/CJU= 
request-id: 99d802a3-0e55-4018-b94d-a8c00ec8f171 
client-request-id: 7ed93efd-86c5-4900-ac1f-747a51fe1d8a 
x-ms-dirapi-data-contract-version: 0.9 
X-Content-Type-Options: nosniff 
DataServiceVersion: 3.0; 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
X-Powered-By: ARR/3.0 
X-Powered-By: ASP.NET 
Date: Tue, 14 Jan 2014 00:13:27 GMT 
Content-Length: 129 

{"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."}}} 

Das Token wird angenommen zurückgegeben wird, wenn ich ein paar Sachen in meiner Anwendung tun so nicht, daß ich seine malformed glauben.

+2

Haben Sie das jemals gelöst? Ich renne in genau den gleichen Fehler – rwisch45

+0

Ich denke nicht, nie versuchte es noch einmal, nachdem ich hier in das Problem lief. –

Antwort

16

Ich lief weiter auf dieses Problem. Ich war mit dem folgenden Code ein Träger-Token für meine native App zu bekommen:

 var authContext = new AuthenticationContext("AUTHORITY"); 
     string token; 
     try 
     { 
      var authresult = authContext.AcquireToken("MYAPP_ID","MYAPP_CLIENTID","MYAPP_REDIRECTURI"); 
      token = authresult.AccessToken; 
     } 

verwenden, das Token für die Genehmigung von Aktionen innerhalb meiner eigenen App funktionierte gut, aber ich würde den gleichen Fehler wie die OP erhalten, wenn sie versuchen zu Verwenden Sie dasselbe Token als Autorisierung für die Graph-API.

Was ich tun musste, war ein neues Token speziell für die Graph-API zu bekommen - ich benutzte den gleichen Code wie oben, aber ich "https://graph.windows.net" anstelle von "MYAPP_ID". Also, klar zu sein, gab der folgende Code mir die richtige OAuth-Token für die Graph API:

 var authContext = new AuthenticationContext("AUTHORITY"); 
     string token; 
     try 
     { 
      var authresult = authContext.AcquireToken("https://graph.windows.net","MYAPP_CLIENTID","MYAPP_REDIRECTURI"); 
      token = authresult.AccessToken; 
     } 

einfach sicher, dass Ihre Anwendung registriert in Azure, die notwendigen Berechtigungen verfügt Ihr Azure Domain Zugriff auf das Verzeichnis.

+1

Ich habe mit dem gleichen Problem mit Fiddler gekämpft. Ich habe deine Lösung ausprobiert und es hat funktioniert! Ich habe meinen App-Traffic mithilfe von Fiddler erfasst. Ich habe den "Ressourcen" -Wert in der POST-Token-Anfrage auf "https://graph.windows.net" bearbeitet. Der Zugangscode, mit dem ich mich beauftragt habe, Anfragen von fiddler an https://graph.windows.net/x/ Gruppen? api-Version = 1.5. Ich danke dir sehr!! –

+0

Warum brauche ich ein anderes access_token, um nur Benutzerdetails zu erhalten, ich habe bereits ein Zugriffs-Token für diesen Benutzer. – Dabbas

+0

Beachten Sie auch, wenn Sie gerade die Berechtigung für Ihre AD-Anwendung gegeben haben, Ihr Verzeichnis zu lesen und darauf zuzugreifen müssen mehrere Stunden warten, bevor das wirksam wird. In der Zwischenzeit erhalten Sie möglicherweise "nicht ausreichende Berechtigungen, um den Vorgang abzuschließen". –

Verwandte Themen