最新の分散アプリケーションでは、フォームや Windows 認証などの従来の ASP.NET Web API メソッドよりも堅牢な認証が必要になることがよくあります。このガイドでは、IIS でホストされる Web API での JWT ベアラー トークン認証の実装について詳しく説明します。
1.トークンの生成
JWT トークンは、ヘッダー、クレーム、署名で構成されます。 System.IdentityModel.Tokens.Jwt
NuGet パッケージは、対称キーを持つ HMACSHA256 を使用してトークンの生成を容易にします。
<code class="language-csharp">public static string GenerateToken(string username, int expireMinutes = 20) { var symmetricKey = Convert.FromBase64String(Secret); var tokenHandler = new JwtSecurityTokenHandler(); ... return token; }</code>
2.トークンの検証
トークンの検証は以下を使用して行われます:
<code class="language-csharp">private static bool ValidateToken(string token, out string username) { ... }</code>
これはカスタム認証フィルター属性の中核を形成します:
<code class="language-csharp">public class JwtAuthenticationAttribute : Attribute, IAuthenticationFilter { ... }</code>
3.認証のリクエスト
認証が必要なアクションまたはルートに JwtAuthenticationAttribute
を適用します。 フィルターは JWT を検証し、ClaimsPrincipal
(失敗した場合は null) を提供します。
4.認可
匿名アクセスを制限するには、AuthorizeAttribute
をグローバルに使用します。 保護されたアクション内で、ClaimsPrincipal
.
この方法では、OWIN ミドルウェアを使用せずに、IIS でホストされる ASP.NET Web API で JWT ベアラー トークン認証が有効になり、Web サービスに安全でスケーラブルな認証が提供されます。
以上がIIS 上の ASP.NET Web API で JWT ベアラー トークン認証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。