了解client_id和client_secret

问题描述 投票:0回答:3

OAUTH 有点初学者,想问问我是否理解正确。我使用 OWIN 和 C#,并设置以下场景:

  1. 用户向我的令牌端点发出请求,传递带有 grant_type 密码的用户名/密码。如果凭据有效,那么我将创建一个 JWT。

  2. 用户取回 JWT,然后客户端使用该令牌来处理所有请求

  3. 任何需要授权的请求,我都会使用令牌的声明来确保允许用户发出此请求。

那么 client_id 和 client_secret 是从哪里来的呢?这是否只是一个额外的安全层,说“在您获得令牌之前,您需要向我传递另一组凭据(ID/秘密),并且仅当那些有效时,除了您的用户名/提供了密码,你能取回 JWT 吗?

想了解这两个人的关系 - 非常感谢!

oauth oauth-2.0 owin
3个回答
16
投票

密码流程中不使用 client_id 和 client_secret。但是,您可能知道,OAuth2 还有其他流程,适合其他场景。

即:

  • 在对用户服务器端进行身份验证的 Web 应用程序中使用的授权代码流程。 client_id 用于初始重定向,client_secret 用于应用程序将一次性代码交换为令牌的最后一步。

  • 客户端凭证流程用于验证应用程序而不是个人用户

所有各种流程的简明参考:https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified


8
投票

有两方需要进行身份验证:应用程序和用户。

应用程序使用 ID 和密钥进行身份验证,可能由回调 URL 进行备份,这应确保令牌的接收者是正确的。

用户通过 OAuth 提供商进行身份验证。它可以使用用户名/密码,或者 OAuth 提供商认为必要的任何内容。该令牌用于允许应用程序在不知道用户名和密码的情况下获取用户数据。


0
投票

这都是些什么废话!我只想回到 Windows 10 的经典外观!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.