Ejemplos de comunicación del servicio emisor.
Nota:
Microsoft Entra Verified ID es ahora Microsoft Entra Verified ID y forma parte de la familia de productos Microsoft Entra. Obtenga más información sobre la familia de soluciones de identidad Microsoft Entra y empiece a trabajar en el centro de administración unificado de Microsoft Entra.
El servicio Verified ID de Microsoft Entra puede emitir credenciales verificables mediante la recuperación de notificaciones de un token de id. generado por el proveedor de identidades compatible con la instancia de OpenID de la organización. En este artículo se indica cómo configurar el proveedor de identidades para que Authenticator pueda comunicarse con él y recuperar el token de id. correcto para pasarlo al servicio de emisión.
Para emitir una credencial verificable, se dan instrucciones a Authenticator a través de la descarga del contrato que recopile la entrada del usuario y envíe esa información al servicio de emisión. Si necesita usar un token de id., debe configurar el proveedor de identidades para permitir que Authenticator inicie sesión en un usuario mediante el protocolo OpenID Connect. Las notificaciones del token de id. resultante se utilizan para rellenar el contenido de la credencial verificable. Authenticator autentica al usuario mediante el flujo de código de autorización de OpenID Connect. El proveedor de OpenID debe admitir las siguientes características de OpenID Connect:
Característica | Descripción |
---|---|
Tipo de concesión | Debe ser compatible con el tipo de concesión de código de autorización. |
Formato de tokens | Debe generar JWT compactos sin cifrar. |
Algoritmo de firma | Debe generar JWT firmados mediante RS 256. |
Documento de configuración | Debe ser compatible con el documento de configuración de OpenID Connect y jwks_uri . |
Registro de cliente | Debe admitir el registro de cliente público mediante un valor redirect_uri de vcclient://openid/ . |
PKCE | Se recomienda por motivos de seguridad, pero no es necesario. |
A continuación, se incluyen ejemplos de las solicitudes HTTP enviadas al proveedor de identidades. El proveedor de identidades debe aceptar y responder a estas solicitudes de acuerdo con el estándar de autenticación de OpenID Connect.
Registro de cliente
Para recibir una credencial verificable, los usuarios deben iniciar sesión en el IDP desde la aplicación Microsoft Authenticator.
Para habilitar este intercambio, registre una aplicación en el proveedor de identidades. Si usa Microsoft Entra ID, puede encontrar las instrucciones aquí. Al registrarse, use los siguientes valores.
Configuración | Value |
---|---|
Nombre de la aplicación | <Issuer Name> Verifiable Credential Service |
URI de redireccionamiento | vcclient://openid/ |
Después de registrar una aplicación en el proveedor de identidades, registre su id. de cliente. Lo usará en la siguiente sección. También debe anotar la dirección URL del punto de conexión conocido para el proveedor de identidades compatible con OIDC. El servicio de emisión usa este punto de conexión para descargar las claves públicas necesarias para validar el token de id., después de que Authenticator lo envíe.
Authenticator usa el URI de redireccionamiento configurado para saber cuándo se completa el inicio de sesión y puede recuperar el token de id.
Solicitud de autorización
La solicitud de autorización enviada al proveedor de identidades usa el formato siguiente.
GET /authorize?client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&response_mode=query&response_type=code&scope=openid&state=12345&nonce=12345 HTTP/1.1
Host: www.contoso.com
Connection: Keep-Alive
Parámetro | Value |
---|---|
client_id |
El id. de cliente obtenido durante el proceso de registro de la aplicación. |
redirect_uri |
Debe usar vcclient://openid/ . |
response_mode |
Debe ser compatible con query . |
response_type |
Debe ser compatible con code . |
scope |
Debe ser compatible con openid . |
state |
Debe devolverse al cliente según el estándar de OpenID Connect. |
nonce |
Debe devolverse como una notificación en el token de id. según el estándar de OpenID Connect. |
Cuando recibe una solicitud de autorización, el proveedor de identidades debe autenticar al usuario y realizar los pasos necesarios para completar el inicio de sesión, como la autenticación multifactor.
Puede personalizar el proceso de inicio de sesión para satisfacer sus necesidades. Puede pedir a los usuarios que proporcionen información adicional, acepten los términos de servicio, paguen sus credenciales, etc. Una vez completados todos los pasos, responda a la solicitud de autorización mediante el redireccionamiento al URI de redireccionamiento, como se muestra a continuación.
vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parámetro | Value |
---|---|
code |
Código de autorización devuelto por el proveedor de identidades. |
state |
Debe devolverse al cliente según el estándar de OpenID Connect. |
Solicitud de token
La solicitud de token enviada al proveedor de identidades tendrá el formato siguiente.
POST /token HTTP/1.1
Host: www.contoso.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 291
client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&grant_type=authorization_code&code=nbafhjbh1ub1yhbj1h4jr1&scope=openid
Parámetro | Value |
---|---|
client_id |
El id. de cliente obtenido durante el proceso de registro de la aplicación. |
redirect_uri |
Debe usar vcclient://openid/ . |
scope |
Debe ser compatible con openid . |
grant_type |
Debe ser compatible con authorization_code . |
code |
Código de autorización devuelto por el proveedor de identidades. |
Tras recibir la solicitud de token, el proveedor de identidades debe responder con un token de id.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}
El token de id. debe usar el formato de serialización compacto de JWT y no debe estar cifrado. El token de id. debe contener las siguientes notificaciones.
Notificación | Value |
---|---|
kid |
Identificador de la clave utilizada para firmar el token de id., que corresponde a una entrada en el jwks_uri del proveedor de OpenID. |
aud |
El id. de cliente obtenido durante el proceso de registro de la aplicación. |
iss |
Debe ser el valor issuer del documento de configuración de OpenID Connect. |
exp |
Debe contener la hora de expiración del token de id. |
iat |
Debe contener la hora a la que se emitió el token de id. |
nonce |
El valor incluido en la solicitud de autorización. |
Notificaciones adicionales | El token de id. debe contener cualquier notificación adicional cuyos valores se incluirán en la credencial verificable que se emitirá. En esta sección se debe incluir cualquier atributo sobre el usuario, como su nombre. |