Comprobación de la propiedad de un dominio en un identificador descentralizado

En este artículo revisamos los pasos necesarios para verificar la propiedad del nombre de dominio que usa para el identificador descentralizado (DID)

Requisitos previos

Para verificar la propiedad de un dominio en un DID, debe:

Verificar la propiedad del dominio y distribución del archivo did-configuration.json

El dominio del que verifica la propiedad de su DID se define en la sección de información general. El dominio deberá estar bajo su control y deberá tener el formato https://www.example.com/.

  1. En Azure Portal, vaya a la página de ID verificado.

  2. Seleccione Configurar>Verificar la propiedad del dominio y elija Verificar para el dominio.

  3. Copie o descargue el archivo did-configuration.json.

    Captura de pantalla en la que se muestra la descarga de la configuración conocida.

  4. Hospede el archivo did-configuration.json en la ubicación especificada. Por ejemplo: si especificó el dominio https://www.example.com, el archivo deberá hospedarse en https://www.example.com/.well-known/did-configuration.json. No puede haber ninguna otra ruta en la dirección URL, excepto el nombre .well-known path.

  5. Cuando did-configuration.json esté disponible públicamente en la dirección URL .well-known/did-configuration.json, verifíquelo seleccionando Actualizar estado de verificación.

    Captura de pantalla en la que se muestra la configuración conocida verificada.

  6. Pruebe la emisión o la presentación a Microsoft Authenticator para la validación. Asegúrese de que la configuración de Authenticator Warn about unsafe apps (Advertir sobre aplicaciones no seguras) está activada. La configuración está activada de manera predeterminada.

¿Cómo puedo comprobar que la verificación está funcionando?

El portal verifica que se puede acceder a did-configuration.json a través de internet y que es válido al hacer clic en el botón Actualizar estado de verificación. Authenticator no respeta los redireccionamientos HTTP. También debe considerar la posibilidad de comprobar que puede solicitar esa dirección URL en un navegador, a fin de evitar errores como no usar HTTPS, un certificado SSL incorrecto o una dirección URL que no sean públicos. Si el archivo did-configuration.json no se pudiera solicitar de manera anónima en un explorador o con herramientas como curl, sin advertencias ni errores, el portal tampoco podrá completar el paso Actualizar estado de registro.

Nota:

Si tiene problemas para actualizar el estado de verificación, puede solucionar los problemas mediante la ejecución de curl -Iv https://yourdomain.com/.well-known/did-configuration.json en una máquina con el sistema operativo Ubuntu. El subsistema de Windows para Linux también funciona con Ubuntu. Si se produce un error en curl, la actualización del estado de verificación no funcionará.

¿Por qué es necesario verificar la propiedad del dominio de nuestro DID?

Un DID se inicia como un identificador que no está anclado a los sistemas existentes. Un DID es útil porque un usuario u organización puede ser su propietario y controlarlo. Si una entidad que interactúa con la organización no sabe a "quién" pertenece el DID, este no es útil.

Al vincular un DID a un dominio, se resuelve el problema de confianza inicial, ya que permite que cualquier entidad verifique criptográficamente la relación entre un DID y un dominio.

El ID verificado sigue la especificación de configuración conocida de DID para crear el vínculo. El servicio de credenciales verificables vincula el DID y el dominio. El servicio incluye la información de dominio que proporcionó en el DID y genera el archivo de configuración conocida:

  1. El ID verificado usa la información de dominio que se proporciona durante la configuración de la organización para escribir un punto de conexión de servicio en el documento DID. Todas las partes que interactúan con el DID pueden ver el dominio con el que el DID declara estar asociado.

    "service": [
      {
        "id": "#linkeddomains",
        "type": "LinkedDomains",
        "serviceEndpoint": {
          "origins": [
            "https://verifiedid.contoso.com/"
          ]
        }
      }
    ]
    
  2. El servicio de credenciales verificables del ID verificado genera un recurso de configuración conocida conforme que debe alojar en el dominio. El archivo de configuración incluye una credencial verificable que se emite automáticamente con el tipo de credencial DomainLinkageCredential, firmada con el DID que tiene el origen de su dominio. A continuación se muestra un ejemplo del archivo de configuración que se almacena en la URL del dominio raíz.

    {
      "@context": "https://identity.foundation/.well-known/contexts/did-configuration-v0.0.jsonld",
      "linked_dids": [
        "jwt..."
      ]
    }
    

Experiencia del usuario en la cartera

Cuando un usuario pasa por un flujo de emisión o presenta una credencial verificable, debe tener alguna información sobre la organización y su DID. Authenticator valida una relación del DID con el dominio del documento DID y presenta a los usuarios dos experiencias diferentes en función del resultado.

Dominio comprobado

Antes de que Authenticator muestre el icono Verificado, deben cumplirse algunas condiciones:

  • La firma del DID de la solicitud de Open ID emitido automáticamente (SIOP) debe tener un punto de conexión de servicio para el dominio vinculado.
  • El dominio raíz no usa redireccionamiento y usa HTTPS.
  • El dominio listado en el documento DID tiene un recurso conocido que se puede resolver.
  • La credencial verificable del recurso conocido está firmada con el mismo DID que se usó para firmar el SIOP que Authenticator usó para iniciar el flujo.

Si se cumplen todas las condiciones mencionadas anteriormente, Microsoft Authenticator muestra una página verificada e incluye el dominio que se validó.

Captura de pantalla en la que se muestra una solicitud de un nuevo permiso.

Dominio sin comprobar

Si alguno de los puntos anteriores no se cumple, Authenticator muestra una advertencia de página completa que indica que el dominio no está verificado. Se advierte al usuario de que se encuentra en medio de una posible transacción de riesgo y debe continuar con precaución. Es posible que hayan elegido esta ruta porque:

  • El DID no está anclado a un dominio.
  • La configuración no se configuró correctamente.
  • El DID con el que el usuario interactúa podría ser malintencionado y realmente no puede demostrar que es el propietario del dominio vinculado.

Es de gran importancia vincular el DID a un dominio reconocible para el usuario.

Captura de pantalla en la que se muestra la advertencia de dominio no verificado en la pantalla Agregar una credencial.

¿Cómo se actualiza el dominio vinculado en el DID?

Con el sistema de confianza web, no se admite la actualización del dominio vinculado. Tiene que optar por no participar y volver a incorporarse.

Uso de dominios vinculados simplificado para desarrolladores

Nota:

El documento DID debe estar disponible públicamente para que el registro de DID se realice correctamente.

La manera más sencilla en que un desarrollador puede obtener un dominio que usar como dominio vinculado consiste en el uso de la característica de sitio web estático de Azure Storage. No es posible controlar cuál será el nombre de dominio, solo se puede controlar que este contenga el nombre de la cuenta de almacenamiento como parte de su nombre de host.

Configurar rápidamente un dominio para usar con un dominio vinculado:

  1. Cree una cuenta de almacenamiento. Durante la creación, elija StorageV2 (cuenta de uso general v2) y el almacenamiento con redundancia local (LRS).
  2. Vaya a esa cuenta de almacenamiento y seleccione el elemento Sitio web estático, que se ubica en el menú más a la izquierda. Después, habilite la característica de sitio web estático. Si no puede ver el elemento de menú Sitio web estático, esto significará que no ha creado una cuenta de almacenamiento V2.
  3. Copie el nombre del punto de conexión principal que aparecerá después de guardar. Este valor será el nombre de dominio. Tiene un aspecto similar a https://<your-storageaccountname>.z6.web.core.windows.net/.

Cuando es el momento de cargar el archivo did-configuration.json:

  1. Vaya a esa cuenta de almacenamiento y seleccione el elemento Contenedores, que se ubica en el menú más a la izquierda. A continuación, seleccione el contenedor que se denomine $web.
  2. Seleccione Cargar y, después, seleccione el icono de la carpeta para buscar el archivo.
  3. Antes de cargarlo, abra la sección Avanzado y especifique el valor conocido en el cuadro de texto Cargar carpeta.
  4. Cargar el archivo.

Ahora, el archivo estará disponible públicamente a través de una URL con un aspecto similar a https://<your-storageaccountname>.z6.web.core.windows.net/.well-known/did-configuration.json.

Pasos siguientes