这个问题几乎与AppLinks assetlinks.json 似乎未用于验证 https://stackoverflow.com/questions/51327174/applinks-assetlinks-json-appears-not-to-be-used-for-validation
我正在 Android 上实现 Oauth2 应用程序。我想要进行 SSO(单点登录),并且我担心 AppLink 是否会保护授权代码。
本机应用程序通过浏览器发起授权请求,然后接收包含授权码的授权响应。根据RFC6749#section-4.1.2 https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2,代码在 URL 中传递:
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
授权代码是一条敏感信息,因为它允许客户端获取访问令牌和刷新令牌,然后访问受保护的资源。
为了保护该代码,本机应用程序必须实现 https 方案重定向(RFC8252#section-7.2 https://www.rfc-editor.org/rfc/rfc8252#section-7.2 & 第 8.1 节 https://www.rfc-editor.org/rfc/rfc8252#section-8.1)。在 Android 上,必须使用 assetlinks.json 文件来完成
但根据相关问题链接在顶部 https://stackoverflow.com/questions/51327174/applinks-assetlinks-json-appears-not-to-be-used-for-validation,Android 上的应用程序链接似乎不是 100% 安全,因为操作系统可能不会验证 https 方案。
在这种情况下,我们应该如何实现 Oauth2 授权代码挂钩?
EDIT
根据 @benjamin anwser 的说法,AppLink 并不是为了安全。但是,相关的威胁用例如下:安装了恶意应用程序并使用“SSO Cookie”来获取Auth Code
并将其交换为AT+RT
。在我看来,这个过程中没有任何东西可以阻止这种情况:如果 applink 不是为了安全,授权服务器如何知道这个应用程序是恶意应用程序?
注意:SSO-Cookie 是指使用自定义选项卡 https://github.com/openid/AppAuth-Android在 Android 上进行 SSO。