Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De JwtBearerEvents, WsFederationEventsen OpenIdConnectEvents gebeurtenissen zijn verificatiegebeurtenissen die respectievelijk worden geactiveerd door de JwtBearer-, WsFederation- en OpenIdConnect-verificatiehandlers . De gebeurtenis OnTokenValidated wordt bijvoorbeeld geactiveerd wanneer een beveiligingstoken wordt gevalideerd. Deze gebeurtenissen worden geactiveerd met een context (bijvoorbeeld TokenValidatedContext) waarmee een eigenschap van het TokenValidatedContext.SecurityToken abstracte type SecurityTokenwordt weergegeven. De standaard implementatie van TokenValidatedContext.SecurityToken is veranderd van System.IdentityModel.Tokens.Jwt.JwtSecurityToken naar JsonWebToken.
Geïntroduceerde versie
ASP.NET Core 8.0 Preview 7
Vorig gedrag
Voorheen werden de betrokken SecurityToken eigenschappen geïmplementeerd door System.IdentityModel.Tokens.Jwt.JwtSecurityToken, die is afgeleid van SecurityToken.
JwtSecurityToken is de implementatie van JSON Web Token (JWT) van de vorige generatie. De JwtSecurityToken tokens zijn geproduceerd door SecurityTokenValidators.
Daarnaast heeft het JwtSecurityTokenHandler.DefaultInboundClaimTypeMap veld de standaardclaimtypetoewijzing voor binnenkomende claims opgegeven.
Nieuw gedrag
Vanaf ASP.NET Core 8.0 implementeert de Microsoft.IdentityModel.JsonWebTokens klasse, die ook is afgeleid van SecurityToken, standaard de SecurityToken eigenschappen.
Microsoft.IdentityModel.JsonWebTokens tokens worden geproduceerd door meer geoptimaliseerde TokenHandler handlers.
Daarnaast biedt het JsonWebTokenHandler.DefaultInboundClaimTypeMap veld de standaardclaimtypetoewijzing voor binnenkomende claims.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze wijziging is aangebracht omdat JsonWebToken (en de bijbehorende JsonWebTokenHandler) de volgende voordelen opleveren:
- 30% prestatieverbetering.
- Verbeterde betrouwbaarheid door gebruik te maken van 'laatst bekende goede' metagegevens (zoals
OpenIdConnectMetadata). - Asynchrone verwerking.
Aanbevolen actie
Voor de meeste gebruikers mag deze wijziging geen probleem zijn omdat het type eigenschappen (SecurityToken) niet is gewijzigd en u het echte type niet zou moeten bekijken.
Als u echter een van de aangetaste SecurityToken-eigenschappen naar JwtSecurityToken hebt geconverteerd (bijvoorbeeld om de claims te verkrijgen), dan hebt u twee opties:
De eigenschap omlaag casten naar
JsonWebToken:service.Configure<JwtBearerOptions>(JwtBearerDefaults.AuthenticationScheme, options => { options.Events.OnTokenValidated = (context) => { // Replace your cast to JwtSecurityToken. JsonWebToken token = context.SecurityToken as JsonWebToken; // Do something ... }; });Stel een van de
UseSecurityTokenValidatorsBooleaanse eigenschappen voor de bijbehorende opties (JwtBearerOptions, WsFederationOptionsof OpenIdConnectOptions) in optrue. Door de eigenschap in tetruestellen, blijven de verificatiehandlersJwtTokenValidatorsgebruiken en blijven ze tokens vanJwtSecurityTokenproduceren.service.Configure<JwtBearerOptions>(JwtBearerDefaults.AuthenticationScheme, options => { options.UseSecurityTokenValidators = true; options.Events.OnTokenValidated = (context) => { // As you were doing before JwtSecurityToken token = context.SecurityToken as JwtSecurityToken; // Do something ... }; });
Betreffende API's
- Microsoft.AspNetCore.Authentication.WsFederation.SecurityTokenValidatedContext.SecurityToken
- Microsoft.AspNetCore.Authentication.JwtBearer.TokenValidatedContext.SecurityToken
- Microsoft.AspNetCore.Authentication.OpenIdConnect.TokenValidatedContext.SecurityToken
- AuthorizationCodeReceivedContext.SecurityToken