Tom*_*Tom 4 oauth-2.0 google-oauth
正如最初在这里宣布的那样,谷歌似乎一直在为原生应用程序实现 OAuth 交互的现代化 https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html
并且正如他们当前的文档页面所证明的那样 https://developers.google.com/identity/protocols/OAuth2InstalledApp
我已经能够在引用的 github 存储库中成功运行示例控制台应用程序。
此流程使用客户端密码和其他参数交换访问令牌的授权代码。但是,众所周知(并且如参考文章中所述)客户端机密无法安全地存储在已安装的应用程序中。同一篇文章以下列方式陈述了这一事实
该过程会生成一个客户端 ID,在某些情况下还会生成一个客户端机密,您将其嵌入到应用程序的源代码中。(在这种情况下,客户端机密显然不被视为机密。)
因此,如果此流程是已安装应用程序的推荐流程,我们是否应该不必担心保护 client_secret 并将其嵌入到应用程序中?如果是这样,那么这个流程是怎么做到的?
此外,如示例所示,随机的 http 重定向 url 是在本地生成的,该 URL 未在 Google Developer Console 的 Credentials 页面中的任何位置注册。这与 Azure AD 不同,在 Azure AD 中,您必须在注册本机应用程序时具体说明重定向 uri。
Google 授权服务器的行为取决于您注册的客户端类型。
奇怪的是,桌面和电视客户端需要“客户端机密”,但 iOS 和 Android 不需要,但是对于所有 4 种本机应用程序类型,服务器将客户端视为非机密,并且“客户端机密”值有效客户端 ID 的扩展。这与 Web 客户端相反,在 Web 客户端中,假设客户端机密性得到维护,因此对于增量身份验证等操作,它们可以被不同地对待。
关于重定向 URI 的注册,这也受客户端类型的限制。对于某些类型(如 Web),需要手动注册。对于桌面等其他类型,重定向 URI 是预先注册的(在桌面的情况下,http://127.0.0.1:*/*)。
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |