撤銷先前發行的可驗證認證 (預覽版)

在使用可驗證認證 (Vc) 的過程中,您不只需要發行認證,有時候您也必須加以撤銷。 在本文中,我們會探討 VC 規格的 Status 屬性部分,並進一步瞭解撤銷程式,為什麼我們會想要撤銷認證和某些資料和隱私權含意。

重要

Azure Active Directory 可驗證的認證目前處於公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

可驗證認證規格中的 Status 屬性

在我們可以瞭解撤銷可驗證認證的含意之前,可能有助於知道 狀態檢查 是什麼,以及它今天的運作方式。

W3C 可驗證的認證規格會參考第4.9 節中的 status 屬性

「此規格會定義下列 credentialStatus 屬性,以探索可驗證認證的目前狀態相關資訊,例如是否已暫止或撤銷。」

不過,W3C 規格不會定義 狀態檢查 應該如何執行的格式。

「定義狀態配置的資料模型、格式和通訊協定超出此規格的範圍。 具有可驗證的認證延伸登錄 [VC-EXTENSION-REGISTRY] 存在,其包含想要執行可驗證的認證狀態檢查之實作者的可用狀態配置。

注意

目前,Microsoft 的狀態檢查實行是專屬的,但我們目前正積極地與執行中的小組合作,以配合標準。

Status 屬性的運作方式為何?

在每個 Microsoft 發出的可驗證認證中,都有一個稱為 credentialStatus 的屬性。 它會填入 Microsoft 代表您管理的狀態 API。 範例如下所示。

    "credentialStatus": {
      "id": "https://portableidentitycards.azure-api.net/v1.0/7952032d-d1f3-4c65-993f-1112dab7e191/portableIdentities/card/status",
      "type": "PortableIdentityCardServiceCredentialStatus2020"
    }

開放原始碼可驗證認證 SDK 會處理撥號狀態 API,並提供必要的資料。

一旦呼叫 API 並提供正確的資訊,API 就會傳回 True 或 False。 True 表示可驗證的認證仍在使用簽發者,而 False 表示簽發者已主動撤銷可驗證的認證。

您可能想要撤銷 VC 的原因?

每個客戶都有自己的獨特原因,想要撤銷可驗證的認證,但以下是我們到目前為止所聽到的一些常見主題。

  • 學生識別碼:學生不再是大學的活躍學生。
  • 員工識別碼:員工不再是使用中的員工。
  • 狀態驅動程式授權:驅動程式不再處於該狀態。

如何設定能撤銷的可驗證認證

所有可驗證的認證資料預設都不會與 Microsoft 儲存。 因此,我們沒有任何資料可以參考來撤銷特定可驗證的認證識別碼。 簽發者必須從可驗證的 credential 屬性指定特定欄位,以供 Microsoft 進行索引,並接著使用 salt 和雜湊。

注意

雜湊是單向的密碼編譯作業,它會開啟輸入(稱為 preimage ),並產生稱為雜湊的輸出,此雜湊具有固定長度。 目前無法進行運算以反轉雜湊作業。

您可以讓 Microsoft 知道您想要編制索引之可驗證認證的哪個屬性。 索引的含意是索引值可用來搜尋您想要撤銷之 Vc 的可驗證認證。

範例: Alice 是 Woodgrove 員工。 Alice 將 Woodgrove 留給 Contoso 在 Contoso 工作。 Woodgrove 是 Woodgrove 的 IT 系統管理員,會在可驗證的認證中搜尋 Alice 的電子郵件,以撤銷搜尋查詢。 在此範例中,Jane,索引了 Woodgrove 驗證的員工認證的電子郵件欄位。

請參閱下列範例,以瞭解如何修改規則檔案以包含索引。

{
  "attestations": {
    "idTokens": [
      { 
        "mapping": {
          "Name": { "claim": "name" },
          "email": { "claim": "email", "indexed": true}
        },
        "configuration": "https://login.microsoftonline.com/tenant-id-here7/v2.0/.well-known/openid-configuration",
        "client_id": "c0d6b785-7a08-494e-8f63-c30744c3be2f",
        "redirect_uri": "vcclient://openid"
      }
    ]
  },
  "validityInterval": 25920000,
  "vc": {
    "type": ["WoodgroveEmployee"]
  }
}

注意

只有一個屬性可以從規則檔案編制索引。

如何? 撤銷可驗證的認證

一旦設定了索引宣告,且已對您的使用者發出可驗證的認證之後,就可以瞭解如何在 VC 分頁中撤銷可驗證的認證。

  1. 在 Azure Active Directory 中,流覽至 [可驗證的認證] 分頁。

  2. 選擇您先前設定索引宣告的可驗證認證,並對使用者發出可驗證的認證。 =

  3. 在左側功能表上,選擇 撤銷 認證 ![ ]

  4. 搜尋您想要撤銷之使用者的索引屬性。

    尋找要撤銷的認證

    注意

    因為我們只會從可驗證的認證儲存索引宣告的雜湊,所以只有完全相符的會填入搜尋結果。 我們會採用 IT 系統管理員所搜尋的輸入,我們會使用相同的雜湊演算法來查看資料庫中是否有雜湊相符。

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

    一則警告,讓您知道在撤銷之後,使用者仍具有認證

  6. 成功撤銷之後,您會看到狀態更新,且頁面頂端會出現綠色橫幅。 在 [設定] 中驗證此網域

現在,當信賴憑證者呼叫檢查此特定可驗證認證的狀態時,Microsoft 的狀態 API (代表租使用者)會傳回 ' false ' 回應。

下一步

使用測試認證來測試您自己的功能,以用於流程。 您可以查看 我們的教學課程,以瞭解如何設定您的租使用者來發出可驗證的認證。