Wenn ich versuche, dieses JWT zu passieren (herausgegeben von Azure Mobile Services) als HTTP-Header/Autorisierung/Bearer token:Warum bekomme ich SecurityTokenSignatureKeyNotFoundException?
Header:
{
"alg": "HS256",
"typ": "JWT",
"kid": "0"
}
Claims:
{
"ver": 2,
"aud": "Facebook",
"iss": "urn:microsoft:windows-azure:zumo",
"urn:microsoft:credentials": "pYK8b5...",
"exp": 1436730730,
"uid": "Facebook:10000xxxxxxxxxx"
}
In meinem ASP.NET Web-API konfigurierte:
const string issuer = "urn:microsoft:windows-azure:zumo";
byte[] mobileServicesSecret = TextEncodings.Base64Url.Decode(ConfigurationManager.AppSettings["as:SecretKey"]);
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { "Facebook" },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, mobileServicesSecret)
}
});
I erhalten:
Eine erste Chance Ausnahme des Typs 'System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException' in Syst aufgetreten em.IdentityModel.Tokens.Jwt.dll
Ich vermute, das ist, weil die Anwesenheit der "Kid" -Eigenschaft?
EDIT: Mit dieser https://github.com/Magenic/JWTvalidator/tree/master/JwtValidator/JwtValidator ist es möglich, die JWT zu validieren, damit es nichts falsch daran ist. Aber ich möchte wirklich OWIN/Katana verwenden.
Konnten Sie das Problem überwinden? Ich stecke damit fest. Könnten Sie den Code bereitstellen? –
@KunalB. Nein, tut mir leid, ich habe nie eine Lösung gefunden, um Owin/Katana zu benutzen. Ich musste die JwtValidator-Klasse in der Verbindung verwenden und ein benutzerdefiniertes Authentifizierungsattribut verwenden, um es zu überprüfen. Microsoft macht das, was sie am besten können; ein Team (Azure Mobiles Services Team) sitzt auf der einen Seite des Zauns, das andere (ASP.NET Team) sitzt auf der anderen Seite, und sie haben wahrscheinlich nie miteinander gesprochen ... :( –
Nach 2 Tagen hier ist was Ich fand - http://markwalsh.io/development/2014/12/02/ASP.Net%20Web%20API%20with%20JWT/ das funktionierte für mich.Während des Debugging bekomme ich immer noch eine seltsame Nachricht. –