共用方式為


呼叫要求服務 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 取代為您的租用戶識別碼或名稱。)
Client ID 必要 指派給應用程式的應用程式識別碼。 您可以在 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=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

呼叫 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:

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

下一步

深入了解這些規格: