当前位置: 首页 > 知识库问答 >
问题:

如何在spring-boot应用程序中配置多个Keycloak sso客户端?

杨彦君
2023-03-14

我正在用spring boot微服务配置Keycloak SSO。我希望多个keycloak客户端访问Spring Boot服务。如果在Spring Boot应用程序pom.xml中使用Keycloak适配器,则required属性只支持一个客户机和secret。如何在运行时在spring boot app中添加多个客户端?

我在pom.xml中使用了以下适配器

maven prettyprint-override"><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/*

动态客户机注册可用于spring boot oAuth2配置,但找不到在spring boot应用程序中配置keycloak多个客户机的任何示例

这将是有帮助的,如果有人已经解决了类似的需求,并希望分享配置或例子。

共有1个答案

金钊
2023-03-14

也许你应该换个方法。

OAUTH2术语提醒:

  1. 资源所有者
  2. 资源服务器
  3. 授权服务器
  4. 客户端

总结:

您可以对FE客户机做任何您想做的事情...但是在最后,请求中的角色承载令牌为特定API的客户机/感兴趣的资源承载什么是很重要的。

解决方案之一:

 类似资料:
  • 问题内容: 我将Spring Boot与Spring Security和Cors支持一起使用。 如果我执行以下代码 结果我得到了 如果我使用错误的凭证进行测试,例如 我得到的不是401(这是Spring安全中错误身份验证的标准代码) 带有以下浏览器通知: 获取http:// localhost:5000 / api / token XMLHttpRequest无法加载http:// localho

  • 我使用带有Spring Security和Cors支持的Spring Boot。 带有以下浏览器通知: 获取http://localhost:5000/api/token XMLHttpRequest无法加载http://localhost:5000。请求的资源上没有“access-control-allow-origin”标头。因此,不允许访问源“http://localhost:3000”。响

  • 在SpringJSFWeb应用程序中将Netty客户端处理程序配置为消息接收点,有没有具体的方法? 如果一些独立的Java应用程序充当Netty服务器,我如何接收到SpringJSFWeb应用程序的消息?

  • 我想用Oracle数据库设置spring boot最新项目。我做了第一步。下载ojdbc7 12.1.0.1 jar并将其保存在“C:\Users\Dasun_09323.m2\repository\com\oracle\ojdbc7”中。 2.usingmaven命令,我安装了jar。3.addedgradle依赖项,编译组:cn.easyproject,名称:ojdbc7,版本:12.1.0.

  • 问题内容: 如何配置Spring Boot应用程序侦听的TCP / IP端口,因此它不使用默认端口8080。 问题答案: 正如在所述的文档任一组使用命令行选项来JVM中的系统属性-或添加在与 对于随机端口使用

  • 我创建了一个具有双向SSL认证的Spring Boot 2应用程序。 简而言之,它归结为以下配置: 该应用程序具有密钥库/信任库,可以与导入的客户端证书一起正常工作。 出乎意料的是,如果我尝试与未知客户端证书连接,由于SSL握手失败,连接无法建立 然而,我希望即使证书不被接受,也能到达应用层,并用应用程序的HTTP响应进行响应。 有没有办法做到这一点?