Saltar al contenido principal

Referencia de la API de Credenciales

El sistema de credenciales de ISBE expone dos APIs distintas:

ServicioBase URL (PRO)Propósito
Credential Issuerhttps://identity-credentials-issuer.pro.cloud-w.envs.redisbe.comEmitir, consultar y revocar VCs para empleados y representantes.
Credential IDPhttps://identity-credentials-idp.pro.cloud-w.envs.redisbe.comAutenticar 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