Compartilhar via


Exemplos de comunicação do serviço emissor

Observação

A ID Verificada do Microsoft Entra agora é ID Verificada do Microsoft Entra e faz parte da família de produtos Microsoft Entra. Saiba mais sobre a família Microsoft Entra de soluções de identidade e comece a usar o centro de administração unificado Microsoft Entra.

O serviço de ID Verificada do Microsoft Entra pode emitir credenciais verificáveis recuperando declarações de um token de ID gerado pelo provedor de identidade compatível com OpenID da sua organização. Este artigo instrui você sobre como configurar seu provedor de identidade para que o Microsoft Authenticator possa se comunicar com ele e recuperar o token de ID correto para passar para o serviço de emissão.

Para emitir uma Credencial Verificável, o Microsoft Authenticator é instruído por meio do download do contrato para coletar a entrada do usuário e enviar essas informações para o serviço emissor. Se você precisar usar um token de ID, precisará configurar seu provedor de identidade para permitir que o Microsoft Authenticator conecte como um usuário usando o protocolo OpenID Connect. As declarações no token de ID resultante são usadas para preencher o conteúdo de sua credencial verificável. O Microsoft Authenticator autentica o usuário usando o fluxo do código de autorização OpenID Connect. Seu provedor OpenID deve dar suporte aos seguintes recursos do OpenID Connect:

Recurso Descrição
Tipo de concessão Deve oferecer suporte ao tipo de concessão de código de autorização.
Formato do token Deve produzir JWTs compactados não criptografados.
Algoritmo de assinatura Deve produzir JWTs assinados usando o RS 256.
Documento de configuração Deve dar suporte ao documento de configuração do OpenID Connect e a jwks_uri.
Registro do cliente Deve dar suporte ao registro de cliente público usando um valor redirect_uri de vcclient://openid/.
PKCE Recomendado por motivos de segurança, mas não é necessário.

Os exemplos das solicitações HTTP enviadas ao seu provedor de identidade estão inclusos abaixo. Seu provedor de identidade deve aceitar e responder a essas solicitações de acordo com o padrão de autenticação do OpenID Connect.

Registro do cliente

Para receber uma credencial verificável, os usuários precisam entrar no IDP a partir do aplicativo do Microsoft Authenticator.

Para habilitar essa troca, registre um aplicativo com seu provedor de identidade. Se você estiver usando a ID do Microsoft Entra, poderá encontrar as instruções aqui. Use os valores a seguir ao registrar.

Configuração Valor
Nome do aplicativo <Issuer Name> Verifiable Credential Service
URI de redirecionamento vcclient://openid/

Depois de registrar um aplicativo com seu provedor de identidade, registre sua ID do cliente. Você vai usá-la na seção a seguir. Você também precisa anotar a URL para o ponto de extremidade conhecido para o provedor de identidade compatível com OIDC. O Serviço de Emissão usa esse ponto de extremidade para fazer o download das chaves públicas necessárias para validar o token de ID depois que ele é enviado pelo Microsoft Authenticator.

O URI de redirecionamento configurado é usado pelo Microsoft Authenticator para que ele saiba quando as credenciais são concluídas e possa recuperar o token de ID.

Solicitação de autorização

A solicitação de autorização enviada ao seu provedor de identidade usa o formato a seguir.

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 Valor
client_id A ID do cliente obtida durante o processo de registro do aplicativo.
redirect_uri Deve usar vcclient://openid/.
response_mode Deve dar suporte a query.
response_type Deve dar suporte a code.
scope Deve dar suporte a openid.
state Deve ser retornado ao cliente de acordo com o padrão OpenID Connect.
nonce Deve ser retornado como uma declaração no token de ID de acordo com o padrão OpenID Connect.

Quando ele recebe uma solicitação de autorização, seu provedor de identidade deve autenticar o usuário e executar as etapas necessárias para concluir a entrada, como a autenticação multifator.

Você pode personalizar o processo de entrada para atender às suas necessidades. Você pode solicitar que os usuários forneçam informações adicionais, aceitem os termos de serviço, paguem suas credenciais e muito mais. Depois que todas as etapas forem concluídas, responda à solicitação de autorização redirecionando para o URI de redirecionamento, conforme mostrado abaixo.

vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parâmetro Valor
code O código de autorização retornado pelo provedor de identidade.
state Deve ser retornado ao cliente de acordo com o padrão OpenID Connect.

Solicitação de token

A solicitação de token enviada ao seu provedor de identidade terá o seguinte formulário.

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 Valor
client_id A ID do cliente obtida durante o processo de registro do aplicativo.
redirect_uri Deve usar vcclient://openid/.
scope Deve dar suporte a openid.
grant_type Deve dar suporte a authorization_code.
code O código de autorização retornado pelo provedor de identidade.

Ao receber a solicitação de token, seu provedor de identidade deverá responder com um 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"
}

O token de ID deve usar o formato de serialização compacta JWT e não deve ser criptografado. O token de ID deve conter as declarações a seguir.

Declaração Valor
kid O identificador de chave da chave usada para assinar o token de ID, correspondente a uma entrada no jwks_uri do provedor de OpenID.
aud A ID do cliente obtida durante o processo de registro do aplicativo.
iss Deve ser o valor issuer em seu documento de configuração do OpenID Connect.
exp Deve conter a hora de expiração do token de ID.
iat Deve conter a hora na qual o token de ID foi emitido.
nonce O valor incluído na solicitação de autorização.
Declarações adicionais O token de ID deve conter quaisquer declarações adicionais cujos valores serão incluídos na Credencial Verificável que será emitida. Esta seção é onde você deve incluir quaisquer atributos sobre o usuário, como seu nome.

Próximas etapas