本文介紹了如何在Kubernetes上的Quarkus中設(shè)置OIDC到Keyshaak的連接的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
是否有人在Kubernetes集群中部署的Quarkus應(yīng)用程序中成功設(shè)置了OIDC到Keyloack的連接?
您能解釋一下connection-delay
(以及其他相關(guān)參數(shù))是如何工作的嗎?
(Here is the documentation我嘗試跟隨)
在我們的環(huán)境(Quarkus 1.13.3.Final,Keyloak 12.0.4)中,我們有這樣的配置:
Quarkus.oidc.連接延遲:6M
Quarkus.oidc.Connection-超時:30s
Quarkus.oidc.tenant-id:testTenant-01
啟動Pod時,這些消息會出現(xiàn)在Pod的日志中:
2021-07-26 14:44:22,523信息[Main][OidcRecorder.Java:264]-
每2秒最多連接IdP 180次
2021/07/26
14:44:24,142調(diào)試[vert.x-事件循環(huán)-線程-1]
[OidcRecorder.java:115]-‘testTenant-01’租戶初始化失敗:
‘未配置OpenID Connect提供程序配置元數(shù)據(jù),并且
不能被發(fā)現(xiàn)‘。訪問受此租戶保護(hù)的資源
將失敗,并返回HTTP 401。
(…當(dāng)Pod正在運(yùn)行時,隨后會出現(xiàn)以下日志…)
2021-07-27 06:11:54,261調(diào)試[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)
問題:
-
有沒有辦法找出缺少哪些元數(shù)據(jù)?
我是否可以以某種方式更改連接嘗試之間的2秒間隔?
連接延遲和連接超時之間有什么關(guān)系嗎?
CCA 2s后失敗-是表示第一次嘗試立即失敗,還是這么快就完成了180次嘗試?
初始化時
DefaultTenantConfigResolver
是否與OidcRecorder
從不同的資源獲取租戶,即是否應(yīng)該在多處配置租戶?
推薦答案
最終使其正常工作。由錯誤的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中強(qiáng)調(diào)了url格式:注意:如果您使用Keyloak OIDC服務(wù)器,請確保基本URL采用以下格式:https://host:port/auth/realms/{realm},其中{Realm}必須替換為Keyloak領(lǐng)域的名稱
這篇關(guān)于如何在Kubernetes上的Quarkus中設(shè)置OIDC到Keyshaak的連接的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,