我在工作时遵循了 Vittorio Bertocci 的指示。
http://www.cloudidentity.com/blog/2013/01/09/using-the-jwt-handler-for-implementing-poor-man-s-delegation-actas/
关于它的一些注释,它说 JWTSecurityTokenHandler,现在是 JwtSecurityTokenHandler。这是一个小错字,但如果你不知道的话,这是一个放松 15 分钟的好方法。
我也无法使用 X509 FindByThumbprint 部分。我认为我没有正确注册我的本地证书。明天上班后,我将发布我必须更改的内容以使其正常工作。
Dominick Baier ( http://leastprivilege.com/ ) 还开设了一门名为 WebApi v2 Security 的复数视觉课程,该课程很好地讨论了如何注入安全管道并设置 web api 项目来处理这个问题。
作为另一种选择,您可以将 Vittorio 使用的 TokenValidationHandler 类替换为 Microsoft.Owin.Security.Jwt 包,并在 Startup.cs 文件中实现以下代码。
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AllowedAudiences = new[] { ConfigurationSettings.AppSettings["ida:Realm"] },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(
ConfigurationSettings.AppSettings["ida:ValidIssuer"],
ConfigurationSettings.AppSettings["ida:SymmetricKey"])
},
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = context =>
{
var identity = context.Ticket.Identity;
return System.Threading.Tasks.Task.FromResult<object>(null);
}
}
});