使用英语阅读

通过


启用对 did:web:path 的支持

在本文中,我们将介绍启用对 did:web:path 的支持的步骤。

先决条件

什么是:web:path?

did:web 方法规范中对 did:web:path 进行了描述。 如果你有需要使用大量颁发机构的环境,那么为其获取域名就会成为一个管理问题。 使用一个域并让不同的颁发机构显示为域下的路径可能是一种更好的方法。

为 did:web:path 支持启用域

默认情况下,租户和颁发机构未启用支持 did:web:path。 通过在 Microsoft Entra 管理中心创建新的支持请求,请求为颁发机构启用 did:web:path。

支持票证详细信息:

  • 问题类型:Technical
  • 服务类型:Microsoft Entra Verified ID
  • 问题类型:Configuration organization and domains
  • 摘要:Enable did:web:path request
  • 说明:请确保包含
    • 您的 Microsoft Entra tenant ID
    • 您的did(示例:did:web:verifiedid.contoso.com)
    • 估计子路径数
    • 业务理由

如何测试我的授权是否已启用?

您的支持请求已获得确认,但您也可以通过在普通浏览器中测试来验证是否为 did:web 域启用了 did:web 域。 通过添加不存在的路径(以下示例中的 :do-not-exist),如果颁发机构未启用,会收到包含代码 discovery_service.web_method_path_not_supported 的错误消息,但如果启用了代码,则会收到代码 discovery_service.not_found

https://discover.did.msidentity.com/v1.0/identifiers/did:web:my-domain.com:do-not-exist

如何实现使用 did:web:path 配置颁发机构?

为 did:web:path 启用租户和颁发机构后,可以在使用 did:web:path 的同一租户中创建一个新颁发机构。 目前,由于门户尚不支持,此操作需要使用管理员 API

  1. 获取现有机构的详细信息
    • 转到 Verified ID | Overview 并复制域(示例:https://verifiedid.contoso.com/
    • 转到 Verified ID | Organization settings 并记下正在配置哪个密钥保管库。
    • 转到密钥保管库资源并复制 resource groupsubscription IDVault URI
  2. 使用以下 JSON 正文调用创建机构(根据需要修改)。 路径 /my-path 中指定要使用的路径名称。
POST /v1.0/verifiableCredentials/authorities

{
  "name":"ExampleNameForPath",
  "linkedDomainUrl":"https://my-domain.com/my-path",
  "didMethod": "web",
  "keyVaultMetadata":
  {
    "subscriptionId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroup":"verifiablecredentials",
    "resourceName":"vccontosokv",
    "resourceUrl": "https://vccontosokv.vault.azure.net/"
  }
}
  1. 通过调用 generateDidDocument 为新颁发机构生成执行的文档,其中 newAuthorityIdForPath 是创建颁发机构响应中的 id 属性:
POST /v1.0/verifiableCredentials/authorities/:newAuthorityIdForPath/generateDidDocument
  1. 保存对命名 did.json 文件所做的文档响应,并将其上传到 Web 服务器上的位置,该位置与 API 调用中匹配 linkedDomainUrl 以创建颁发机构。 如果路径为 https://my-domain.com/my-path,则新的 did.json 文件必须位于该位置。

  2. 使用以下 JSON 正文(根据需要修改)调用 generateWellknownDidConfiguration API 取回链接域的配置。 domainUrl 是没有路径的域名

POST /v1.0/verifiableCredentials/authorities/:newAuthorityIdForPath/generateWellknownDidConfiguration

{
    "domainUrl":"https://my-domain.com/"
}
  1. 从响应中,复制 linked_dids 集合中的 JWT 令牌。

  2. 在 Web 服务器上,在编辑器中打开该文件 https://my-domain.com/.well-known/did.configuration.json,并将 JWT 令牌添加为 linked_dids 集合中的新条目。 添加之后,结果应该如下所示。

{
  "@context": "https://identity.foundation/.well-known/contexts/did-configuration-v0.0.jsonld",
  "linked_dids": [
    "eyJh...old...U7cw",
    "eyJh...new...V8dx",
  ]
}
  1. 保存文件。

使用新的 did:web:path 颁发机构创建协定

需要使用管理 API 创建合同。 目前没有辅助颁发机构的用户界面支持。

在新的 did:web:path 颁发中基于协定的凭证

若要让应用在 did:web:path 颁发机构中根据协定颁发凭据,您只需在有效负载请求中更改字段 authoritycreateIssuanceRequest API 即可。

{
  "authority": "did:web:my-domain.com:my-path",
  "includeQRCode": false,
  ... the rest is the same...
}