规则和显示定义参考

规则和显示定义用于定义凭据。 可以在如何自定义凭据中阅读有关它的详细信息。

rulesModel 类型

属性 类型​​ 说明
attestations idTokenAttestation 和/或 idTokenHintAttestation 和/或 verifiablePresentationAttestation 和/或 selfIssuedAttestation 定义用于收集发布在可验证凭据中的声明的证明流。
validityInterval 数字 表示凭据的有效期(以秒为单位)
vc vcType 此协定的可验证凭据类型

JSON 中的证明类型示例。 请注意,selfIssued 是单个实例,而其他实例是集合。 有关如何使用证明类型的示例,请参阅操作指南中的示例 JSON 规则定义

"attestations": {
  "idTokens": [],
  "idTokenHints": [],
  "presentations": [],
  "selfIssued": {}
}

idTokenAttestation 类型

从 Authenticator 内让用户登录时,可以使用与 OpenID Connect 兼容的提供程序返回的 ID 令牌作为输入。

属性 类型​​ 说明
mapping claimMapping(可选) 将输入声明映射到可验证凭据中的输出声明的规则
configuration 字符串 (url) 标识提供者的配置文档位置
clientId string 获取 ID 令牌时要使用的客户端 ID
redirectUri string 要在获取 ID 令牌时使用的重定向 URI;必须为 vcclient://openid/
scope string 获取 ID 令牌时要使用的范围的空格分隔列表
required 布尔值(默认为 false) 指示是否需要此证明
trustedIssuers 可选字符串(数组) 允许颁发此协定的可验证凭据的 DID 列表。 此属性仅用于 id_token_hint 可能来自另一个颁发者的特定场景

idTokenHintAttestation 类型

此流使用 ID 令牌提示,它通过请求 REST API 作为有效负载提供。 映射与 ID 令牌证明相同。

属性 类型​​ 说明
mapping claimMapping(可选) 将输入声明映射到可验证凭据中的输出声明的规则
required 布尔值(默认为 false) 指示是否需要此证明。 如果在 createPresentationRequest 有效负载中未设置所需的声明,请求服务 API 将导致调用失败。
trustedIssuers 可选字符串(数组) 允许颁发此协定的可验证凭据的 DID 列表。 此属性仅用于 id_token_hint 可能来自另一个颁发者的特定场景

verifiablePresentationAttestation 类型

希望用户提供另一个可验证凭据作为新颁发的可验证凭据的输入时。 电子钱包允许用户在颁发过程中选择可验证的凭据。

properties 类型​​ 说明
mapping claimMapping(可选) 将输入声明映射到可验证凭据中的输出声明的规则
credentialType 字符串(可选) 所需的输入凭据类型
required 布尔值(默认为 false) 指示是否需要此证明
trustedIssuers 字符串(数组) 允许颁发此协定的可验证凭据的 DID 列表。 该服务默认使用你的颁发者信息,因此无需自己提供此值。

selfIssuedAttestation 类型

当你希望用户自己输入信息时。 此类型也称为自证输入。

属性 类型​​ 说明
mapping claimMapping(可选) 将输入声明映射到可验证凭据中的输出声明的规则
required 布尔值(默认为 false) 指示是否需要此证明

claimMapping 类型

属性 类型​​ 说明
inputClaim string 输入中要使用的声明名称
outputClaim string 可验证凭据中声明的名称
indexed 布尔值(默认为 false) 指示此声明的值是否用于搜索;给定协定只能为一个 clientMapping 对象编制索引
required 布尔值(默认为 false) 指示是否需要此映射
type 字符串(可选) 声明类型

vcType 类型

属性 类型​​ 说明
type 字符串(数组) 此协定可以颁发的可验证凭据类型的列表

示例规则定义:

{
  "attestations": {
    "idTokenHints": [
      {
        "mapping": [
          {
            "outputClaim": "givenName",
            "required": false,
            "inputClaim": "given_name",
            "indexed": false
          },
          {
            "outputClaim": "familyName",
            "required": false,
            "inputClaim": "family_name",
            "indexed": false
          }
        ],
        "required": false
      }
    ]
  },
  "validityInterval": 2592000,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}

displayModel 类型

属性 类型​​ 说明
locale string 此显示的区域设置
credential displayCredential 可验证凭据的显示属性
consent displayConsent 颁发可验证凭据时的补充数据
claims displayClaims 数组 可验证凭据中包含的声明的标签

displayCredential 类型

属性 类型​​ 说明
title string 凭据的标题
issuedBy string 凭据颁发者的名称
backgroundColor 数字(十六进制) 十六进制格式凭据的背景色,例如 #FFAABB
textColor 数字(十六进制) 十六进制格式凭据的文本颜色,例如 #FFAABB
description string 要随每张凭据一起显示的补充文本
logo displayCredentialLogo 用于凭据的徽标

displayCredentialLogo 类型

属性 类型​​ 说明
uri 字符串 (url) 徽标的 URL。
description string 徽标的说明

注意

Microsoft 建议使用广受支持的图像格式(如 .PNG、.JPG 或 .BMP),以减少文件格式错误。

displayConsent 类型

属性 类型​​ 说明
title string 同意的标题
instructions string 显示同意时要使用的补充文本

displayClaims 类型

属性 类型​​ 说明
label string 显示中声明的标签
claim string 标签应用到的声明的名称。 如果使用的 JWT-VC 格式,值需要具有 vc.credentialSubject. 前缀。
type string 声明的类型
description 字符串(可选) 声明的说明

示例显示定义:

{
  "locale": "en-US",
  "card": {
    "backgroundColor": "#FFA500",
    "description": "This is your Verifiable Credential",
    "issuedBy": "Contoso",
    "textColor": "#FFFF00",
    "title": "Verifiable Credential Expert",
    "logo": {
      "description": "Default VC logo",
      "uri": "https://didcustomerplayground.z13.web.core.windows.net/VerifiedCredentialExpert_icon.png"
    }
  },
  "consent": {
    "instructions": "Please click accept to add this credentials",
    "title": "Do you want to accept the verified credential expert dentity?"
  },
  "claims": [
    {
      "claim": "vc.credentialSubject.givenName",
      "label": "Name",
      "type": "String"
    },
    {
      "claim": "vc.credentialSubject.familyName",
      "label": "Surname",
      "type": "String"
    }
  ]
}

后续步骤