主要观点:随着数字身份生态系统的发展,以安全、隐私保护和互操作的方式发行和验证数字凭证变得重要,可验证凭证(VCs)提供标准化方式,选择性披露 JSON Web 令牌(SD-JWTs)可让持有者共享凭证部分内容同时确保真实性。
关键信息:
- 利用 SD-JWT 格式发行和呈现可验证凭证,后端用 Spring Boot 微服务,前端用 Kotlin 编写的 Android 应用作为钱包。
- 集成 OpenID for Verifiable Credential Issuance(OIDC4VCI)和 OpenID for Verifiable Presentations(OIDC4VP)协议,扩展 OpenID Connect 框架实现安全凭证发行和验证。
- 凭证请求时通过 JWT 证明钱包拥有密钥,SD-JWT 格式可让用户精细控制共享信息,实现隐私保护数据共享。
- 呈现可验证凭证时,通过验证 JWT 等步骤确保凭证真实性和完整性,生产级验证器还需验证 Presentation Definition。
重要细节: - 钱包应用(WalletApp)用 Kotlin 编写,包含 Authlete 的 SD-JWT 库。
- 授权服务器用 Spring Authorization Server,配置为授权码流和 PKCE。
- 发行者是 Spring Boot 微服务,作为 OAuth 2.0 资源服务器,委托授权给授权服务器,利用 Authlete 的 SD-JWT 库。
- 认证源在发行者代码库中,有用户属性内存存储库。
- 验证者是 Spring Boot 微服务,生成 Presentation Definition 等,利用 Authlete 的 SD-JWT 库进行验证。
完整代码在 GitHub 上:后端spring-boot-vci-vp,Android 钱包android-vci-vp,README 中有运行演示等信息,还有 YouTube 视频展示整个流程https://youtube.com/shorts/cxIgyTR8s6w。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。