Último paso de la cadena. Comprueba que el consentimiento que viaja en el token cubra exactamente la operación que se está solicitando — no basta con que el token sea válido.
La verificación es token-based: el consentimiento se lee del propio access token, no se consulta a un servicio externo.
El paso anterior ya verificó la firma del token y confirmó con el Authorization Server que sigue activo. Revocación y expiración, por lo tanto, ya están cubiertas antes de llegar aquí. Lo que queda por decidir es distinto: si lo que el titular autorizó alcanza para lo que se está pidiendo.
type que requiere y, opcionalmente, con las actions que necesita.typeauthorization_details con el type requerido. Si no, se responde 403.actions alcanzanactions concedidas para ese type debe cubrir todas las exigidas. Si falta una, se responde 403.x-consent-context.El enforcement se basa en type y actions, que son los campos que el esquema del SFA garantiza. Otros atributos que puedan venir en authorization_details son extensiones y no se usan para autorizar.
Toda la configuración es por contexto, es decir, por API y por operación — es lo que permite que dos endpoints del mismo servicio exijan permisos distintos.
El paso anterior, of-context-params, resuelve context-authorization-type y context-required-actions desde la ruta del recurso y las inyecta. Configúrelas a mano sólo cuando quiera apartarse de ese mapeo: el valor manual tiene prioridad.
| Variable | Obligatoria | Descripción |
|---|---|---|
context-authorization-type | Sí | El type RAR que el recurso exige. |
context-required-actions | No | Lista de actions que deben estar todas concedidas. Si se omite, sólo se valida la presencia del type. |
forward-consent-context | No | true para propagar x-consent-context hacia su servicio. Por defecto no se propaga. |
Si context-authorization-type no está configurada para el recurso, la solicitud se rechaza. Es deliberado: un recurso regulado sin exigencia declarada quedaría abierto a cualquier consentimiento.
x-consent-contextCuando la propagación está habilitada, su servicio recibe el contexto del consentimiento codificado en base64url:
// contenido antes de codificar { "sub": // titular del consentimiento "grantId": // identificador del consentimiento "type": // el type RAR exigido por el recurso "grantedActions": // las actions efectivamente concedidas }
code | Cuándo |
|---|---|
SFA_ERR_FORBIDDEN | El type exigido no está en el token, o las actions concedidas no cubren las requeridas |
SFA_ERR_INVALID_GRANT | El consentimiento del token no es utilizable |
SFA_ERR_UNAUTHORIZED | No hay consentimiento legible en el token |
SFA_ERR_INTERNAL | Fallo no previsto, incluida la falta de configuración obligatoria |
El interceptor completo, tal como se instala en la Sensedia API Platform.
of-consent-validation.js — JavaScript, 13 KB.
Se sirve con extensión .json porque el portal no entrega archivos .js; el contenido es JavaScript. Guárdelo como of-consent-validation.js.