撤銷先前發行的可驗證認證

在處理可驗證認證的過程中,您必須發出認證。 有時候,您也必須撤銷它們。 在本文中,我們會檢閱 Status 可驗證認證規格的屬性部分。 我們也進一步瞭解撤銷程序、為何想要撤銷認證,以及某些數據和隱私權影響。

為何要撤銷可驗證的認證?

每個客戶都有自己的唯一理由想要撤銷可驗證的認證。 以下是一些常見的主題:

  • 學生標識碼:學生不再是該校的現役學生。
  • 員工標識碼:員工不再是現用員工。
  • 狀態驅動程式的授權:驅動程式不再處於該狀態。

如何? 撤銷可驗證的認證嗎?

藉由在可驗證認證中使用已編製索引的宣告,您可以在入口網站中搜尋該宣告所發出的可驗證認證,並加以撤銷。

  1. 以具有 Azure 金鑰保存庫 登入金鑰權限的系統管理員使用者身分,移至 Azure 入口網站 中的 [驗證標識符] 窗格。

  2. 選取可驗證的認證類型。

  3. 在最左邊的功能表上,選取 [ 撤銷認證]。

    顯示認證撤銷的螢幕快照。

  4. 搜尋您要撤銷之使用者的索引宣告。 編製宣告的索引是能夠搜尋認證的需求。

    顯示要撤銷之認證的螢幕快照。

    由於只會儲存可驗證認證的已編製索引宣告哈希,因此只會填入搜尋結果的完全相符專案。 文本框中輸入的資訊會使用相同的演算法進行哈希處理。 它用來做為搜尋準則,以符合儲存的哈希值。

  5. 找到相符專案時,請選取 您要撤銷之認證右邊的 [撤銷 ] 選項。

    執行撤銷作業的系統管理員用戶必須具有 金鑰保存庫 的簽署密鑰許可權,否則會出現錯誤訊息「無法使用指定的認證存取 金鑰保存庫 資源」。

    顯示警告的螢幕快照,指出撤銷之後,使用者仍具有認證。

  6. 成功撤銷之後,您會看到狀態更新,且頁面頂端會出現綠色橫幅。

    顯示已成功撤銷可驗證認證訊息的螢幕快照。

要求服務 API 表示回呼中撤銷的presentation_verified認證為 REVOKED 根據指定的簡報要求是否 允許顯示撤銷的認證 ,撤銷認證的呈現會成功或失敗。

設定可驗證的認證,並能夠撤銷

Microsoft Entra 驗證識別碼 不會儲存可驗證的認證數據。 簽發者必須編製一個宣告的索引,才能讓認證可供搜尋。 只有一個宣告可以編製索引,如果沒有,就無法撤銷認證。 然後,選取的索引宣告會加鹽和哈希,而且不會儲存為其原始值。

注意

哈希是一種單向密碼編譯作業,其會輪流輸入,稱為 preimage,併產生稱為具有固定長度之哈希的輸出。 目前無法以計算方式反轉哈希作業。

範例: 在下列範例中, displayName 是索引宣告。 您只能透過使用者的完整名稱進行搜尋,而不需要搜尋其他任何名稱。

{
  "attestations": {
    "idTokens": [
      {
        "clientId": "8d5b446e-22b2-4e01-bb2e-9070f6b20c90",
        "configuration": "https://didplayground.b2clogin.com/didplayground.onmicrosoft.com/B2C_1_sisu/v2.0/.well-known/openid-configuration",
        "redirectUri": "vcclient://openid",
        "scope": "openid profile email",
        "mapping": [
          {
            "outputClaim": "displayName",
            "required": true,
            "inputClaim": "$.name",
            "indexed": true
          },
          {
            "outputClaim": "firstName",
            "required": true,
            "inputClaim": "$.given_name",
            "indexed": false
          },
          {
            "outputClaim": "lastName",
            "required": true,
            "inputClaim": "$.family_name",
            "indexed": false
          }
        ],
        "required": false
      }
    ]
  },
  "validityInterval": 2592000,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}

您只能從規則宣告對應編製一個宣告的索引。 如果您不小心在規則定義中沒有索引宣告,且您稍後更正此監督,則已核發的可驗證認證將無法搜尋,因為它們在沒有任何索引存在時發出。

撤銷如何運作?

Microsoft Entra 驗證識別碼 實作W3C StatusList2021。 當向要求服務 API 呈現時,API 會檢查撤銷狀態。 撤銷檢查會透過匿名 API 呼叫身分識別中樞,且不包含任何有關誰正在檢查可驗證認證是否仍然有效或撤銷的數據。 使用 statusList2021時,Microsoft Entra 驗證識別碼 依索引宣告的哈希值保留旗標,以追蹤撤銷狀態。

可驗證的認證數據

在每個 Microsoft 核發的可驗證認證中,有一個稱為 credentialStatus的宣告。 此數據是導覽對應,在數據區塊中,此可驗證的認證具有其撤銷旗標。

注意

如果可驗證的認證是舊的,並在預覽期間發出,則此宣告不存在。 撤銷不適用於此認證,您必須重新發出。

...
"credentialStatus": { 
    "id": "urn:uuid:625dfcad-0000-1111-2222-333444445555?bit-index=31", 
    "type": "RevocationList2021Status", 
    "statusListIndex": 31, 
    "statusListCredential": "did:web:verifiedid.contoso.com?service=IdentityHub&queries=...data..." 
...

簽發者的身分識別中樞 API 端點

在發行方分散式標識碼檔中,身分識別中樞的端點可在 區 service 段中取得。

didDocument": {
    "id": "did:web:verifiedid.contoso.com",
    "@context": [
        "https://www.w3.org/ns/did/v1",
        {
            "@base": "did:web:verifiedid.contoso.com"
        }
     ],
     "service": [
         {
             "id": "#linkeddomains",
             "type": "LinkedDomains",
             "serviceEndpoint": {
             "origins": [
                "https://verifiedid.contoso.com/"
                ]
             }
         },
         {
             "id": "#hub",
             "type": "IdentityHub",
             "serviceEndpoint": {
                "instances": [
                   "https://verifiedid.hub.msidentity.com/v1.0/11111111-2222-3333-4444-000000000000"
                ],
                "origins": [ ]
             }
         }
    ],

下一步