Сценарий связи DID и VC
Этот сценарий показывает связь между DID service и VC service. Мы создаем issuer DID и subject DID, затем выпускаем VC, где issuer ссылается на первый DID, а credentialSubject.id на второй DID.
Пока оба DID активны, verify у VC должен проходить успешно. Затем мы деактивируем subject DID и повторяем verify той же самой VC. Ожидаемый результат меняется на invalid, потому что VC service при проверке заново обращается к DID service и видит, что subject DID больше не активен.
Такой сценарий важен для демонстрации взаимосвязности сервисов. VC остается в реестре, но ее нельзя считать валидной, если связанный DID уже деактивирован.
Откройте две страницы Swagger:
http://localhost:8080/swagger http://localhost:8081/swagger
1. Создать DID issuer
В DID Swagger откройте POST /v1/dids.
Тело запроса:
{ "id": "did:example:link-issuer-001", "verificationMethod": [ { "id": "did:example:link-issuer-001#key-1", "type": "JsonWebKey2020", "controller": "did:example:link-issuer-001", "publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "x": "7aPhnogXhdfMKCyfI6jVewaum4GFYJR8oYDFJeWW4pE" } } ], "authentication": [ "did:example:link-issuer-001#key-1" ] }
Ожидаемый результат:
201 Created
2. Создать DID subject
В DID Swagger откройте POST /v1/dids.
Тело запроса:
{ "id": "did:example:link-subject-001", "verificationMethod": [ { "id": "did:example:link-subject-001#key-1", "type": "JsonWebKey2020", "controller": "did:example:link-subject-001", "publicKeyJwk": { "kty": "OKP", "crv": "Ed25519", "x": "ZzG6xmg4M9CGmB_hgX-i4AGB6ip7S43mA6o9zp0NM8I" } } ], "authentication": [ "did:example:link-subject-001#key-1" ] }
Ожидаемый результат:
201 Created
3. Создать VC
В VC Swagger откройте POST /v1/credentials.
Тело запроса:
{ "id": "urn:uuid:00000000-0000-4000-8000-000000000101", "type": [ "DeviceCredential" ], "issuer": "did:example:link-issuer-001", "credentialSubject": { "id": "did:example:link-subject-001", "serialNumber": "LINK-001" } }
Ожидаемый результат:
201 Created
4. Проверить VC до деактивации DID
В VC Swagger откройте POST /v1/credentials/{id}/verify.
Значение:
urn:uuid:00000000-0000-4000-8000-000000000101
Ожидаемый результат:
200 OK result равен registry_valid issuerDid равен resolved subjectDid равен resolved
5. Деактивировать DID subject
В DID Swagger откройте PATCH /v1/dids/{did}.
DID:
did:example:link-subject-001
Content-Type:
application/merge-patch+json
Тело запроса:
{ "didDocumentMetadata": { "deactivated": true } }
Ожидаемый результат:
200 OK deactivated равен true
6. Проверить VC после деактивации DID
В VC Swagger откройте POST /v1/credentials/{id}/verify еще раз.
Ожидаемый результат:
200 OK result равен invalid subjectDid равен deactivated
Это значит, что VC остается в реестре, но больше не проходит проверку, потому что subject DID не активен.
Журнал изменений
Дата | Перечень изменений | Автор |
2026-11-05 | Перенесён из архива DID-VC-итоги-2026-11-03 без изменения содержания. | Дис |