Estos campos están aquí para permitir que el componente que verifica el ticket identifique la clave utilizada para la firma.
-
jku
es un URI que hace referencia a la clave pública utilizada para generar la firma. Debe seguir el formato RFC7517 . La entidad que verifica el token es responsable de verificar si esa clave de firma puede ser confiable o no.
-
kid
es la identificación de la clave y solo es válida en el contexto de una audiencia determinada: el contexto de su aplicación debe definir cómo usar ese parámetro para identificar la clave. Puede ser la identificación del usuario del certificado x509 para firmar, puede ser el número de serie certificat, puede ser una referencia a una fila en una tabla, puede ser el ID de un secreto HMAC almacenado en un archivo JSON, o el XPath dentro de un documento XML, lo que sea definido por la parte firmante.
-
x5u
debe contener una URL para el certificado x509 que se usó para firmar el token. El certificado debe estar en el formato PEM .
Por lo general, solo tendrá uno de estos parámetros en un token dado (después de todo, solo puede haber una clave de firma), aunque no es imposible tener la misma clave accesible a través de diferentes métodos (esto significa que es no es imposible tener un encabezado jku y x5u que apunte a la misma clave, pero debes intentar evitar ese tipo de ambigüedad).
Por definición, si alguien cambia los encabezados y vuelve a firmar el ticket, el resultado no es el mismo token , por lo que no debe preocuparse por eso: puede rechazar de forma segura cualquier token que haya no se puede validar correctamente.