Partilhar via


Chamar a API REST do Serviço de Solicitação

A ID Verificada do Microsoft Entra inclui a API REST do Serviço de Solicitação. Essa API permite que você emita e verifique credenciais. Este artigo mostra como começar a usar a API REST do Serviço de Solicitação.

Token de acesso à API

Seu aplicativo precisa incluir um token de acesso válido com as permissões necessárias para que possa acessar a API REST do Serviço de Solicitação. Os tokens de acesso emitidos pela plataforma de identidade da Microsoft contêm informações (escopos) que a API REST do Serviço de Solicitação usa para validar o chamador. Um token de acesso garante que o chamador tenha as permissões adequadas para executar a operação que está solicitando.

Para obter um token de acesso, seu aplicativo deve ser registrado na plataforma de identidade da Microsoft e ser autorizado por um administrador para acessar a API REST do Serviço de Solicitação. Se não registou a aplicação de credenciais verificáveis, consulte como registar a aplicação e, em seguida, gerar uma chave secreta da aplicação.

Obter um token de acesso

Use o fluxo de concessão de credenciais do cliente OAuth 2.0 para adquirir o token de acesso usando a plataforma de identidade da Microsoft. Use uma biblioteca confiável para essa finalidade. Neste tutorial, usamos a Biblioteca de Autenticação da Microsoft (MSAL). O MSAL simplifica a adição de autenticação e autorização a um aplicativo que pode chamar uma API da Web segura.

POST /{tenant}/oauth2/v2.0/token HTTP/1.1           //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=3db474b9-6a0c-4840-96ac-1fceb342124f/.default
&client_secret=sampleCredentia1s
&grant_type=client_credentials

No código anterior, forneça os seguintes parâmetros:

Parâmetro Condição Descrição
Autoridade Necessário O locatário do diretório contra o qual o aplicativo planeja operar. Por exemplo: https://login.microsoftonline.com/{your-tenant}. (Substitua your-tenant pelo seu ID de inquilino ou nome.)
ID do Cliente Necessário A ID do aplicativo atribuída ao seu aplicativo. Você pode encontrar essas informações no portal do Azure, onde registrou seu aplicativo.
Segredo do cliente Necessário O segredo do cliente que geraste para a tua aplicação.
Âmbitos de aplicação Necessário Deve ser definido como 3db474b9-6a0c-4840-96ac-1fceb342124f/.default. Essa configuração produz um token de acesso com um funções declaração de VerifiableCredential.Create.All.

Para obter mais informações sobre como obter um token de acesso usando a identidade de um aplicativo de console, consulte um dos seguintes artigos:

Você também pode acessar uma solicitação de token com um certificado em vez de um segredo do cliente.

POST /{tenant}/oauth2/v2.0/token HTTP/1.1   //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=3db474b9-6a0c-4840-96ac-1fceb342124f/.default
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2d1pJMCJ9.eyJ{a lot of characters here}M8U3bSUKKJDEg
&grant_type=client_credentials

Chamar a API

Para emitir ou verificar uma credencial verificável:

  1. Construa uma solicitação HTTP POST para a API REST do Serviço de Solicitação. O ID do locatário não é mais necessário na URL porque está presente como uma declaração no token de acesso.

    Questão

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
    

    Verificar

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
    
  2. Anexe o token de acesso como um token de portador ao cabeçalho de autorização em uma solicitação HTTP.

    Authorization: Bearer <token>
    
  3. Defina o cabeçalho Content-Type como Application/json.

  4. Prepare e anexe a carga útil de emissão ou apresentação ao corpo do pedido.

  5. Envie a solicitação para a API REST do Serviço de Solicitação.

A API do Serviço de Solicitação retorna um código de status HTTP 201 Created em uma chamada bem-sucedida. Se a chamada de API retornar um erro, verifique a documentação de referência de erro .

Exemplo de solicitação de emissão

O exemplo a seguir demonstra uma solicitação de emissão de credenciais verificável. Para obter informações sobre a carga útil, consulte a especificação de emissão do Request Service REST API.

POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
Content-Type: application/json
Authorization: Bearer  <token>

{...JSON payload...}

Solicitação de emissão utilizando o fluxo de certificação idTokenHint:

{
    "authority": "did:web:verifiedid.contoso.com",
    "callback": {
        "url": "https://contoso.com/api/issuer/issuanceCallback",
        "state": "de19cb6b-36c1-45fe-9409-909a51292a9c",
        "headers": {
            "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
        }
    },
    "registration": {
        "clientName": "Verifiable Credential Expert Sample"
    },
    "type": "VerifiedCredentialExpert",
    "manifestUrl": "https://verifiedid.did.msidentity.com/v1.0/00001111-aaaa-2222-bbbb-3333cccc4444/verifiableCredentials/contracts/VerifiedCredentialExpert1",
    "pin": {
        "value": "3539",
        "length": 4
    },
    "claims": {
        "given_name": "Megan",
        "family_name": "Bowen"
    }
}

Para obter o código completo, consulte um dos seguintes exemplos de código:

Exemplo de pedido de apresentação

O exemplo a seguir demonstra uma solicitação de apresentação de credenciais verificáveis. Para obter informações sobre a carga útil, consulte Request Service REST API presentation specification.

POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
Content-Type: application/json
Authorization: Bearer  <token>

{...JSON payload...}

Pedido de apresentação de uma credencial com um determinado tipo e emissor:

{
  "authority": "did:web:verifiedid.contoso.com",
  "callback": {
    "url": "https://contoso.com/api/verifier/presentationCallback",
    "state": "92d076dd-450a-4247-aa5b-d2e75a1a5d58",
    "headers": {
      "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
    }
  },
  "registration": {
    "clientName": "Veritable Credential Expert Verifier"
  },
  "includeReceipt": true,
  "requestedCredentials": [
    {
      "type": "VerifiedCredentialExpert",
      "purpose": "So we can see that you a veritable credentials expert",
      "acceptedIssuers": [
        "did:web:verifiedid.contoso.com"
      ],
      "configuration": {
        "validation": {
          "allowRevoked": true,
          "validateLinkedDomain": true
        }
      }
    }
  ]
}

Para obter o código completo, consulte um dos seguintes exemplos de código:

Eventos de chamada de retorno

A carga útil da solicitação contém o ponto de extremidade de retorno de chamada de emissão e apresentação . O endpoint faz parte da sua aplicação web e deve estar disponível de forma pública através do protocolo HTTPS. A API de Pedido chama o seu endpoint para informar a sua aplicação sobre determinados eventos. Por exemplo, esses eventos podem ser quando um usuário escaneia o código QR, usa o link direto para o aplicativo autenticador ou conclui o processo de apresentação.

O diagrama a seguir descreve a chamada que a sua aplicação faz para a API REST do Serviço de Pedido e os retornos de chamada para a sua aplicação.

Diagrama que mostra a chamada para a API e os eventos de retorno de chamada.

Configure o seu endpoint para escutar solicitações HTTP POST recebidas. O seguinte trecho de código demonstra como lidar com o pedido HTTP de resposta de emissão e como atualizar a IU de acordo:

Não aplicável. Escolha uma das outras linguagens de programação.

Próximos passos

Saiba mais sobre estas especificações: