Android FIDO是否必须托管AssetLink.json文件?

Android FIDO是否必须托管AssetLink.json文件?,android,google-identity,webauthn,yubico,fido,Android,Google Identity,Webauthn,Yubico,Fido,我有一个关于FIDO2的问题 小背景: 我的公司决定使用FIDO2进行用户帐户管理。所以我们创建了一个FIDO服务器包装器,它主要使用YubicoWebAuthn库 在Android端,我们使用Fido2ApiClient google play服务本机库来支持FIDO implementation 'com.google.android.gms:play-services-fido:18.1.0' 根据Fido文件, 允许用户在您的网站和Android应用程序之间无缝共享凭据非常简单 但是,

我有一个关于FIDO2的问题

小背景: 我的公司决定使用FIDO2进行用户帐户管理。所以我们创建了一个FIDO服务器包装器,它主要使用YubicoWebAuthn库 在Android端,我们使用Fido2ApiClient google play服务本机库来支持FIDO

implementation 'com.google.android.gms:play-services-fido:18.1.0'
根据Fido文件, 允许用户在您的网站和Android应用程序之间无缝共享凭据非常简单 但是,我们不使用任何网站,只在API端点(AWS-ALB)中使用FIDO服务器

如果不托管assetlinks.json文件,Android FIDO Authenticator始终返回以下错误消息

code: SECURITY_ERR
message: The incoming request cannot be validated
FIDO是否必须托管AssetLink.json文件?
是否有人在没有托管此文件的情况下取得了成功?

是的,来自google play services本机库的FIDO2API客户端需要AssetLink.json。

TL;DR:不,AssetLink是一个单独的规范,不是FIDO2的一部分

资产链接是一个单独的规范。
FIDO2不要求身份验证服务器公开
/.well-known/assetlinks.json
端点。
然而,它是由Android FIDO2 api强制执行的,因为这是一种验证您是否同时拥有应用程序和希望通过它访问的服务器的方法

进一步阐述资产链接的作用以及为什么它在Android用例中有用:
通过让您在服务器上的文件中包含用于对移动应用程序进行签名的证书指纹,Asset Link创建了一个有形的证据,证明您同时拥有服务器和客户端应用程序的签名密钥—
assetlinks.json
文件—。
如果不是这样,我可能会创建你的应用程序的恶意版本,并将你的服务器用作身份验证服务器。然后,我可能会诱骗用户使用我的应用程序注册/登录,虽然我无法看到他们存储在安全硬件上的私钥,但我可以轻松获取会话ID/令牌,并代表他们发出经过身份验证的请求。
为了防止这种情况(可能还有我不知道的其他情况),exposed by Android会在授予对相关凭据的访问权限之前检查客户端是否已被服务器授权。它执行此检查的方式是使用资产链接,但这本身就是一个规范


资产链接由谷歌管理,从网站上可以看到。规范本身可以在github上访问,并且。

您已经通过以下官方文档得到了答案,您已经让它工作了。你不需要在堆栈溢出时得到一个随机的人的肯定。您可以围绕如何在当前设置中提供
.well-known/assetlinks.json
重新构造问题。谢谢@Eugen。请阅读更新后的问题。