Estoy usando IdentitySercer4 con mi aplicación .net. Tengo IDS ejecutándose y distribuyendo tokens JWT, un punto final de API protegido con JWT y un sitio web.
P. Mi sitio web va a IDS para obtener el token y ahora puede llamar al extremo de la API. Pero, ¿qué hago a continuación? ¿Seguramente no vuelvo a IDS por otro token para cada llamada? ¿Guardo mi token JWT, ya sea Db o cookie? y luego presentarlo cada vez. ¿Cuándo se realiza la verificación para ver si el token JWT ha caducado y el cliente vuelve a IDS para obtener un nuevo token?
Gracias
Almacena en caché su token en el cliente y lo presenta en el encabezado de Authorization en cada solicitud. El servidor de recursos (su API) valida el token durante cada solicitud. Al principio, comprueba la firma bajo el token utilizando la clave pública (el token está firmado por la clave privada que solo conoce el servidor de identidad). Si la firma es válida, verifica otras cosas como la fecha de vencimiento. La clave pública se puede obtener del URI /.well-known/openid-configuration de su IdentityServer. El servidor de recursos (su API) no debe llamar a este punto final en cada solicitud, sino que debe almacenar en caché la clave pública. Si su API está escrita en .NET, debe considerar usar la implementación de middleware de autenticación predeterminada y configurar Authority para que apunte a su IdentityServer, de esta manera la validación de token funcionará de manera inmediata.
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.Authority = "<IdentityServerAddress:Port>"; })