Partilhar via


Exemplos de comunicação de serviço do emissor

O serviço Microsoft Entra Verified ID 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 Authenticator possa se comunicar com ele e recuperar o token de ID correto para passar para o serviço emissor.

Para emitir uma Credencial Verificável, o Autenticador é instruído, através do download do contrato, a coletar informações do usuário e enviar essas informações para o serviço emissor. Para usar um ID Token, é necessário configurar o seu fornecedor de identidade para que o Authenticator permita autenticar um utilizador através do 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 autenticador autentica o usuário usando o fluxo de código de autorização do OpenID Connect. Seu provedor OpenID deve suportar os seguintes recursos do OpenID Connect:

Funcionalidade Descrição
Tipo de subvenção Deve suportar o método de concessão de código de autorização.
Formato do token Deve produzir JWTs compactos não criptografados.
Algoritmo de assinatura Deve produzir JWTs assinados usando RS 256.
Documento de configuração Deve suportar o documento de configuração OpenID Connect e jwks_uri.
Registo de clientes Deve suportar o registo de cliente público usando um valor de vcclient://openid/para redirect_uri.
PKCE Recomendado por razões de segurança, mas não obrigatório.

Exemplos da solicitação HTTP enviada ao seu provedor de identidade estão incluídos abaixo. Seu provedor de identidade deve aceitar e responder a essas solicitações de acordo com o padrão de autenticação OpenID Connect.

Registo de clientes

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

Para habilitar essa troca, registre um aplicativo com seu provedor de identidade. Se você estiver usando o Microsoft Entra ID, você pode encontrar as instruções aqui. Use os seguintes valores ao se 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 de cliente. Você vai usá-lo na seção a seguir. Você também precisa anotar a URL do endpoint bem conhecido do provedor de identidade compatível com OIDC. O Serviço de Emissão usa esse ponto de extremidade para baixar as chaves públicas necessárias para validar o token de ID depois que ele é enviado pelo Autenticador.

O URI de redirecionamento configurado é usado pelo Authenticator para que ele saiba quando o login foi concluído e possa recuperar o token de ID.

Pedido de autorização

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

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 O ID do cliente obtido durante o processo de registo da candidatura.
redirect_uri Deve usar vcclient://openid/.
response_mode Deve apoiar query.
response_type Deve apoiar code.
scope Deve apoiar openid.
state Deve ser devolvido ao cliente de acordo com o padrão OpenID Connect.
nonce Deve ser devolvido como uma declaração no token de ID de acordo com o padrão OpenID Connect.

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

Você pode personalizar o processo de login para atender às suas necessidades. Você pode pedir aos usuários que forneçam informações adicionais, aceitem os termos de serviço, paguem por suas credenciais e muito mais. Quando 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 seu provedor de identidade.
state Deve ser devolvido 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 tem a seguinte forma.

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 O ID do cliente obtido durante o processo de registo da candidatura.
redirect_uri Deve usar vcclient://openid/.
scope Deve apoiar openid.
grant_type Deve apoiar authorization_code.
code O código de autorização retornado pelo seu provedor de identidade.

Quando seu provedor de identidade recebe a solicitação de token, ele responde 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 compacto JWT e não deve ser criptografado. O token de ID deve conter as seguintes declarações.

Reivindicação Valor
kid O identificador da chave usada para assinar o token de identidade, correspondente a uma entrada no jwks_urido provedor OpenID.
aud O ID do cliente obtido durante o processo de registo da candidatura.
iss Deve ser o valor issuer no seu documento de configuração do OpenID Connect.
exp Deve conter o tempo de expiração do token de ID.
iat Deve conter o momento em que o token de ID foi emitido.
nonce O valor incluído no pedido de autorização.
Reclamações adicionais O token de ID deve conter quaisquer outras declarações 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óximos passos