Share via


以前に発行された検証可能な資格情報を取り消す

注意

Azure Active Directory の検証可能な資格情報が Microsoft Entra 検証済み ID になり、Microsoft Entra 製品ファミリの一部になりました。 ID ソリューションの Microsoft Entra ファミリの詳細を確認し、統合 Microsoft Entra 管理センターで作業を開始してください。

検証可能な資格情報 (VC) を操作するプロセスの一環として、資格情報を発行するだけでなく、資格情報を失効させる必要がある場合もあります。 この記事では、VC 仕様の状態プロパティ部分について説明し、失効プロセス、資格情報を失効させる必要が生じる理由、データとプライバシーへのいくつかの影響について詳しく見ていきます。

検証可能な資格情報の取り消しが必要になる理由

顧客にはそれぞれ、検証可能な資格情報を失効させる必要があることに対して固有の理由がありますが、ここでは、これまでに報告された一般的なテーマをいくつか紹介します。

  • 学生 ID: 学生が、大学の現役の学生ではなくなった。
  • 従業員 ID: 従業員が、現職の従業員ではなくなった。
  • 州の運転免許: ドライバーが、もうその州に住んでいない。

検証可能な資格情報を失効させる方法

検証可能な資格情報でインデックス付き要求を使用すると、ポータルでその要求によって発行された検証可能な資格情報を検索し、取り消すことができます。

  1. Azure Key Vault に対する署名キー アクセス許可を持つ管理者ユーザーとして、Azure portal の [検証済み ID] ブレードに移動します。

  2. 検証可能な資格情報の種類を選択する

  3. 左側のメニューで、[資格情報の取り消し]を選択します。[資格情報の取り消し]

  4. 失効させるユーザーのインデックス要求を検索します。 要求のインデックスを作成していない場合、検索は機能せず、検証可能な資格情報を取り消すことはできません。

    失効させる資格情報のスクリーンショット

    注意

    検証可能な資格情報からのインデックス付き要求のハッシュのみが格納されるため、完全一致だけが検索結果に設定されます。 テキストボックスに入力された内容は、同じアルゴリズムを使ってハッシュされ、格納されているハッシュされた値と一致する検索条件として使われます。

  5. 一致が見つかったら、取り消す資格情報の右側にある [取り消し] オプションを選びます。

    注意

    取り消し操作を実行する管理者ユーザーは、Azure KeyVault に対する署名キー アクセス許可を持っている必要があります。そうしないと、"指定された資格情報では KeyVault リソースにアクセスできない" というエラー メッセージが表示されます。

    失効後もユーザーに資格情報が残ることを知らせる警告のスクリーンショット

  6. 失効が正常に終了すると、状態が更新され、ページの上部に緑色のバナーが表示されます。

    検証可能な資格情報が正常に失効されたことを示すメッセージのスクリーンショット

提示が要求サービス API に送信されるたびに、VC が取り消されているかどうかを確認します。

失効の機能を持つ検証可能な資格情報を設定する方法

検証可能な資格情報データは、Microsoft によって保存されません。 したがって、VC が検索可能になる前に、発行者が 1 つの要求 (インデックス付き要求) を作成する必要があります。 インデックスが作成される要求は 1 つだけであり、存在しない場合は資格情報を取り消すことができません。 インデックスに対して選択された要求はソルト化され、ハッシュ化されるため、元の値として格納されません。

注意

ハッシュ化は一方向の暗号化操作であり、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"
    ]
  }
}

注意

1 つのルール要求マッピングからは、1 つの要求にのみインデックスを付けることができます。 ルールの定義でインデックス付き要求を指定し忘れて、後でこれを修正した場合、既に発行された検証可能な資格情報は、インデックスが存在しないときに発行されているため、検索できません。

失効はどのように機能しますか?

Microsoft Entra 確認済み ID では、W3C StatusList2021 が実装されています。 要求サービス API への提示が行われると、API によって失効チェックが行われます。 失効チェックは ID ハブへの匿名 API 呼び出しで行われ、検証可能な資格情報がまだ有効であるか取り消されているかを確認しているユーザーのデータは含まれません。 statusList2021 では、Microsoft Entra 確認済み ID はインデックス付き要求のハッシュ値でフラグを保持し、失効状態を追跡します。

検証可能な資格情報のデータ

Microsoft が発行したすべての検証可能な資格情報には、credentialStatus という要求があります。 このデータは、この VC の失効フラグがあるデータ ブロック内の場所にナビゲートするマップです。

注意

検証可能な資格情報が古く、プレビュー期間中に発行された場合、この要求は存在しない可能性があります。 この資格情報については取り消しは機能せず、再発行する必要があります。

...
"credentialStatus": { 
    "id": "urn:uuid:625dfcad-0000-1111-2222-333444445555?bit-index=31", 
    "type": "RevocationList2021Status", 
    "statusListIndex": 31, 
    "statusListCredential": "did:ion:EiDR0Y6zfvnUy2NjO293XNfe9AOL...<SNIP>...?service=IdentityHub&queries=...data..." 
...

発行者の ID ハブ API エンドポイント

発行元の DID ドキュメントでは、service セクションで ID ハブのエンドポイントを使用できます。

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

次の手順