oauth - 了解 client_id 和 client_secret

标签 oauth oauth-2.0 owin

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

  • 用户向我的 token 端点发出请求,传入用户名/密码和密码 grant_type。如果凭据有效,那么我创建一个 JWT。
  • 用户取回 JWT,然后客户端使用该 token 处理所有请求
  • 任何需要授权的请求我都使用 token 的声明来确保允许用户发出此请求。

  • 那么 client_id 和 client_secret 是从哪里来的呢?这只是一个额外的安全层,说“在您获得 token 之前,您需要向我传递另一组凭据(id/secret),并且只有当这些凭据有效时,除了您提供的用户名/密码,可以你拿回智威汤逊?

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

    最佳答案

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

    即:

  • 授权码 用于对用户服务器端进行身份验证的 Web 应用程序中的流。 client_id 用于初始重定向,client_secret 用于应用程序将一次性代码交换为 token 的最后一步。
  • 客户端凭据 用于验证应用程序而不是单个用户的流

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

    关于oauth - 了解 client_id 和 client_secret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593038/

    相关文章:

    c# - 为什么我得到 "Cannot resolve symbol ' CreatePerOwinContext'”?

    c# - 同步 OWIN Cookie 过期(滑动)和 session 超时

    oauth - 刷新的 OAuth2 token 具有无效签名 (Azure AD OAuth2)

    php - 未发送 Google YouTube API 刷新 token

    asp.net - (ASP.Net) google oauth2 在哈希后返回 token 而不是在查询字符串中

    python - 使用 webapp2 session 的 Google Cloud Endpoints 身份验证

    azure - Microsoft Azure OAuth 客户端凭据 token 获得 "AuthorizationFailed"响应

    c# - 如何防止 ASP.NET Identity 外部登录在 url 末尾添加#?

    oauth - 使用 Azure AD OAuth 进行 Grafana 角色分配

    javascript - 在不使用 Google 帐户登录的情况下使用 Google Picker(使用 OAuth)