Share via


呼叫要求服務 REST API

Microsoft Entra 驗證識別碼 包含要求服務 REST API。 此 API 可讓您發出並驗證認證。 本文說明如何開始使用要求服務 REST API。

API 存取令牌

您的應用程式必須包含具有必要許可權的有效存取令牌,才能存取要求服務 REST API。 Microsoft 身分識別平台 發出的存取令牌包含要求服務 REST API 用來驗證呼叫端的資訊(範圍)。 存取令牌可確保呼叫者具有適當的許可權來執行他們所要求的作業。

若要取得存取令牌,您的應用程式必須向 Microsoft 身分識別平台 註冊,並由系統管理員授權存取要求服務 REST API。 如果您尚未註冊 verifiable-credentials-app 應用程式,請參閱 如何註冊應用程式 ,然後 產生應用程式密碼

取得存取權杖

使用 OAuth 2.0 用戶端認證授與流程,以使用 Microsoft 身分識別平台 取得存取令牌。 針對此目的,請使用受信任的連結庫。 在本教學課程中,我們使用 Microsoft 驗證連結庫 (MSAL)。 MSAL 可簡化將驗證和授權新增至可呼叫安全 Web API 的應用程式。

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

在上述程式代碼中,提供下列參數:

參數 條件 描述
授權單位 必要 應用程式計劃用來運作的目錄租使用者。 例如: https://login.microsoftonline.com/{your-tenant} 。 (以您的租使用者識別碼或名稱取代 your-tenant
用戶端識別碼 必要 指派給應用程式的應用程式識別碼。 您可以在您註冊應用程式的 Azure 入口網站 中找到這項資訊。
用戶端密碼 必要 您為應用程式產生的客戶端密碼。
範圍 必要 必須設定為 3db474b9-6a0c-4840-96ac-1fceb342124f/.default。 此設定會產生具有 角色 宣告的 VerifiableCredential.Create.All存取令牌。

如需如何使用主控台應用程式的身分識別取得存取令牌的詳細資訊,請參閱下列其中一篇文章:

您也可以 使用憑證 來存取令牌要求,而不是客戶端密碼。

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=12345678-0000-0000-00000000000000000
&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

呼叫 API

若要發出或驗證可驗證的認證:

  1. 建構對要求服務 REST API 的 HTTP POST 要求。 URL 中不再需要租用戶標識碼,因為它在存取令牌中以宣告的形式出現。

    問題

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

    Verify

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
    
  2. 將存取令牌作為持有人令牌附加至 HTTP 要求中的授權標頭。

    Authorization: Bearer <token>
    
  3. Content-Type 標頭設定為 Application/json

  4. 準備發行簡報要求承載並附加至要求本文。

  5. 將要求提交至要求服務 REST API。

要求服務 API 會在成功呼叫時傳回 HTTP 狀態代碼 201 Created 。 如果 API 呼叫傳回錯誤,請檢查 錯誤參考檔

發行要求範例

下列範例示範可驗證的認證發行要求。 如需承載的相關信息,請參閱 要求服務 REST API 發行規格

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

{...JSON payload...}

使用證明流程的 idTokenHint 發行要求:

{
    "includeQRCode": false,
    "callback": {
        "url": "https://contoso.com/api/issuer/issuanceCallback",
        "state": "de19cb6b-36c1-45fe-9409-909a51292a9c",
        "headers": {
            "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
        }
    },
    "authority": "did:web:verifiedid.contoso.com",
    "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"
    }
}

如需完整的程式代碼,請參閱下列其中一個程式代碼範例:

簡報要求範例

下列範例示範可驗證的認證呈現要求。 如需承載的相關信息,請參閱 要求服務 REST API 簡報規格

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

{...JSON payload...}

具有特定類型和簽發者的認證簡報要求:

{
  "includeQRCode": true,
  "callback": {
    "url": "https://contoso.com/api/verifier/presentationCallback",
    "state": "92d076dd-450a-4247-aa5b-d2e75a1a5d58",
    "headers": {
      "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
    }
  },
  "authority": "did:web:verifiedid.contoso.com",
  "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
        }
      }
    }
  ]
}

如需完整的程式代碼,請參閱下列其中一個程式代碼範例:

回呼事件

要求承載包含 發行呈現回 呼端點。 端點是 Web 應用程式的一部分,應該透過 HTTPS 通訊協定公開提供。 要求服務 API 會呼叫您的端點,以通知您的應用程式特定事件。 例如,這類事件可能是當用戶掃描 QR 代碼、使用驗證器應用程式的深層連結,或完成簡報程式時。

下圖描述您的應用程式對要求服務 REST API 的呼叫,以及應用程式的回呼。

此圖顯示對 API 和回呼事件的呼叫。

將您的端點設定為接聽傳入的 HTTP POST 要求。 下列代碼段示範如何處理發行回呼 HTTP 要求,以及如何據以更新 UI:

不適用。 選擇其他其中一種程式設計語言。

下一步

深入了解這些規格: