关于存储数字凭据

借助 Credential Manager Holder API,您的 Android 持有者(也称为“钱包”)应用可以管理数字凭证并将其出示给验证者。

图片:Credential Manager 中的数字凭证界面
图 1. 数字凭证选择器界面。

凭证格式

凭证可以采用不同的凭证格式存储在凭证容器应用中。这些格式是关于如何表示凭证的规范,每种格式都包含以下凭证信息:

  • 类型:类别,例如大学学位或驾照。
  • 属性:名字和姓氏等属性。
  • 编码:凭证的结构化方式,例如 SD-JWT 或 mdoc

  • 有效性:通过加密方式验证凭证真实性的方法。

每种凭证格式的编码和验证方式略有不同,但功能相同。

注册表支持两种格式:

使用 Credential Manager 时,验证方可以针对 SD-JWT 和 mdoc 发出 OpenID4VP 请求。具体选择因用例和行业选择而异。

凭据元数据注册

Credential Manager 不会直接存储持有者的凭证,而是存储凭证的元数据。持有者应用必须先使用 RegistryManager 向 Credential Manager 注册凭证元数据。此注册流程会创建注册表记录,该记录有两个主要用途:

  • 匹配:已注册的凭证元数据用于与未来的验证方请求进行匹配。
  • 显示:在凭据选择器界面上向用户显示自定义界面元素。

使用 OpenId4VpRegistry 类注册数字凭证,因为它同时支持 mdoc 和 SD-JWT 凭证格式。验证方将发送 OpenID4VP 请求来请求这些凭证。

凭证签发方法

凭证签发可通过以下两种方式触发:

  • 发卡机构发起的流程:用户通过发卡机构应用或网站触发 VDC 签发请求。例如,网站可能会向用户提供“将护照添加到钱包”选项。签发方调用 Credential Manager 签发 API,以发出 OpenID4VCI 凭证邀约请求。如需处理此类请求,持有者必须先与 Credential Manager 集成,以注册其元数据。Credential Manager 将显示相关选项供用户选择。用户选择持有者选项后,系统会调用持有者应用,该应用可以继续执行完成签发所需的步骤。
  • 持卡人发起的流程:用户请求从其持卡人应用中添加 VDC。例如,持有者可能会提供“添加护照”按钮。 在这种情况下,持有者会维护其支持的签发者列表和元数据。它无需与 Android Credential Manager 集成即可完成此功能。