Passkey
Passkey 通过 SDK 门户启用。Android 集成无需任何代码改动——激活完全由平台端处理。
Passkey 目前仅适用于 Android。iOS SDK 不支持此功能。
Android 上的 Passkey 使用 Digital Asset Links 协议,在客户端的原生应用程序与 Unico 的 Web 域之间建立可验证的安全关联。根据 Android 操作系统的设计,此链接是 Google 移动应用程序中使用 passkey 进行身份验证的必要条件。
在为 passkey 生成密钥对之前,Android 验证器会将服务器响应中存在的 Relying Party ID(RP ID)与 Digital Asset Links 文件中指定的域名进行核对。若此验证未通过,Passkey 将无法正常工作。
什么是 SHA-256,为什么需要它?
SHA-256 指纹是从应用程序签名证书生成的唯一哈希值,用于标识应用程序的真实性和完整性。
此证书对应于在 Google Play 商店分发前用于签署 APK/AAB 的密钥。需要将此指纹注册到由 Unico 托管、路径为 /.well-known/assetlinks.json 的 assetlinks.json 文件中。该文件完全由 Unico 管理,只能通过提交支持工单进行更新。
该文件必须包含两个特定权限:
delegate_permission/common.handle_all_urls— 用于 Android App Linksdelegate_permission/common.get_login_creds— 用于在网站和 Android 应用程序之间共享凭据
……以及客户端的包名和 SHA-256 指纹。
SHA-256 必须在两个地方注册:公开的 assetlinks.json 文件和服务器配置(预期来源)。请为所有正在使用的签名配置注册指纹——调试版、发布版以及任何 product flavor——因为每种配置会生成不同的指纹。
可以使用 Java Development Kit (JDK) 的 keytool 工具提取 SHA-256 指纹,或直接在 Google Play 控制台的 App Signing 部分(位于 Setup > App integrity 下)查找。
keytool -list -v -keystore <your-keystore.jks> -alias <key-alias>
在任何 passkey 操作成功执行之前,必须满足以下条件:
- 应用程序的包名和 SHA-256 指纹已在 Unico 的
assetlinks.json文件中注册(提交支持工单以注册或更新指纹) - 应用程序的 SHA-256 指纹已在服务器配置(预期来源)中注册
- 所有正在使用的签名配置(调试版、发布版、product flavor)的指纹均已注册