Las credenciales digitales son documentos criptográficamente verificables que se pueden usar para autenticar, autorizar o proporcionar información sobre un usuario. Por lo general, se trata de elementos como licencias de conducir para dispositivos móviles, pasaportes digitales, tarjetas de embarque, etcétera. Se encuentran en contenedores virtuales llamados billeteras digitales y forman parte de un estándar del W3C que especifica cómo acceder a ellos y recuperarlos. Este estándar se implementa para casos de uso web con la API de Credential Management de W3C y en Android, con la API de DigitalCredential de Credential Manager.
Información sobre las credenciales digitales
En el mundo físico, una persona puede guardar su identidad en su billetera y presentarla a la parte solicitante cuando se le pida:
En este caso, el usuario suele tener una sola billetera y recupera las credenciales solicitadas de la billetera para presentárselas al solicitante. Las billeteras son, en su mayoría, intercambiables y, por lo general, pueden almacenar las mismas cosas.
Las credenciales digitales tienen algunas diferencias principales:
- Se espera que los usuarios tengan varias billeteras, también conocidas como titulares, que pueden contener varias credenciales diferentes. Las billeteras determinan qué credenciales se pueden almacenar en ellas.
- Ahora, el solicitante es una aplicación en lugar de una persona real, y se lo conoce como verificador.
- La presentación de credenciales se realiza en software, lo que significa que una superficie de API recupera y presenta las credenciales. En Android, esto es Credential Manager.
Por lo tanto, Credential Manager asume varios roles que antes manejaba el usuario:
- En Android, las billeteras deben registrar los metadatos de sus credenciales en Credential Manager para que aparezcan en la IU de Credential Manager.
- El Administrador de credenciales correlaciona las credenciales en todas las billeteras según la solicitud y presenta una lista para que el usuario seleccione.
- Cuando el usuario selecciona una credencial en la lista, el Administrador de credenciales invoca la billetera, que controlará el resto de la transacción (mostrará IU, etc.) y devolverá la credencial a la aplicación.
Este flujo se muestra aquí:
Experiencia del usuario
Como se muestra en el flujo de Android, el usuario solo necesita interactuar una vez con la IU de Credential Manager para seleccionar la credencial adecuada. Este es un ejemplo de cómo se ve el selector:
Estándares
Las solicitudes de credenciales digitales se crean con el estándar OpenID4VP. Puedes ver ejemplos de solicitudes en el sitio de demostración de credenciales digitales.
Por lo general, las respuestas de credenciales digitales se devuelven en un formato de credencial estandarizado. Estos son mantenidos por diferentes organismos de estándares y, entre ellos, se incluyen las credenciales verificables de W3C, sd-jwt y mdoc.
Los protocolos personalizados también son factibles, aunque te recomendamos que uses uno de los protocolos estándar en tu aplicación.
Probar
Puedes probar el flujo de credenciales digitales en diferentes plataformas con una billetera de Android y un verificador basado en la Web:
- Instala la muestra pública de CMWallet en tu teléfono Android.
Para ello, extrae datos del repositorio e instala directamente desde Android Studio, o bien navega a https://github.com/digitalcredentialsdev/CMWallet/actions y selecciona la compilación más reciente para acceder al archivo
app-debug.apkmás reciente. - Abre CMWallet para registrar los metadatos en el Administrador de credenciales. Asegúrate de que el Bluetooth esté habilitado para permitir que tus dispositivos se conecten entre sí.
- Navega a https://digital-credentials.dev/ y selecciona
Request Credentials (OpenID4VP). - Acepta los mensajes de advertencia y escanea el código QR con tu teléfono. Luego, selecciona "Usar llave de acceso" y presiona la confirmación para mostrar las credenciales disponibles.
- Selecciona la credencial de CMWallet para volver al navegador. El navegador debería mostrar la credencial devuelta.
Consulta también
- Para obtener más información sobre el uso de Credential Manager para solicitar credenciales digitales en tu app, consulta la página de la API de Credential Manager - Verifier.
- Para obtener más información sobre cómo compilar una billetera digital con Credential Manager, consulta la página de la API de Credential Manager - Holder.