c# security identityserver3

c# - Actualización de System.IdentityModel.Tokens.Jwt que provoca un cambio importante en el cliente IdentityServer3



security (2)

Esperemos que sea fácil de resolver.

El paquete System.IdentityModels.Tokens.Jwt de Microsoft se actualizó ayer en NuGet de 4.0.2.206211351 a v5.0 . Desafortunadamente, esto está causando un cambio importante en algunos códigos "estándar" de IdentityServer3 . es decir, tomados de sus ejemplos de código, así que imagino que algunos desarrolladores podrían ver este problema en los próximos días.

Codigo original

utilizando la versión v4.0.2.xxxxxx del paquete. yo tengo

using System.IdentityModel.Tokens;

en el espacio de nombres.

entonces en el método de configuración comienza como:

public void Configuration(IAppBuilder app) { AntiForgeryConfig.UniqueClaimTypeIdentifier = "sub"; JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>(); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = "Cookies" }); app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions { ... };

Después de actualizar

Después de actualizar la línea de confiuración:

JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();

Está causando un problema.

Lo primero es que la Clase, aparentemente, se ha movido al espacio de nombres System.IdentityModel.Tokens.Jwt , esto no es tan malo de resolver.

Sin embargo, ahora obtengo una Object reference required for a non-static field error de Object reference required for a non-static field en el JwtSecurityTokenHandler.InboundClaimTypeMap .

¿Me estoy perdiendo algo aquí, otra biblioteca que se requiere o hay algo que esté sucediendo antes de que se llame a la Startup.Configuration() que necesite ser investigada?


Cuando vas al médico y dices "siempre me duele cuando hago esto", el médico responderá "y luego dejará de hacer esto";)

v4 -> v5 es por definición un cambio de ruptura. ¿Necesitas v5?

Dicho esto, una simple exploración de inteligencia habría hecho que InboundClaimTypeMap nombre de InboundClaimTypeMap a DefaultInboundClaimTypeMap .

Esté preparado para más cambios de ruptura en el camino.


La validación del token de acceso en OWIN no es compatible con system.identitymodel v5: debe pasar a la versión v4. Consulte el problema aquí.