本页面解答了有关与 Google 钱包集成以提供数字身份和凭证的常见问题。
新手入门
问:新合作伙伴作为依赖方 (RP) 注册的逐步流程是什么?
答:请按照选择适合自己的学习方向中的分步指南进行操作。
问:RP 初始配置流程通常需要多长时间?
答:通常情况下,入驻流程需要 3-5 个工作日。
问:提交依赖方 (RP) 申请后,如何跟踪申请状态?
答:如果您在 5 天后仍未收到回复,请通过 wallet-identity-rp-support@google.com 与我们的支持团队联系。
问:在哪里可以找到 RP 初始配置表单和官方开发者文档?
A:
- 入驻表单: Google 钱包身份信息依赖方合作伙伴联系表单
- 开发者文档: 数字身份概览
问:我们提供的信息(例如商品名称和徽标)将如何在产品体验中使用?
答:商品名称和徽标会显示在面向用户的权限请求页面上,以便用户识别是哪个依赖方在请求其数字身份证件。产品体验中可能还会显示网址和政策链接。
问:如果我们只打算使用沙盒环境进行开发和测试,是否需要签署《服务条款》?
答:不需要,接受《服务条款》不是测试的必要步骤。
问:在哪里可以找到参考实现、示例代码或演示应用,以便开始使用?
A:
- GitHub 代码库: 身份参考实现。
- 测试网站: verifier.multipaz.org
验证者注册机构
问:什么是验证器注册机构?它是如何运作的?
答:验证方注册机构充当证书授权机构,负责注册下游客户端(最终 RP)。最终 RP 不会直接与 Google 钱包互动。
问:验证机构注册商及其下游客户的具体入驻流程是怎样的?
答:请参阅验证机构注册商指南中的步骤。
问:它与直接 RP 集成有何不同?
答:验证方注册机构负责管理其客户的信任关系,并代表客户处理与 Google 钱包的集成,而直接 RP 则自行管理与 Google 的配置。
问:在验证器注册机构中,谁会被列入 Google 配置的许可名单:验证器注册机构、最终 RP,还是两者?
答:Google 会将验证者注册机构的根 CA 证书列入许可清单。然后,验证器注册机构会为每个下游最终 RP 颁发新的叶证书。
问:数据如何在最终 RP、验证方注册机构和 Google 钱包之间流动?
答:验证方注册机构会代表最终 RP 向 Google 钱包发送 API 请求。Google 钱包会将加密的凭据数据返回给验证方注册机构,后者随后会处理这些数据并将最终信号发送给最终 RP。
问:对于白标解决方案,是否需要在用户同意流程中显示验证方注册机构的名称,还是只需显示最终 RP 的名称?
答:不可以。验证者注册机构可以选择不显示其详细信息。
问:根 CA 和 RP 证书允许使用哪些密钥类型和曲线?
A: 证书应使用 P-256 / ECDSA 生成。
问:我们能否在根 CA 和 RP 叶证书之间使用中间签名者证书?
答:会。您可以安全地存储长期根证书(例如,在 HSM 中),以便不定期对操作中间证书进行签名。然后,这些中间证书可用于对最终 RP 叶证书进行签名,以便在发生泄露时更轻松地进行轮替,而不会影响根证书。
问:证书的生命周期要求是怎样的?
答:根 CA 证书的有效期为 10 年,这完全可以接受。最终 RP 叶证书通常应遵循约 1 年的续订时间表,以确保在出现问题时能够高效轮替。
问:我们需要为每个依赖方 (RP) 客户管理单独的叶证书吗?
答:会。在初始发布期间,聚合器必须为每个下游 RP 管理单独的证书。这样可以实现每个 RP 的显示配置和准确的滥用行为跟踪。虽然这会增加大规模运营的开销,但我们计划在初始发布后,探索其他可能的替代方案(例如使用 RP 元数据哈希)。
问:合作伙伴可以同时拥有多份有效证书吗?
答:支持。该配置支持每个 RP 或聚合器拥有任意数量的有效证书,这对于以各种商家名称运营的合作伙伴非常有用。
问:标识名(主题)应采用何种格式?
答:每个合作伙伴的专有名称必须是全局唯一的。此 ID 是一个静态标识符,Google 会用它来监控传入的合作伙伴请求,并确保生态系统的可信度。
问:网域绑定如何运作?是否需要将源站嵌入到证书中?
答:域名无需直接嵌入到证书本身中。而是使用 API 调用中的预期来源参数执行网域验证。此外,多个网域可以无缝关联到单个证书。对于未签名的请求,系统会使用网域或应用包名称以及指纹来执行绑定。
问:对于白标体验,是否可以从验证界面中省略集合商家详细信息?
答:是的,验证器元数据中的聚合器信息(例如名称、徽标、网址和隐私权政策)完全是可选的。这样可以实现完全白标的解决方案,其中仅向用户显示最终 RP 详细信息。
问:我们需要提供什么才能开始在沙盒环境中进行测试?
答:从技术角度来看,您只需提供沙盒根证书。沙盒环境旨在完全模拟生产环境。
问:验证方注册机构(聚合器)与直接 RP 的入驻流程有何不同?
答:聚合机构的流程略有不同。在执行特定的《验证者注册机构服务条款》后,注册流程分为两部分:首先是用于确立验证者注册机构身份的主要表单,然后是为每个入驻的 RP 填写的精简表单。每次提交 RP 通常都需要提供集成过程的录像,审核流程一般需要 2-3 个工作日。
问:我们能否为打算充当中介或向其他实体转售验证服务的客户提供新手入门服务?
答:不会。Google 目前的模型和偏好是直接与验证者注册机构(聚合器)及其直接最终 RP 合作,而不是支持嵌套的转销商或中介模型。
技术集成和 API
问:请求的底层协议是什么?支持哪些版本?
答:主要协议是 OpenID for Verifiable Presentations (OpenID4VP) 1.0 版。
问:Google 支持哪些 ISO 18013-7 附录(例如附录 B、C、D)来呈现 mDL?
答:Google 支持附录 D [目前为草案](使用 DC API 的 OpenID4VP)。
问:如何正确构建 API 请求,以便在单个用户展示中请求多个凭证?
答:应在同一 JSON 请求中的单个 dcql 查询对象内请求这两种凭证类型。
问:该 API 是否允许在不列出所有可能凭证类型的情况下请求通用凭证?
答:不可以。
问:该 API 如何处理年龄验证?我们可以请求确切的出生日期,还是只能请求“超过 X 岁”信号?
答:两者都支持。您可以请求 birth_date、age_in_years 或可保护隐私的“超过 X”信号。零知识证明 (ZKP) 也可用于 true/false 信号。
问:我们的 PKI 基础设施有哪些要求?
答:RP 需要 PKI 才能对请求进行签名。验证者注册商充当自己的 CA。
问:我们可以使用自己现有的证书吗?还是需要获取由 Google 签名的新证书?
答:RP 需要由 Google 或验证者注册机构签署的新证书。对于验证者注册机构,如果您按照文档中的“建立信任”步骤操作,Google 将信任您的根证书。
问:对于网站和 Android 应用,建议采用哪种集成策略?
答:整个请求应在服务器端生成。在 Android 上,使用 Credman API;在 Web 上,使用 Digital Credentials (DC) API。
问:开发者可以使用哪些调试、日志记录和可观测性工具?
答:合作伙伴可以使用 wallet-identity-rp-support@google.com 支持别名。不提供特定的日志记录或可观测性工具。
凭证和数据
问:各国家和地区支持哪些数字身份证件、签发机构和凭证?
答:请点击此处查看受支持的国家/地区:支持的签发机构和证书。
问:你们计划何时支持新国家/地区的凭证?
答:我们正在积极添加新的地区;请查看支持的发卡机构页面,了解最新动态。
问:当凭证由签发方更新时,最终用户会收到通知吗?
答:是的,用户会收到通知,并且系统会自动应用更新。
测试和环境
问:如何访问沙盒环境以测试完整的端到端流程?
答:沙盒位于:沙盒模式。
问:如果合作伙伴不在正式发布地区,如何将其添加到许可清单中进行测试?
答:请将测试钱包的 Gmail ID 通过电子邮件发送至 wallet-identity-rp-support@google.com。
问:如何启用测试网站或应用进行演示,让任何拥有生产凭证的人都能展示它?
答:合作伙伴必须完成标准 RP 流程,包括沙盒视频演示。
用户体验 (UX)
问:如果用户在发起验证流程时没有数字身份证件或未安装 Google 钱包应用,会获得怎样的用户体验?
答:如果用户未安装应用,系统会将其引导至 Play 商店。没有 ID 的用户可以使用半屏界面在流程中创建一个。
问:我们能否在向用户显示验证选项之前,通过程序化方式检测用户的 Google 钱包中是否有数字身份证件?
答:不能,该 API 必须由用户调用,以保护隐私。
问:我们能否要求用户先使用生物识别技术解锁设备,然后再出示凭证?
答:默认情况下,系统会要求进行用户身份验证(生物识别、PIN 码或图案),并且无法停用此要求。
问:是否可以自定义用户权限请求页面上所请求属性的顺序?
答:不能,Google 钱包会按字母顺序重新排列。
安全与合规性
问:我们的用例涉及与第三方重新分享用户数据。《服务条款》是否允许这样做?
答:是的,可能会有一些限制,如需了解详情,请参阅我们的服务条款。
问:有哪些关于数字身份解决方案安全性、可靠性和无障碍性的文档可供我们用于合规目的?
答:合作伙伴可以参考 Trail of Bits 安全审核。
高级功能和路线图
问:零知识证明 (ZKP) 在可保护隐私的年龄验证方面有哪些功能?
答:零知识证明 (ZKP) 是一种加密方法,允许个人(证明者)向验证者证明他们拥有特定的身份信息或符合特定标准(例如,年满 18 周岁、持有有效凭证),而无需透露实际的基础数据本身。
问:如何处理不同版本的 ZK 电路?
答:RP 必须实现 ZK 验证器服务,才能请求最新的可用线路。
问:凭据共享和管理如何在多个设备(例如手机和穿戴式设备)之间运作?
A: 凭据会预配到单个设备,无法共享。
其他
问:如果护照被撤销,Google 会如何处理身份证件撤销?
答:用户可以从 Google 账号设置中删除卡券;如果设备丢失,可以上报以撤销凭证。
问:如何处理 mDL 撤销?是实时的吗?
答:可以由用户触发,也可以由签发机构(DMV)推送。如果设备在线,则为实时;否则,短期安全对象 (MSO) 将过期。
问:RP 的密钥轮替政策是什么?
答:建议每年轮换一次。
问:Digital Credentials API 支持的最低 Android 版本是什么?
答:Android 9(API 级别 28)及更高版本。
问:支持 Digital Credentials API 的最低 Chrome 版本是什么?
答:Chrome 128 及更高版本。
问:哪些浏览器支持 Digital Credentials API?
答:您可以在以下网址中找到浏览器支持详情:https://digitalcredentials.dev/ecosystem-support
问:当新国家/地区推出时,哪些用户可以添加身份证件?
答:访问权限取决于用户在 Play 商店中的国家/地区设置。
问:Digital Credentials API 是否适用于 iOS?
答:是的,该 API 可在 Safari 等受支持的浏览器中使用。不过,Apple 不支持 OpenID4VP。