安卓SafetyNet API在使用API密钥限制时失败

8
当为API密钥设置限制时,认证API将停止工作:OnFailureListener被触发,状态码为CANCELLED(16)。
这些限制是Android包名称和证书签名(SHA-1)。

enter image description here

SafetyNet认证API是否支持受限制的API密钥?

注意:具有附加限制的相同API密钥可在Google Maps API中正常工作。

更新: 在运行Google Play服务v13.0及以上版本的设备上,SafetyNet Attestation API还支持应用程序限制的API密钥。 https://developer.android.com/training/safetynet/attestation


@abielita,双重检查了包名并创建了新的包名-仍然无法工作。此外,该密钥在Maps API中运行良好。 - Mickey Tin
一个快速的问题,你启用了这项服务吗? - TheLittleNaruto
1
@TheLittleNaruto,是的,服务已启用,一切都能正常运作而没有任何限制。 - Mickey Tin
1
@YvetteColomb,我使用的限制是软件包名称和用于签署apk的证书哈希值,我没有设置API限制。 - Mickey Tin
只是猜测,它可以在发布版上运行但不能在调试版上运行? - rekire
显示剩余5条评论
1个回答

4
我联系了一位在谷歌的朋友,他与他们的团队联系。目前不支持此功能 - 没有办法使用SHA1指纹限制此API。它已经在他们的内部路线图上考虑到了这一点,但现在还不能工作。
如果您访问他们的配额请求页面,您会发现他们明确表示不要使用任何形式的API密钥限制。

我在这里回复主要是因为我们今天在应用程序中遇到了相同的问题。 - Carl Anderson
嗨,卡尔,感谢你的见解,赏金归你了 :) 我没有注意到他们说不要使用限制。看起来我们需要找到一些方法来保护我们的 API 密钥不被泄露。 - Mickey Tin
3
在我看来,如果存在这样的内容,他们应该将其添加到文件中,而不是在配额请求页面上。我的意思是除非需要更多请求,否则没有人会去检查它。 - TheLittleNaruto
这还是现状吗? - neteinstein
我不确定并且不再使用Safetynet开发应用程序。 - Carl Anderson
已为SafetyNet API密钥启用API密钥限制 @MickeyTin - Ishant Sagar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接