我已经有一个完全使用 Spring Oauth 2 ( https://github.com/elohalili/OAuth ) 的示例,我对其进行了一些定制,但我真的无法理解一件事:
在此示例中,要使用资源服务,我应该拥有来自 OAuth 服务器的 token ,因此它将用户重定向到该登录页面,凭据存储在数据库中,但不存储 OAuth 的客户端 ID 和客户端 key (acme : acmesecret);
而且在客户端中,唯一传递的客户端 ID 和客户端 key 是 (acme : acmesecret),因此所有将登录 OAuth 服务器的客户端都将使用相同的客户端 ID 和 key 进行记录,这是错误的!
我的问题是如何以动态方式管理客户端 ID 和 secret ,以便任何登录的用户都将使用自己的凭据进行登录? 客户端如何知道用户的客户端 ID 和 key 并将其传递给 OAuth 服务器?
最佳答案
clientID
和 clientSecret
是想要授权 token 的应用程序的凭据,而不是用户和密码的凭据。
我对 OAuth2 ( https://oauth.net/2/ ) 不太了解,但我知道在 OIDC ( http://openid.net/connect/ ) 中可以动态注册新客户端。客户端是应用程序,而不是用户,例如
人员(使用用户名:密码)-> Android 应用/IOS 应用(客户端 clientId:clientSecret)-> 资源服务器
关于java - Spring安全OAuth 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40526007/