【问题标题】:Difference between client_id and client_secret OAuth2 &OAuth flows typesclient_id 和 client_secret OAuth2 &OAuth 流类型之间的区别
【发布时间】:2016-03-17 10:15:25
【问题描述】:

我正在研究 OAuth2。很多事情对我来说都很清楚,但我有 2 个问题。

问题 1、client_id 和 client_secret

使用 OAuth,可以使用 client_id 和 client_secret 来识别客户端。 但是我找不到这2个的区别。我只发现client_id是public,client_secret是private。

我认为它是这样工作的,但我不确定。 *当有一个名为“GreatApp”的应用程序将从 OAuth2 API 获取数据时。它通过 API 注册并获得 2 个 id 的一个 client_id,这对于 GreatApp 的每个单独安装都是相同的。并且他们获得了对于 GreatApp 的每个单独安装都是唯一的 client_secret。

这意味着您可以通过 client_id 识别连接到 API 的应用程序,并且您可以通过 client_secret 识别单个手机或平板电脑。

这是对的还是我错了?

第二个问题:不同类型的流程

OAuth2 使用的流不止一种。我阅读了很多关于这方面的内容,并在 YouTube 上观看了一些视频。他们解释了 2 或 3 种,但没有清楚地说明每种流程的名称。我用谷歌搜索了很多,但我找不到关于存在哪些类型的流以及在什么情况下应该使用哪些流的明确解释。 I found this documentation but this is Oracle-specific I think.**

是否有人可以向我解释流程以及我应该何时使用哪个流程?

【问题讨论】:

    标签: api security oauth-2.0


    【解决方案1】:

    客户端 ID 和机密用于机密客户端,即可以保密的客户端,例如 Web 服务器上的 Web 应用程序。它们通常不用于注册移动应用等单个实例。

    当我在this answer 中描述时使用哪个授权流程。高温

    【讨论】:

    • 我不明白您所说的“那些可以保密的东西,例如存在于 Web 服务器上的 Web 应用程序”是什么意思。感谢您的流量,我没有找到这个。这个答案是 Oauth 特定的还是这个 json Web 令牌特定的?我认为 Oauth 有不同的流程,而 JWT 是一种没有流程的令牌数据格式?
    • 这意味着您不能将秘密存储在移动应用程序或 JavaScript 应用程序上,并且不让用户知道。如果您丢失了客户端 ID 和密码,任何应用都可以作为您的应用进行身份验证。 OAuth 是一种身份验证框架,但通常使用 JWT 作为令牌格式。
    • 啊好吧,现在我明白了。通常,您在最终用户无法反编译或无法访问的地方仅使用客户端 ID 和机密。谢谢。
    • 啊好吧,现在我明白了。通常,您在最终用户无法反编译或无法访问的地方仅使用客户端 ID 和机密。但现在我仍然不明白为什么你需要 2 个 ID?当你总是需要为公众隐藏两个 id 时,为什么只有一个秘密是不够的。
    • 您应该将客户端 ID 和密码视为应用程序的用户名和密码。客户 ID 不是秘密。
    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2017-10-20
    • 2017-04-27
    • 1970-01-01
    • 2021-05-29
    • 2016-04-08
    • 2016-02-10
    相关资源
    最近更新 更多