分享方式:


使用多個證明建立可驗證的認證

使用多個證明類型的規則定義會產生發行流程,其中宣告來自多個來源。 例如,您可能需要出示現有的認證,並手動輸入 Microsoft Authenticator 中宣告的值。

在本操作指南中,我們會新增自我證明宣告,讓使用者在發行期間必須輸入 Authenticator,藉此擴充 標識符令牌提示證明 範例。 對已驗證標識碼的發行要求會包含標識元令牌提示,其中包含的宣告值 given_name ,以及 family_name 使用者自行輸入之宣告 displayName 的自我發行證明類型。

建立具有多個證明類型的自定義認證

在 Azure 入口網站 中,當您選取 [新增認證] 時,您會取得啟動兩個快速入門的選項。 選取 自定義認證,然後選取 [ 下一步]。

建立自定義認證的問題認證快速入門螢幕快照。

在 [ 建立新的認證 ] 頁面上,輸入顯示和規則定義的 JSON 程序代碼。 在 [ 認證名稱] 方塊中,為認證提供類型名稱。 若要建立認證,請選取 [建立]。

[建立新的認證] 頁面的螢幕快照,其中顯示顯示和規則檔案的 JSON 範例。

範例 JSON 顯示定義

相較於標識元令牌提示顯示定義,JSON 顯示定義有一個名為 displayName 的額外宣告

{
    "locale": "en-US",
    "card": {
      "title": "Verified Credential Expert",
      "issuedBy": "Microsoft",
      "backgroundColor": "#507090",
      "textColor": "#ffffff",
      "logo": {
        "uri": "https://didcustomerplayground.blob.core.windows.net/public/VerifiedCredentialExpert_icon.png",
        "description": "Verified Credential Expert Logo"
      },
      "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials."
    },
    "consent": {
      "title": "Do you want to get your Verified Credential?",
      "instructions": "Sign in with your account to get your card."
    },
    "claims": [
      {
        "claim": "vc.credentialSubject.displayName",
        "label": "Name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.firstName",
        "label": "First name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.lastName",
        "label": "Last name",
        "type": "String"
      }
    ]
}

範例 JSON 規則定義

JSON 規則定義包含兩個不同的證明,指示 Authenticator 從兩個不同的來源取得宣告值。 要求服務 API 的發行要求會提供宣告 的值, given_name和 family_name 以滿足 idTokenHints 證明。 在發行期間,系統會要求使用者輸入 Authenticator 中 displayName 的宣告值

{
  "attestations": {
    "idTokenHints": [
        {
        "mapping": [
            {
            "outputClaim": "firstName",
            "required": true,
            "inputClaim": "$.given_name",
            "indexed": false
            },
            {
            "outputClaim": "lastName",
            "required": true,
            "inputClaim": "$.family_name",
            "indexed": false
            }
        ],
        "required": false
        }
    ],
    "selfIssued": {
      "mapping": [
        {
          "outputClaim": "displayName",
          "required": true,
          "inputClaim": "displayName",
          "indexed": false
        }
      ],
      "required": false
    }
  },
  "validityInterval": 2592000,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}

在發行期間宣告輸入

在發行期間,Authenticator 會提示使用者輸入指定宣告的值。 不會驗證用戶輸入。

自我發出宣告輸入的螢幕快照。

已發行認證中的宣告

發行的認證總共會有三個宣告,其中 FirstLast name 來自 標識符令牌提示 證明,而 Name 來自 自我發行 的證明。

已核發認證中宣告的螢幕快照。

設定範例以發出並驗證您的自定義認證

若要設定範例程式代碼以發出並驗證您的自訂認證,您需要:

  • 租使用者的簽發者分散式標識碼 (DID)
  • 認證類型
  • 認證的指令清單 URL

若要尋找自定義認證這項資訊,最簡單的方式是在 Azure 入口網站 中移至您的認證。 選取 [ 發出認證]。 然後,您可以存取具有要求服務 API JSON 承載的文字框。 將佔位元值取代為您的環境資訊。 簽發者的 DID 是授權單位值。

快速入門自定義認證問題的螢幕快照。

下一步

請參閱規則和顯示定義參考