現代分散式應用程式通常需要比傳統 ASP.NET Web API 方法(例如表單或 Windows 驗證)更強大的驗證。本指南詳細介紹了在 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
.
此方法可以在 IIS 託管的 ASP.NET Web API 中啟用 JWT 不記名令牌驗證,無需 OWIN 中間件,從而為您的 Web 服務提供安全且可擴展的授權。
以上是如何在 IIS 上的 ASP.NET Web API 中實作 JWT 不記名令牌身份驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!