Autenticación del SDK de dispositivos (DPoP)
El SDK v2 de vitalera utiliza DPoP (Demonstration of Proof-of-Possession) para la autenticación. Esto vincula los tokens a un par de claves criptográficas en el dispositivo, previniendo el robo de tokens y los ataques de repetición — algo crítico para software de dispositivos médicos que maneja información de salud protegida.
Cómo funciona
- Inicialización — Cuando llama a
VitaleraSdk.builder().clientId("your-org-license-key").build(), el SDK genera un par de claves DPoP (almacenado en el Android Keystore o iOS Secure Enclave). - Activación — El SDK envía una solicitud de activación firmada con DPoP al servicio de autenticación de vitalera. El servidor valida la clave de licencia de la organización y devuelve un token de acceso vinculado con DPoP junto con los derechos de la organización.
- Caché de derechos — Los derechos se almacenan en caché localmente durante un período de gracia offline de 7 días. El SDK funciona sin conexión mientras los derechos en caché no hayan expirado.
- Refresco automático — El SDK gestiona el refresco de tokens de forma transparente. Nunca necesita gestionar tokens manualmente.
Android (Kotlin)
val sdk = VitaleraSdk.builder()
.context(applicationContext)
.clientId("your-org-license-key") // Organization license key
.addProvider("omron")
.build() // suspend: DPoP key gen + activation
iOS (Swift)
let sdk = try await VitaleraSdk.companion.builder()
.clientId(clientId: "your-org-license-key") // Organization license key
.addProvider(providerName: "omron")
.build() // async: Secure Enclave key gen + activation
Obtención de una clave de licencia
Contacte con sdk@vitalera.com para obtener una clave de licencia de organización. Cada clave está vinculada a una organización específica y determina qué módulos de proveedores y funciones están disponibles.
Operación sin conexión
El SDK está diseñado para casos de uso de dispositivos médicos donde la conectividad a internet puede ser intermitente. Después de la activación inicial:
- El escaneo y emparejamiento de dispositivos funciona completamente sin conexión.
- La recopilación de observaciones de dispositivos BLE funciona completamente sin conexión.
- Los datos se almacenan en caché localmente y se sincronizan cuando se restaura la conectividad.
- El período de gracia de 7 días permite al SDK operar sin contacto con el servidor durante hasta una semana.
Si el período de gracia expira sin conectividad, el SDK requiere reactivación antes de continuar operando.
Arquitectura de seguridad
| Capa | Mecanismo |
|---|---|
| Almacenamiento de claves | Android Keystore / iOS Secure Enclave (respaldado por hardware) |
| Vinculación de token | La prueba DPoP vincula cada token al par de claves del dispositivo |
| Prevención de repetición | Cada prueba DPoP incluye un jti único y un timestamp iat |
| Transporte | TLS 1.2+ para todas las comunicaciones con el servidor |
Próximos pasos
- Descripción general del SDK — Arquitectura, módulos e inicio rápido
- Uso del SDK Android — Guía completa de integración Android
- Uso del SDK iOS — Guía completa de integración iOS
¿Necesita ayuda?
Contacte con support@vitalera.io para asistencia con la autenticación del SDK.