借助 Credential Manager Holder API,您的 Android 持有者(也称为“钱包”)应用可以管理数字凭证并将其出示给验证者。
凭证格式
凭证可以采用不同的凭证格式存储在凭证容器应用中。这些格式是关于如何表示凭证的规范,每种格式都包含以下凭证信息:
- 类型:类别,例如大学学位或驾照。
- 属性:名字和姓氏等属性。
编码:凭证的结构化方式,例如 SD-JWT 或 mdoc
有效性:通过加密方式验证凭证真实性的方法。
每种凭证格式的编码和验证方式略有不同,但功能相同。
注册表支持两种格式:
- SD-JWT:符合基于 IETF SD-JWT 的可验证凭据 (SD-JWT VC) 规范。
- 移动证件或 mdoc:符合 ISO/IEC 18013-5:2021 规范。
使用 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 集成即可完成此功能。