이전에 발급한 확인 가능한 자격 증명 해지

참고

Azure Active Directory 확인 가능한 자격 증명은 이제 Microsoft Entra 확인 ID이며 Microsoft Entra 제품군의 일부입니다. ID 솔루션의 Microsoft Entra 제품군에 대해 자세히 알아보고 통합 Microsoft Entra 관리 센터에서 시작합니다.

VC(확인 가능한 자격 증명)를 사용하는 프로세스의 일부로 자격 증명을 발급해야 할 뿐만 아니라 자격 증명을 해지해야 하는 경우도 있습니다. 이 문서에서는 VC 사양의 Status 속성 부분을 살펴보고, 해지 프로세스, 자격 증명을 해지해야 하는 이유 및 일부 데이터 및 개인 정보 보호에 대한 영향을 자세히 살펴봅니다.

검증 가능한 자격 증명을 해지하려는 이유는 무엇인가요?

각 고객은 확인 가능한 자격 증명을 해지하려는 고유한 이유가 있지만 지금까지 설명한 몇 가지 일반적인 주제를 제공합니다.

  • 학생 ID: 이 학생은 더 이상 대학에서 활성 학생이 아닙니다.
  • 직원 ID: 이 직원은 더 이상 활성 직원이 아닙니다.
  • 상태 드라이버 라이선스: 이 드라이버가 더 이상 해당 상태에 있지 않습니다.

확인 가능한 자격 증명을 해지하는 방법

확인 가능한 자격 증명에서 인덱싱된 클레임을 사용하면 포털에서 해당 클레임별로 발급된 확인 가능한 자격 증명을 검색하고 해지할 수 있습니다.

  1. Azure KeyVault에 대한 서명 키 권한이 있는 관리 사용자로 Azure Portal의 Verified ID 블레이드로 이동합니다.

  2. 확인 가능한 자격 증명 형식을 선택합니다.

  3. 왼쪽 메뉴에서 자격 증명 해지자격 증명 해지를 선택합니다.

  4. 해지하려는 사용자의 인덱스 클레임을 검색합니다. 클레임을 인덱스화하지 않은 경우 검색이 작동하지 않으며 확인 가능한 자격 증명을 해지할 수 없습니다.

    취소할 자격 증명의 스크린샷

    참고

    확인 가능한 자격 증명에서 인덱싱된 클레임의 해시만 저장되기 때문에 정확히 일치하는 경우에만 검색 결과가 채워집니다. 텍스트 상자에 입력된 내용은 동일한 알고리즘을 사용하여 해시되고 저장된, 해시된 값과 일치하는 검색 조건으로 사용됩니다.

  5. 일치하는 항목을 찾으면 해지하려는 자격 증명 오른쪽에 있는 해지 옵션을 선택합니다.

    참고

    해지 작업을 수행하는 관리 사용자는 Azure KeyVault에 대한 서명 키 권한이 있어야 합니다. 그렇지 않으면 지정된 자격 증명으로 KeyVault 리소스에 액세스할 수 없음 오류 메시지가 표시됩니다.

    해지 후에도 사용자에게 여전히 자격 증명이 있음을 알리는 경고의 스크린샷

  6. 해지가 성공하면 상태 업데이트가 표시되고 페이지 위쪽에 녹색 배너가 표시됩니다.

    성공적으로 해지된 확인 가능한 자격 증명 메시지의 스크린샷

이제 프레젠테이션을 서비스 요청 API에 보낼 때마다 VC가 해지되었는지 확인합니다.

해지할 수 있는 권한으로 확인 가능한 자격 증명을 설정하는 방법

확인 가능한 자격 증명 데이터는 Microsoft에서 저장하지 않습니다. 따라서 VC를 검색할 수 있으려면 먼저 발급자가 하나의 클레임, 즉 인덱싱된 클레임을 만들어야 합니다. 인덱싱되는 클레임은 하나만 있을 수 있으며, 클레임이 없으면 자격 증명을 해지할 수 없습니다. 그런 다음, 인덱싱하기 위해 선택한 클레임은 솔트되고 해시되며 원래 값으로 저장되지 않습니다.

참고

해싱은 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 확인된 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 엔드포인트

ID 허브의 엔드포인트는 발급 당사자의 DID 문서에 있는 service 섹션에서 사용할 수 있습니다.

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": [ ]
             }
         }
    ],

다음 단계