Azure AD API request 401 Unauthorized
Ich habe eine Standard-Web-API, die auf einer Azure-Website mit aktivierter Azure AD-Authentifizierung ausgeführt wird. Wenn ich in einem Browser zur API navigiere, kann ich mich über den Browser anmelden und auf die API zugreifen.
Die WPF-Desktopanwendung erhält jedoch ein Unauthorized Antwort beim Absenden der Anfrage:
var authContext = new AuthenticationContext(authority, new FileCache());
var accessToken = await authContext.AcquireTokenAsync(apiResourceid, clientId, redirectUri,
new PlatformParameters(PromptBehavior.Auto));
// accessToken is valid
var apiUrl = "https://example.azurewebsites.net/api/list";
var request = new HttpRequestMessage(HttpMethod.Get, apiUrl);
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.AccessToken);
var response = await httpClient.SendAsync(request);
Die Authentifizierung ist erfolgreich und ich kann die Benutzerinformationen beim Debuggen sehen.
Ich habe keinen Zugriff auf das Azure-Konto, bin jedoch überzeugt, dass die Service AD-Anwendung ordnungsgemäß konfiguriert ist, um den Zugriff auf die Client AD-Anwendung zuzulassen, wie beim Testen mit einem alternativen Konto (nicht ordnungsgemäß konfiguriert).AuthenticationContext.AcquireTokenAsync
Methode schlug fehl.
Ich habe bemerkt, dass dieAuthenticationResult.ExpiresOn
ist immer in der Vergangenheit, aber es gibt keine Möglichkeit, es zu erweitern. Sollte dies ein zukünftiges Datum sein? - (Zeit ist natürlich UTC)
Anfrage
GET https://example.azure
websites.net/api/categorisation HTTP/1.1
Authorization: Bearer eyJ0eXAiO...
Host: example.azurewebsites.net
Antwort
HTTP/1.1 401 Unauthorized
Content-Length: 58
Content-Type: text/html
Server: Microsoft-IIS/8.0
WWW-Authenticate: Bearer realm="example.azurewebsites.net"
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=e35f2977dba55e6708887e762940f75c2a0fcb0a9df4e1cbe0d3f10a614c59b8;Path=/;Domain=example.azurewebsites.net
Date: Fri, 08 Jul 2016 07:51:13 GMT
You do not have permission to view this directory or page.
Aktualisieren
Ich habe die Umgebung mit einem Azure-Konto neu erstellt, auf das ich Zugriff habe, und erhalte weiterhin eine nicht autorisierte Antwort (funktioniert in einem Browser problemlos).