Revocación de una credencial verificable que se ha emitido previamente

Como parte del proceso de trabajo con credenciales verificables, tendrá que emitir credenciales. A veces también tiene que 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é quiere revocar una credencial verificable?

Cada cliente tiene sus propias razones únicas para querer revocar una credencial verificable. Estos son algunos de los temas comunes:

  • 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 se revoca una credencial verificable?

Usando la notificación indexada en las credenciales verificables, puede buscar las credenciales verificables emitidas por esa notificación en el portal y revocarlas.

  1. Vaya al panel de ID verificada en Azure Portal como usuario administrador con permiso de clave de firma en Azure Key Vault.

  2. Seleccione el tipo de credencial verificable.

  3. En el menú más a la izquierda, seleccione Revocación de credencial

    Screenshot that shows revoking a credential.

  4. Busque la notificación de índice del usuario que desea revocar. La indexación de una notificación es un requisito para poder buscar una credencial.

    Screenshot that shows the credential to revoke.

    Como solo se almacena un hash de la notificación indexada de la credencial verificable, únicamente se incluye una coincidencia exacta en los resultados de la búsqueda. A la información especificada en el cuadro de texto se aplica hash mediante el mismo algoritmo. Se usa como criterio de búsqueda para que coincida con el valor hash almacenado.

  5. 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".

    Screenshot that shows a warning that tells you that after revocation the user still has the credential.

  6. 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.

    Screenshot that shows a successfully revoked verifiable credential message.

Request Service API indica una credencial revocada en la devolución de llamadapresentation_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.

Configurar una credencial verificable con la posibilidad de revocación

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": "8d5b446e-22b2-4e01-bb2e-9070f6b20c90",
        "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"
    ]
  }
}

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, las credenciales verificables que ya se han emitido y no se han tenido en cuenta, no se podrán buscar, ya que se emitieron cuando no existía ningún índice.

¿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:625dfcad-0000-1111-2222-333444445555?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/11111111-2222-3333-4444-000000000000"
                ],
                "origins": [ ]
             }
         }
    ],

Pasos siguientes