Referencia de la API de Credenciales
El sistema de credenciales de ISBE expone dos APIs distintas:
| Servicio | Base URL (PRO) | Propósito |
|---|---|---|
| Credential Issuer | https://identity-credentials-issuer.pro.cloud-w.envs.redisbe.com | Emitir, consultar y revocar VCs para empleados y representantes. |
| Credential IDP | https://identity-credentials-idp.pro.cloud-w.envs.redisbe.com | Autenticar usuarios en portales ISBE mediante presentación de VCs (OIDC federado). |
Ambos servicios están implementados en Django y exponen documentación interactiva Swagger/OpenAPI en GET /swagger.
Diagrama de interacción entre servicios
El siguiente diagrama muestra la secuencia completa de emisión y uso de una IsbePortalLearCredential, desde la solicitud inicial hasta la autenticación en el portal.
Autenticación de las APIs
Credential Issuer
La mayoría de los endpoints del Issuer requieren un token Bearer de Keycloak:
Authorization: Bearer <access_token_keycloak>
El Issuer verifica la firma del token contra el JWKS de Keycloak configurado en KEYCLOAK_JWKS_URI.
El endpoint de notificaciones del Connector (POST /issuance/notifications) y el endpoint de claims (POST /issuance/claims) están protegidos con API Key mediante la cabecera:
x-api-key: <IDENTFY_CONNECTOR_API_KEY>
Credential IDP
Los endpoints internos de integración están protegidos con API Key:
x-api-key: <CONNECTOR_API_KEY>
Los endpoints OIDC estándar (/accounts/*, /.well-known/openid-configuration) son públicos o están protegidos por el propio flujo OAuth2.
El panel de administración (/admin/) requiere autenticación de usuario administrador Django.
Monitorización
Ambos servicios exponen métricas Prometheus en:
GET /metrics
El endpoint /metrics es público (no requiere autenticación). El namespace de las métricas es configurable mediante la variable de entorno PROMETHEUS_METRIC_NAMESPACE.
El estado de salud de cada servicio está disponible en:
GET /health