java - Spring安全OAuth 2

标签 java spring oauth-2.0 spring-security-oauth2

我已经有一个完全使用 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 服务器?

最佳答案

clientIDclientSecret 是想要授权 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/

相关文章:

java - JdbcTemplate — 记录数据源连接 url

Spring 事件与 ActiveMQ

oauth-2.0 - LinkedIn 的 OAuth 错误 : "A confirm Email Address is Required to proceed"

oauth-2.0 - 使用 MSAL 库获取访问 token 时随机获取请求超时 "confidentialClientApplication.AcquireTokenForClient"

代码片段的 Java 泛型说明

java - 在字节数组中捕获 <CR><LF>

java - 将 JSONArray 转换为字符串数组

spring - 执行代码时如何阻止 Spring 批处理计划作业在第一次运行?

android - Google http/oauth2 api 总是为第二个 HTTPRequest 抛出 EOFException

java - 创建一个实现一些自己的方法的接口(interface)