如何在春季使用 OIDC 从授权服务器获取所有用户?
Posted
技术标签:
【中文标题】如何在春季使用 OIDC 从授权服务器获取所有用户?【英文标题】:How to get all users from an authorization server using OIDC in spring? 【发布时间】:2019-04-28 01:44:36 【问题描述】:我有一个使用 OIDC (oauth2) 进行身份验证的 spring-boot 应用程序,我正在尝试从授权服务器获取所有用户的列表 - 我应该如何使用 spring 来实现它?
【问题讨论】:
【参考方案1】:Spring Security OAuth2 没有用于表达用户存储库的 API。它确实有一个UserDetailsService
接口,但你会注意到它只有loadUserByUsername
方法。
如果您正在构建 OAuth 2 授权服务器,您可以查看 Spring Data 和 Spring MVC 以公开查询端点(使用 Spring Security 来保护该端点)。
如果您正在构建与第三方授权服务器通信的 OAuth 2 资源服务器或客户端,您可以查看 RestTemplate
或 WebClient
来制定您的授权服务器想要的任何专有查询,因为像 @ Ronald 说,查询用户没有 OAuth 2.0 标准。
【讨论】:
【参考方案2】:当用户登录到他的身份提供者时,他的个人信息可以通过身份令牌包含的声明来访问。或者通过接近 userinfo 端点。
没有根据 OIDC 标准从授权服务器返回所有用户的端点。
【讨论】:
以上是关于如何在春季使用 OIDC 从授权服务器获取所有用户?的主要内容,如果未能解决你的问题,请参考以下文章