通过出示现有可验证凭据的声明来颁发可验证凭据
使用呈现证明类型的规则定义会生成一个颁发流,在此颁发流中,你希望用户在颁发期间出示钱包中的另一个可验证凭据,用于发布新凭据的声明值取自所出示的凭据。 例如,当你出示 VerifiedEmployee 凭据以获取访问者通行凭据时,可以执行此操作。
创建具有呈现证明类型的自定义凭据
在 Azure 门户中选择“添加凭据”时,可以选择启动两个快速入门。 选择“自定义凭据”,然后选择“下一步”。
在“创建新凭据”页上,输入显示和规则定义的 JSON 代码。 在“凭据名称”框中,为凭据提供名称。 此名称只是门户中凭据的内部名称。 凭据的类型名称在规则定义的 vc.type
属性名称中定义。 要创建凭据,选择“创建”。
示例 JSON 显示定义
无论证明类型如何,JSON 显示定义都几乎相同。 只需根据可验证凭据所拥有的声明来调整标签。 显示定义的预期 JSON 是显示集合的内部内容。 JSON 是一个集合,如果要支持多个区域设置,则添加多个条目,以逗号作为分隔符。
{
"locale": "en-US",
"card": {
"backgroundColor": "#000000",
"description": "Use your verified credential to prove to anyone that you know all about verifiable credentials.",
"issuedBy": "Microsoft",
"textColor": "#ffffff",
"title": "Verified Credential Expert",
"logo": {
"description": "Verified Credential Expert Logo",
"uri": "https://didcustomerplayground.z13.web.core.windows.net/VerifiedCredentialExpert_icon.png"
}
},
"consent": {
"instructions": "Present your True Identity card to issue your VC",
"title": "Do you want to get your Verified Credential?"
},
"claims": [
{
"claim": "vc.credentialSubject.firstName",
"label": "First name",
"type": "String"
},
{
"claim": "vc.credentialSubject.lastName",
"label": "Last name",
"type": "String"
}
]
}
示例 JSON 规则定义
JSON 证明定义应包含呈现名称。 映射部分的 inputClaim 定义了应在用户出示的凭据中捕获哪些声明。 它们需要有前缀 $.vc.credentialSubject
。 outputClaim 定义了在颁发的凭据中的声明名称。
以下规则定义将在颁发过程中提示用户出示“数字身份”凭据。 此凭据来自公共演示应用程序。
{
"attestations": {
"presentations": [
{
"mapping": [
{
"outputClaim": "firstName",
"required": true,
"inputClaim": "$.vc.credentialSubject.firstName",
"indexed": false
},
{
"outputClaim": "lastName",
"required": true,
"inputClaim": "$.vc.credentialSubject.lastName",
"indexed": false
}
],
"required": false,
"credentialType": "TrueIdentity",
"contracts": [
"https://verifiedid.did.msidentity.com/v1.0/tenants/aaaabbbb-0000-cccc-1111-dddd2222eeee/verifiableCredentials/contracts/M2MzMmVkNDAtOGExMC00NjViLThiYTQtMGIxZTg2ODgyNjY4dHJ1ZSBpZGVudGl0eSBwcm9k/manifest"
]
}
]
},
"validityInterval": 2592001,
"vc": {
"type": [
"VerifiedCredentialExpert"
]
}
}
属性 | 类型 | 说明 |
---|---|---|
credentialType |
字符串 | 在颁发期间要求的凭据类型。 上述示例中的 TrueIdentity 。 |
contracts |
字符串(数组) | 所要求凭据的清单 URL 列表。 在上面的示例中,清单 URL 是 True Identity 的清单 |
trustedIssuers |
字符串(数组) | 所要求凭据的允许颁发者 DID 列表。 在上面的示例中,DID 是 True Identity 颁发者的 DID。 |
值
颁发期间的 Authenticator 体验
在颁发期间,Authenticator 会提示用户选择匹配的凭据。 如果用户的钱包中有多个匹配的凭据,则必须选择要出示的凭据。
配置示例用于颁发自定义凭据
要配置示例代码用于颁发和验证自定义凭据,需要:
- 租户的颁发者分散式标识符 (DID)
- 凭据类型
- 指向凭据的清单 URL
查找自定义凭据的此信息的最简单方法是转到 Azure 门户中的凭据。 选择“颁发凭据”。 然后便可以访问具有请求服务 API JSON 有效负载的文本框。 将占位符值替换为环境的信息。 颁发者的 DID 是 authority 值。
后续步骤
查看规则和显示定义参考。