Revocación de una credencial verificable
Como parte del proceso de trabajar con credenciales verificables, no solo puede emitir credenciales, a veces, es necesario revocarlas. En este artículo, revisamos la parte de propiedad Status
de la especificación de credenciales verificables. También analizamos con más detalle el proceso de revocación, por qué queremos revocar credenciales y algunas implicaciones de privacidad y datos.
¿Por qué revocar una credencial verificable?
Cada cliente tiene sus propias razones únicas para querer revocar una credencial verificable. Estos son algunos escenarios frecuentes:
- ID de estudiante: el estudiante ya no está en activo en la universidad.
- ID de empleado: el empleado ya no está en activo en la empresa.
- Permiso de conducir estatal: el conductor ya no reside en ese estado.
¿Cómo funciona la revocación?
Verified ID de Microsoft Entra implementa statusList2021 de W3C. Cuando se produce la presentación en la API de servicio de solicitudes, la API comprueba el estado de revocación. La comprobación de revocación se realiza mediante una llamada API anónima al centro de identidades y no contiene ningún dato sobre quién comprueba si la credencial verificable sigue siendo válida o está revocada. Con statusList2021
, ID. verificada por Microsoft Entra mantiene una marca con el valor del hash de la notificación indexada para realizar un seguimiento del estado de revocación.
Datos de las credenciales verificables
En cada credencial verificable emitida por Microsoft, hay una notificación llamada credentialStatus
. Estos datos son un mapa de navegación sobre donde tiene esta credencial verificable su marca de revocación en un bloque de datos.
Nota:
Si la credencial verificable es antigua y se emitió durante el período de versión preliminar, esta notificación no existe. La revocación no funcionará para esta credencial y tendrá que volver a emitirla.
...
"credentialStatus": {
"id": "urn:uuid:00aa00aa-bb11-cc22-dd33-44ee44ee44ee?bit-index=31",
"type": "RevocationList2021Status",
"statusListIndex": 31,
"statusListCredential": "did:web:verifiedid.contoso.com?service=IdentityHub&queries=...data..."
...
Punto de conexión de API del centro de identidades de los emisores
En el documento de identificador descentralizado de la entidad emisora y el punto de conexión del centro de identidades están disponibles en la sección service
.
didDocument": {
"id": "did:web:verifiedid.contoso.com",
"@context": [
"https://www.w3.org/ns/did/v1",
{
"@base": "did:web:verifiedid.contoso.com"
}
],
"service": [
{
"id": "#linkeddomains",
"type": "LinkedDomains",
"serviceEndpoint": {
"origins": [
"https://verifiedid.contoso.com/"
]
}
},
{
"id": "#hub",
"type": "IdentityHub",
"serviceEndpoint": {
"instances": [
"https://verifiedid.hub.msidentity.com/v1.0/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
],
"origins": [ ]
}
}
],
Crear una credencial verificable que sea revocable
La ID. verificada por Microsoft Entra no almacena los datos de credenciales verificables. El emisor debe indexar una notificación para que la credencial se pueda buscar. Solo puede haber una notificación indexada y, si no hay ninguna, no puede revocar las credenciales. La notificación seleccionada para el índice se cifrar con sal, se aplica un hash y no se almacena como su valor original.
Nota:
Un algoritmo hash es una operación criptográfica unidireccional que convierte una entrada, llamada preimage
, y produce una salida llamada hash de longitud fija. En este momento, no es factible desde una perspectiva computacional invertir una operación hash.
Ejemplo: en el ejemplo siguiente, displayName
es la notificación de índice. Solo puede buscar a través del nombre completo del usuario y nada más.
{
"attestations": {
"idTokens": [
{
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"configuration": "https://didplayground.b2clogin.com/didplayground.onmicrosoft.com/B2C_1_sisu/v2.0/.well-known/openid-configuration",
"redirectUri": "vcclient://openid",
"scope": "openid profile email",
"mapping": [
{
"outputClaim": "displayName",
"required": true,
"inputClaim": "$.name",
"indexed": true
},
{
"outputClaim": "firstName",
"required": true,
"inputClaim": "$.given_name",
"indexed": false
},
{
"outputClaim": "lastName",
"required": true,
"inputClaim": "$.family_name",
"indexed": false
}
],
"required": false
}
]
},
"validityInterval": 2592000,
"vc": {
"type": [
"VerifiedCredentialExpert"
]
}
}
Importante
Solo puede indexar una notificación de una asignación de notificaciones de reglas. Si de manera accidental no tiene ninguna notificación indexada en la definición de reglas y, posteriormente, lo corrige, no se podrá buscar ninguna credencial verificable emitida antes del cambio, ya que se emitieron cuando no existía ningún índice.
¿Cómo se revoca una credencial verificable?
Puede usar notificaciones indexadas en credenciales verificables para buscar credenciales verificables emitidas y revocarlas.
Vaya al panel de ID verificada en Azure Portal como usuario administrador con permiso de clave de firma en Azure Key Vault.
Seleccione el tipo de credencial verificable.
En el menú más a la izquierda, seleccione Revocación de credencial
Busque la notificación indexada del usuario que desea revocar. La indexación de una notificación es un requisito para poder buscar una credencial.
Importante
Solo almacenamos una versión hash de una notificación indexada. Esto significa que solo funcionan las coincidencias exactas del valor almacenado en la notificación indexada. Al escribir información en el cuadro de texto, se aplica un hash mediante el mismo algoritmo. A continuación, este valor hash se usa para buscar una coincidencia con la notificación hash almacenada. Si no encuentra ninguna coincidencia, es posible que haya escrito la información incorrecta o que la notificación no esté indexada.
Cuando se encuentre una coincidencia, seleccione la opción Revocar, situada a la derecha de la credencial que quiere revocar.
El usuario administrador que realiza la operación de revocación debe contar con permiso de clave de firma en el almacén de claves, de lo contrario recibirá el mensaje de error "No se puede acceder al recurso del almacén de claves con las credenciales proporcionadas".
Una vez que la revocación se efectúe correctamente, verá la actualización de estado y aparece un banner verde en la parte superior de la página.
La API del Servicio de solicitudes indica una credencial revocada en la devolución de llamada de presentation_verified
como REVOKED
. Dependiendo de si la solicitud de presentación especificada que permite presentar credenciales revocadas, la presentación de una credencial revocada se realiza correctamente o se produce un fallo.