ich für meinen Api Azure App Dienste verwenden (ASP.NET Core) und ich habe einen Api-Controller wie dieseazur-mobile-apps 401 Fehler bekommen, wenn invokeApi Aufruf
[Route("api")]
public class PingController : Controller
{
[HttpGet]
[Route("ping")]
public string Ping()
{
return "Pong";
}
[Authorize]
[HttpGet("claims")]
public object Claims()
{
return User.Claims.Select(c =>
new
{
Type = c.Type,
Value = c.Value
});
}
}
Dann ich bin versucht, Zugang dies von einem Ionic2 (Typoskript & Cordova) Implementierung wie diese
this.client = new WindowsAzure.MobileServiceClient('https://mysite.azurewebsites.net/');
this.client.login('google').then(result=>{
this.client.invokeApi("claims", {
body: null,
method: "get"
}).done(function (results) {
alert(JSON.stringify(results));
}, function (error) {
let msg = error.message;
let request = error.request;
alert(msg+';'+request.status);
});
});
der Anmeldebildschirm zeigt richtig und der Service wird aufgerufen, aber nicht mit 401-Fehler. Es funktioniert, wenn ich den 'Ping' Service anrufe. Der HTTP-Aufruf hat X-ZUMO-Header, die ich denke, sollte für die Authentifizierung gut sein (?):
GET /api/claims HTTP/1.1
Host: mysite.azurewebsites.net
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
ZUMO-API-VERSION: 2.0.0
X-ZUMO-INSTALLATION-ID: 10badf87-...
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
X-ZUMO-AUTH: eyJ0eXAiOiJKV...
accept: application/json
X-ZUMO-VERSION: ZUMO/2.0 (lang=Cordova; os=--; os_version=--; arch=--; version=2.0.0-41128.193844)
Referer: http://localhost:8000/index.html
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
Cookie: ARRAffinity=4df5cc005....
die Azure App Debug-Protokoll zeigt nur Standard-401-Bildschirm des IIS. sagen, die Ressource wurde als "anonym" zugänglich gemacht. Ich habe zuvor Aut0 benutzt und Sie müssen JWT Bearer Optionen in der App Konfiguration registrieren. Aber für Azure sehe ich keine Tutorials, die einen ähnlichen Schritt machen. Was fehlt mir also, damit das funktioniert?
Fügen Sie den Berechtigungsheader Ihrer Anspruchsanforderung hinzu. Du bekommst ein Ergebnis von der Anmeldung, benutze es – misha130
@ misha130 deshalb ist der X-ZUMO-AUTH Header da. https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview – n00b