Когда я пытаюсь передать этот JWT (выданный мобильными службами Azure) в качестве токена HTTP-заголовка/авторизации/носителя:
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"
}
В моем ASP.NET WEB API настроено:
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)
}
});
Я получил:
В System.IdentityModel.Tokens.Jwt.dll возникло первое случайное исключение типа «System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException».
Подозреваю, это из-за наличия "детского" свойства?
РЕДАКТИРОВАТЬ: используя этот https://github.com/Magenic/JWTvalidator/tree/master/JwtValidator/JwtValidator можно проверить JWT, так что в этом нет ничего плохого. Но я действительно хочу использовать OWIN/Katana.