【发布时间】:2017-06-01 15:45:00
【问题描述】:
Google 似乎一直在对原生应用的 OAuth 交互进行现代化改造,正如最初在此处宣布的那样 https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html
并且正如他们当前的文档页面所证明的那样 https://developers.google.com/identity/protocols/OAuth2InstalledApp
我已经能够在引用的 github repo 中成功运行示例控制台应用程序。
此流程使用客户端密码和其他参数交换访问令牌的授权代码。但是,众所周知(并且如引用的文章中所述)客户端机密不能安全地存储在已安装的应用程序中。同一篇文章以下列方式陈述了这一事实
该过程会产生一个客户端 ID,在某些情况下,还会产生一个客户端密码,您可以将其嵌入应用程序的源代码中。 (在这种情况下,客户端机密显然不被视为机密。)
因此,如果此流程是已安装应用程序的推荐流程,我们是否应该不必担心保护 client_secret 并将其直接嵌入到应用程序中?如果是这样,那么这个流程是怎么回事?
此外,如示例所示,在本地生成一个随机 http 重定向 URL,该 URL 未在 Google Developer Console 的凭据页面中的任何位置注册。这与 Azure AD 不同,在 Azure AD 中,您必须在注册本机应用程序时指定重定向 uri。
【问题讨论】: