以前に発行された検証可能な資格情報を取り消す
検証可能な資格情報を操作するプロセスの一環として、資格情報を発行する必要があります。 場合によっては、取り消す必要もあります。 この記事では、検証可能な資格情報の仕様の Status
プロパティ部分を確認します。 また、失効プロセス、資格情報を取り消す理由、データとプライバシーへの影響についても詳しく説明します。
検証可能な資格情報の取り消しが必要になる理由
各顧客には、検証可能な資格情報を取り消す独自の理由があります。 共通するテーマのいくつかを次に示します。
- 学生 ID: 学生が、大学の現役の学生ではなくなった。
- 従業員 ID: 従業員が、現職の従業員ではなくなった。
- 州の運転免許: ドライバーが、もうその州に住んでいない。
検証可能な資格情報を失効させる方法
検証可能な資格情報でインデックス付き要求を使用して、ポータルでその要求によって発行された検証可能な資格情報を検索し、取り消すことができます。
Azure Key Vault に対する署名キー アクセス許可を持つ管理者ユーザーとして、Azure portal の [確認済み ID] ペインに移動します。
検証可能な資格情報の種類を選択する。
一番左のメニューで、[資格情報の取り消し]を選択します。
失効させるユーザーのインデックス要求を検索します。 要求のインデックスを付けることは、資格情報を検索できるようにするための要件です。
検証可能な資格情報からのインデックス付き要求のハッシュのみが格納されるため、完全一致だけが検索結果に表示されます。 テキスト ボックスに入力された情報は、同じアルゴリズムを使用してハッシュされます。 これは、格納されているハッシュ値と一致する検索条件として使用されます。
一致が見つかったら、取り消す資格情報の右側にある [取り消し] オプションを選びます。
取り消し操作を実行する管理者ユーザーは、Key Vault に対する署名キー アクセス許可を持っている必要があります。そうしないと、"指定された資格情報では Key Vault リソースにアクセスできない" というエラー メッセージが表示されます。
取り消しが成功すると、状態が更新され、ページの上部に緑色のバナーが表示されます。
要求サービス API は、presentation_verified
コールバック内で取り消された資格情報を REVOKED
と明示します。 取り消された資格情報の提示を許可するようプレゼンテーション要求で指定されたかどうかに応じて、取り消された資格情報の提示は成功するか失敗します。
取り消しの機能を持つ検証可能な資格情報を設定する方法
Microsoft Entra Verified ID には、検証可能な資格情報データは保存されません。 発行者は資格情報を検索可能にするために、1 つの要求にインデックスを付ける必要があります。 インデックスを付けることができる要求は 1 つだけであり、存在しない場合は資格情報を取り消すことができません。 インデックスに対して選択された要求はソルト化され、ハッシュ化されるため、元の値として格納されません。
Note
ハッシュ化は一方向の暗号化操作であり、preimage
と呼ばれる入力を変換し、固定長を持つ「ハッシュ」と呼ばれる出力を生成します。 現時点では、ハッシュ操作を計算によって元に戻すことはできません。
例: 次の例では、 displayName
はインデックス要求です。 ユーザーのフル ネームを使用してのみ検索でき、それ以外は検索できません。
{
"attestations": {
"idTokens": [
{
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"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 が実装されています。 Request Service API への提示が行われると、API によって失効状態が検査されます。 失効検査は ID ハブへの匿名 API 呼び出しで行われ、検証可能な資格情報がまだ有効であるか取り消されているかを確認しているユーザーのデータは含まれません。 statusList2021
では、Microsoft Entra Verified ID はインデックス付き要求のハッシュ値でフラグを保持し、失効状態を追跡します。
検証可能な資格情報のデータ
Microsoft が発行したすべての検証可能な資格情報には、credentialStatus
という要求があります。 このデータは、この検証可能な資格情報の失効フラグがあるデータ ブロック内の場所にナビゲートするマップです。
Note
検証可能な資格情報が古く、プレビュー期間中に発行された場合、この要求は存在しません。 この資格情報については取り消しは機能せず、再発行する必要があります。
...
"credentialStatus": {
"id": "urn:uuid:00aa00aa-bb11-cc22-dd33-44ee44ee44ee?bit-index=31",
"type": "RevocationList2021Status",
"statusListIndex": 31,
"statusListCredential": "did:web:verifiedid.contoso.com?service=IdentityHub&queries=...data..."
...
発行者の ID ハブ API エンドポイント
発行元の分散化識別子ドキュメントでは、service
セクションで ID ハブのエンドポイントを使用できます。
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/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
],
"origins": [ ]
}
}
],