Moderne verteilte Anwendungen erfordern häufig eine robustere Authentifizierung als herkömmliche ASP.NET-Web-API-Methoden wie Formulare oder Windows-Authentifizierung. In diesem Leitfaden wird die Implementierung der JWT-Bearer-Token-Authentifizierung in einer auf IIS gehosteten Web-API detailliert beschrieben.
1. Token-Generierung
Ein JWT-Token besteht aus einem Header, Ansprüchen und einer Signatur. Das System.IdentityModel.Tokens.Jwt
NuGet-Paket erleichtert die Tokengenerierung mithilfe von HMACSHA256 mit einem symmetrischen Schlüssel.
<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. Token-Validierung
Die Token-Validierung wird erreicht mit:
<code class="language-csharp">private static bool ValidateToken(string token, out string username) { ... }</code>
Dies bildet den Kern eines benutzerdefinierten Authentifizierungsfilterattributs:
<code class="language-csharp">public class JwtAuthenticationAttribute : Attribute, IAuthenticationFilter { ... }</code>
3. Authentifizierung anfordern
Wenden Sie JwtAuthenticationAttribute
auf Aktionen oder Routen an, die eine Authentifizierung erfordern. Der Filter validiert das JWT und stellt ein ClaimsPrincipal
(oder null bei Fehler) bereit.
4. Autorisierung
Verwenden Sie AuthorizeAttribute
global, um den anonymen Zugriff einzuschränken. Rufen Sie innerhalb gesicherter Aktionen Benutzerdetails aus dem ClaimsPrincipal
ab.
Diese Methode ermöglicht die JWT-Bearer-Token-Authentifizierung in Ihrer von IIS gehosteten ASP.NET-Web-API ohne OWIN-Middleware und bietet so eine sichere und skalierbare Autorisierung für Ihre Webdienste.
Das obige ist der detaillierte Inhalt vonWie implementiert man die JWT-Bearer-Token-Authentifizierung in der ASP.NET-Web-API auf IIS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!