将Sping Boot 应用程序配置为使用单个OAuth2授权服务器是非常简单的。我的应用程序需要能够从多个事先未知的授权服务器获取身份验证令牌。我需要找到一种方法来动态管理它们。
从我所看到的,ClientRegistrationRepository
在示例化时需要ClientRegistration
。而AuthorizedClientServiceOAuth2AuthorizedClientManager
需要ClientRegistrationRepository
和OAuth2AuthorizedClientService
。我所看到的示例假设您将一次性配置ClientRegistration
,并从那里开始构建客户端。我将需要能够添加和删除OAuth2身份验证服务器,但我事先不知道它们的详细信息。
spring-security对这个任务有用吗?我该如何组织使用动态oauth2服务器的工作?有没有更好的方法去做?
1条答案
按热度按时间vql8enpb1#
我迷惑不解:是否要添加具有客户端注册的授权服务器?
多租户(多个授权服务器)是:
iss
声明,以了解使用哪个公钥来验证令牌签名(或者甚至向哪个服务器提交令牌以进行自检,但这是一种边缘情况)此后的解决方案不是完全动态的(在属性中声明的多租户=〉需要重新启动以添加新的发布者),并且仅适用于JWT解码器。
我有支持JWT多租户的spring-boot启动库。示例there:
您可以浏览source code以了解这是如何实现的:
与