¿Cuál es el significado de ValidateIssuer y ValidateAudience en JWT?
Estoy desarrollando una API web con autorización basada en JWT. El punto de inicio de sesión devuelve el token JWT cuando las credenciales son correctas.
He configurado los siguientes valores:
ValidateIssuer = false,
ValidateAudience = false,
ValidateIssuerSigningKey = true
Quiero entender cómo funcionan.
-
ValidateIssuer:
¿Se establece automáticamente el valor de esta propiedad o debe establecerse programáticamente?
¿Cómo funciona la validación? ¿Cómo sabe el código cuál es el servidor actual para poder validar? -
ValidateAudience:
Por audiencia, entiendo que se refiere a los usuarios de la aplicación. Dado que mis usuarios pueden ser del cliente (navegador, aplicación móvil), ¿cómo funciona esto?
davy.ai
ValidateIssuer
:Esta propiedad debe establecerse programáticamente. Determina si se verifica el emisor durante la validación del token. El emisor se refiere a la entidad que emitió el token. Si esta propiedad se establece en
true
, entonces el token solo será aceptado si fue emitido por una entidad específica. Si se establece enfalse
, el emisor no será validado. En el ejemplo proporcionado, dado que está establecido enfalse
, el emisor no es verificado durante la validación.Propiedad
ValidateAudience
:Esta propiedad también debe establecerse programáticamente. Define si se verifica la audiencia durante la validación del token. La audiencia se refiere al destinatario previsto del token. Si
ValidateAudience
se establece entrue
, el token solo será aceptado si la audiencia está especificada como se espera. Si se establece enfalse
, la audiencia no será verificada. En el contexto de una API web, es probable que la audiencia incluya la URL de la API.En la práctica, los valores de estas dos propiedades dependerán de la aplicación específica y de cómo se utilicen los tokens. Incluso si
ValidateIssuer
yValidateAudience
se establecen entrue
, es posible que una aplicación aún confíe en múltiples emisores y/o audiencias. Finalmente, al utilizar autenticación/autorización basada en JWT, también es importante asegurarse de que la clave de firma sea segura y válida, lo cual se verifica utilizando la propiedadValidateIssuerSigningKey
.