OAUTH的一些初学者,想问一下我是否理解正确。我正在使用OWIN和C#,并设置了以下情况:
用户向我的令牌终结点发出请求,并传入用户名/密码和密码的Grant_type。如果凭据有效,那么我将创建一个JWT。
用户获取一个JWT,然后客户端使用该令牌向前处理所有请求
任何需要授权的请求,我都会使用令牌的声明,以确保允许用户提出此请求。
那么,client_id和client_secret在哪里呢?这是否只是一个额外的安全措施,例如“在您甚至可以获得令牌之前,您需要向我传递另一组凭据(id /秘密),并且只有在这些凭据有效的情况下,才能提供您的用户名/密码。你回来的智威汤逊?
想了解两者之间的关系-非常感谢!
最佳答案
密码流中未使用client_id和client_secret。但是,您可能已经知道,OAuth2具有其他流程,适用于其他情况。
即:
用于验证用户服务器端的Web应用程序中使用的授权代码流。在初始重定向中使用client_id,在最后一步中使用client_secret,在该步骤中,应用程序将一次性代码交换为令牌。
用于认证应用程序而非个人用户的客户端凭证流
所有各种流程的简要参考:https://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified