gpt4 book ai didi

oauth-2.0 - 谷歌的 OAuth 2.0 用于已安装的应用程序和客户端密码不是 secret

转载 作者:行者123 更新时间:2023-12-01 12:20:43 25 4
gpt4 key购买 nike

正如最初在此处宣布的那样,Google 似乎一直在对 native 应用程序的 OAuth 交互进行现代化改造
https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

正如他们当前的文档页面所证明的那样
https://developers.google.com/identity/protocols/OAuth2InstalledApp

我已经能够在引用的 github 存储库中成功运行示例控制台应用程序。

此流程使用客户端密码和其他参数交换访问 token 的授权代码。但是,众所周知(并且如引用的文章中所述)客户端 secret 不能安全地存储在已安装的应用程序中。同一篇文章以下列方式陈述了这一事实

The process results in a client ID and, in some cases, a client secret, which you embed in the source code of your application. (In this context, the client secret is obviously not treated as a secret.)



因此,如果此流程是已安装应用程序的推荐流程,我们是否应该不必担心保护 client_secret 并将其直接嵌入到应用程序中?如果是这样,那么这个流程是怎么回事呢?

此外,如示例所示,在本地生成一个随机 http 重定向 url,该 URL 未在 Google Developer Console 的凭据页面中的任何位置注册。这与 Azure AD 不同,在 Azure AD 中,您必须在注册 native 应用程序时指定重定向 uri。

最佳答案

Google 授权服务器的行为取决于您注册的客户端类型。

奇怪的是桌面和电视客户端需要“客户端密码”,而不是 iOS 和 Android,但是对于所有 4 种原生应用程序类型,服务器将客户端视为非 secret ,并且“客户端密码”值有效客户 ID 的扩展。这与 Web 客户端不同,后者假定客户端 secret 性得到维护,因此对于增量身份验证等操作可以区别对待。

关于重定向 URI 的注册,这也取决于客户端类型。对于某些类型,例如 Web,需要手动注册。对于桌面等其他类型,重定向 URI 是预先注册的(在桌面的情况下,http://127.0.0.1:*/*)。

关于oauth-2.0 - 谷歌的 OAuth 2.0 用于已安装的应用程序和客户端密码不是 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44312000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com