Condividi tramite


Chiamare l'API REST del servizio di richiesta

ID verificato di Microsoft Entra include l'API REST del servizio di richiesta. Questa API consente di rilasciare e verificare le credenziali. Questo articolo illustra come iniziare a usare l'API REST del servizio di richiesta.

Token di accesso api

L'applicazione deve includere un token di accesso valido con le autorizzazioni necessarie in modo che possa accedere all'API REST del servizio di richiesta. I token di accesso emessi da Microsoft Identity Platform contengono informazioni (ambiti) usate dall'API REST del servizio di richiesta per convalidare il chiamante. Un token di accesso garantisce che il chiamante disponga delle autorizzazioni appropriate per eseguire l'operazione richiesta.

Per ottenere un token di accesso, l'app deve essere registrata con Microsoft Identity Platform ed essere autorizzata da un amministratore per l'accesso all'API REST del servizio di richiesta. Se non è stata registrata l'applicazione verificabile-credentials-app , vedere come registrare l'app e quindi generare un segreto dell'applicazione.

Ottenere un token di accesso

Usare il flusso di concessione delle credenziali client OAuth 2.0 per acquisire il token di accesso usando Microsoft Identity Platform. Usare una libreria attendibile a questo scopo. In questa esercitazione si usa Microsoft Authentication Library (MSAL). MSAL semplifica l'aggiunta di autenticazione e autorizzazione a un'app che può chiamare un'API Web sicura.

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

Nel codice precedente specificare i parametri seguenti:

Parametro Condizione Descrizione
Autorità Richiesto Tenant della directory in cui l'applicazione prevede di operare. Ad esempio: https://login.microsoftonline.com/{your-tenant}. Sostituire your-tenant con l'ID tenant o il nome.
Client ID Richiesto ID applicazione assegnato all'app. È possibile trovare queste informazioni nella portale di Azure, in cui è stata registrata l'app.
Segreto client Richiesto Segreto client generato per l'app.
Ambiti Richiesto Deve essere impostato su 3db474b9-6a0c-4840-96ac-1fceb342124f/.default. Questa impostazione produce un token di accesso con un'attestazione di ruoli di VerifiableCredential.Create.All.

Per altre informazioni su come ottenere un token di accesso usando l'identità di un'app console, vedere uno degli articoli seguenti:

È anche possibile accedere a una richiesta di token con un certificato anziché un segreto client.

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

Chiamare l'API

Per rilasciare o verificare una credenziale verificabile:

  1. Creare una richiesta HTTP POST all'API REST del servizio di richiesta. L'ID tenant non è più necessario nell'URL perché è presente come attestazione nel token di accesso.

    Problema

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

    Verificare

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
    
  2. Collegare il token di accesso come token di connessione all'intestazione di autorizzazione in una richiesta HTTP.

    Authorization: Bearer <token>
    
  3. Impostare l'intestazione Content-Type su Application/json.

  4. Preparare e allegare il payload della richiesta di rilascio o presentazione al corpo della richiesta.

  5. Inviare la richiesta all'API REST del servizio di richiesta.

L'API del servizio di richiesta restituisce un codice 201 Created di stato HTTP in una chiamata riuscita. Se la chiamata API restituisce un errore, controllare la documentazione di riferimento sugli errori.

Esempio di richiesta di rilascio

Nell'esempio seguente viene illustrata una richiesta di rilascio delle credenziali verificabile. Per informazioni sul payload, vedere Specifica di rilascio dell'API REST del servizio di richiesta.

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

{...JSON payload...}

Richiesta di rilascio con il idTokenHint flusso di attestazione:

{
    "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"
    }
}

Per il codice completo, vedere uno degli esempi di codice seguenti:

Esempio di richiesta di presentazione

Nell'esempio seguente viene illustrata una richiesta di presentazione delle credenziali verificabile. Per informazioni sul payload, vedere Specifica della presentazione dell'API REST del servizio di richiesta.

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

{...JSON payload...}

Richiesta di presentazione per credenziali con un determinato tipo ed emittente:

{
  "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
        }
      }
    }
  ]
}

Per il codice completo, vedere uno degli esempi di codice seguenti:

Eventi di callback

Il payload della richiesta contiene l'endpoint di callback di rilascio e presentazione . L'endpoint fa parte dell'applicazione Web e deve essere disponibile pubblicamente tramite il protocollo HTTPS. L'API servizio di richiesta chiama l'endpoint per informare l'app su determinati eventi. Ad esempio, tali eventi potrebbero essere quando un utente analizza il codice a matrice, usa il collegamento diretto all'app di autenticazione o termina il processo di presentazione.

Il diagramma seguente descrive la chiamata eseguita dall'app all'API REST del servizio di richiesta e ai callback all'applicazione.

Diagramma che mostra la chiamata all'API e agli eventi di callback.

Configurare l'endpoint per l'ascolto delle richieste HTTP POST in ingresso. Il frammento di codice seguente illustra come gestire la richiesta HTTP di callback di rilascio e come aggiornare di conseguenza l'interfaccia utente:

Non applicabile. Scegliere uno degli altri linguaggi di programmazione.

Passaggi successivi

Altre informazioni su queste specifiche: