How to set up OIDC connection to Keycloak in Quarkus on Kubernetes(如何在Kubernetes上的Quarkus中设置OIDC到Keyshaak的连接)
问题描述
是否有人在Kubernetes集群中部署的Quarkus应用程序中成功设置了OIDC到Keyloack的连接? 您能解释一下connection-delay
(以及其他相关参数)是如何工作的吗?
(Here is the documentation我尝试跟随)
在我们的环境(Quarkus 1.13.3.Final,Keyloak 12.0.4)中,我们有这样的配置:
Quarkus.oidc.连接延迟:6M
Quarkus.oidc.Connection-超时:30s
Quarkus.oidc.tenant-id:testTenant-01
启动Pod时,这些消息会出现在Pod的日志中:
2021-07-26 14:44:22,523信息[Main][OidcRecorder.Java:264]- 每2秒最多连接IdP 180次
2021/07/26 14:44:24,142调试[vert.x-事件循环-线程-1] [OidcRecorder.java:115]-‘testTenant-01’租户初始化失败: ‘未配置OpenID Connect提供程序配置元数据,并且 不能被发现‘。访问受此租户保护的资源 将失败,并返回HTTP 401。
(...当Pod正在运行时,随后会出现以下日志...)
2021-07-27 06:11:54,261调试[vert.x-eventloop-thread-0] [DefaultTenantConfigResolver.java:112]-租户‘null’不是 已初始化
2021-07-27 06:11:54,262错误 [vert.x-eventloop-thread-0][QuarkusErrorHandler.java:101]-HTTP 对/q/Health/live的请求失败,错误ID: 89f83d1d-894c-4Fed-9995-0d42d60cec17-2:io.Quarkus.oidc.OIDCException: 租户配置尚未在以下位置解析 io.quarkus.oidc.runtime.OidcAuthenticationMechanism.resolve(OidcAuthenticationMechanism.java:61) 在… io.quarkus.oidc.runtime.OidcAuthenticationMechanism.authenticate(OidcAuthenticationMechanism.java:40) 在… io.quarkus.oidc.runtime.OidcAuthenticationMechanism_ClientProxy.authenticate(OidcAuthenticationMechanism_ClientProxy.zig:189) 在… io.quarkus.vertx.http.runtime.security.HttpAuthenticator.attemptAuthentication(HttpAuthenticator.java:100) 在… io.quarkus.vertx.http.runtime.security.HttpAuthenticator_ClientProxy.attemptAuthentication(HttpAuthenticator_ClientProxy.zig:157) 在… io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder$2.handle(HttpSecurityRecorder.java:101) 在… io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder$2.handle(HttpSecurityRecorder.java:51) 在… io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1038)
问题:
- 有没有办法找出缺少哪些元数据?
- 我是否可以以某种方式更改连接尝试之间的2秒间隔?
- 连接延迟和连接超时之间有什么关系吗?
- CCA 2s后失败-是表示第一次尝试立即失败,还是这么快就完成了180次尝试?
- 初始化时
DefaultTenantConfigResolver
是否与OidcRecorder
从不同的资源获取租户,即是否应该在多处配置租户?
推荐答案
最终使其正常工作。由错误的auth-server-url引起,日志消息中根本不清楚。
quarkus.oidc.client-id: my-app
quarkus.oidc.enabled: true
quarkus.oidc.connection-delay: 6M
quarkus.oidc.connection-timeout: 30S
quarkus.oidc.tenant-id: testTenant-01
quarkus.oidc.auth-server-url: ${keycloak.url}/auth/realms/${quarkus.oidc.tenant-id}
Quarkus doc中强调了url格式:注意:如果您使用Keyloak OIDC服务器,请确保基本URL采用以下格式:https://host:port/auth/realms/{realm},其中{Realm}必须替换为Keyloak领域的名称
这篇关于如何在Kubernetes上的Quarkus中设置OIDC到Keyshaak的连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在Kubernetes上的Quarkus中设置OIDC到Keyshaak的连接
基础教程推荐
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01