作業中はヴィットリオ・ベルトッチの指示に従いました。
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);
}
}
});