共用方式為


建立具有多個證明的可驗認證

使用多個證明類型的規則定義會產生核發流程,其中宣告來自多個來源。 例如,您可能需要出示現有的認證,並在 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.z13.web.core.windows.net/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_namefamily_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 是授權單位值。

快速入門自訂認證核發的螢幕擷取畫面。

下一步

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