【发布时间】:2019-12-05 21:50:09
【问题描述】:
我正在使用 Spring Boot 微服务配置 Keycloak SSO。我希望多个 keycloak 客户端访问 spring boot 服务。如果在 Spring Boot 应用程序pom.xml 中使用 Keycloak 适配器,则所需的属性仅支持一个客户端和密钥。 spring boot app运行时如何添加多个客户端?
我在pom.xml中使用了以下适配器
<dependency>
<groupId>org.keycloak.bom</groupId>
<artifactId>keycloak-adapter-bom</artifactId>
<version>5.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
以下配置在application.properties
keycloak.auth-server-url=http://localhost:9080/auth
keycloak.realm=test
keycloak.ssl-required=external
keycloak.resource=rest-api
keycloak.credentials.secret=62s4376d-9b45-4aa3-abcb-1abdefc4fab88
keycloak.use-resource-role-mappings = true
keycloak.security-constraints[0].authRoles[0]=rest-api
keycloak.security-constraints[0].securityCollections[0].patterns[0]=/api/*
以上属性只支持一种客户端配置,只允许客户端rest-api生成的token添加到application.properties中。
我想在 Keycloak 中动态创建客户端,并希望 spring-boot 应用程序允许所有客户端生成令牌。
动态客户端注册可用于 spring boot oAuth2 配置,但找不到任何在 spring boot 应用程序中配置 keycloak 多个客户端的示例
如果有人解决了类似的需求并愿意分享配置或示例,将会很有帮助。
【问题讨论】:
-
你好@SudoCoder 你找到解决方案了吗?我有同样的问题
-
@DrQuestion 请参考medium.com/@bcarunmail/… 我使用了本文中解释的集成架构。希望这会有所帮助。
-
@SudoCoder 我不确定这篇文章如何帮助您实现您的要求。我想在我的应用程序中做同样的事情。你能解释一下吗
-
@pvpkiran 对此没有简单的解决方案,我通过将zuul路由器放在前面并在zuul级别对用户进行身份验证来实现这一点。我关注了这个medium.com/@bcarunmail/…。谢谢
标签: java spring-boot single-sign-on keycloak