本文介紹了如何在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服務器,請確?;綰RL采用以下格式:https://host:port/auth/realms/{realm},其中{Realm}必須替換為Keyloak領域的名稱
這篇關于如何在Kubernetes上的Quarkus中設置OIDC到Keyshaak的連接的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,