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_uri do 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. |