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

Keycloak客户端没有访问类型Public的secret可用

周鸿云
2023-03-14

我正在使用KeyCloak3.4.3和保护基于Spring的Rest服务。

Client Protocol: openid-connect<br>
Access Type: public<br>
Standard Flow Enabled: ON<br>
Implicit Flow<br>
Direct Access Grants Enabled: ON<br>
Authorization Enabled: OFF<br>

2018-02-28 15:19:10.216警告7813---[nio-8080-exec-2]A.A.ClientIdandSecretCredentialsProvider:客户端“DemoclientId”没有可用的机密2018-02-28 15:19:10.375错误7813---[nio-8080-exec-2]O.K.Adapters.OAuthRequestAuthenticator:未能将代码转换为令牌

java.net.ConnectException:在java.base/java.net.plainsockeTimpl.socketConnect(本机方法)上拒绝连接(拒绝连接)~[na:na]在java.base/java.net.abstractplainsockeTimpl.doConnect(abstractplainsockeTimpl.java:400)~[na:na]在java.base/java.net.abstractplainsockeTimpl.connecttoAddress(cketimpl.java:402)~[na:na]在java.base/java.net.socket.connect(Socket.java:591)~[na:na]在org.apache.http.conn.scheme.plainsocketfactory.connectsocket(plainsocketfactory.java:121)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.conn.defaultclientconnectionoperator.openconnection.java:144)~[httpclient-4.5.5.jar!/:4.5.5]位于org.apache.http.impl。conn.abstractPooledConnAdapter.open(abstractPooledConnAdapter.java:134)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.client.defaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.client.defaultRequestDirector.java:610)~[httpclient-4.5.5.jar!/:4.5.5]在.java:835)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.client.closeablehttpclient.java:83)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.client.closeablehttpclient.execute(closeablehttpclient.java:108)~[httpclient-4.5.5.jar!/:4.5.5]在org.apache.http.impl.client.closeablehttpclient.java:56)~[httpclient-4.5.5.jar!/:4.5.5]在org.keycloak.adapters.serverrequest.invokeAccessCodeToken(serverrequest.java:111)~[keycloak-adapter-core-3.4.3.final.jar!/:3.4.3.final]在org.keycloak.adapters.oauthRequestAuthenticator.resolvecode(OAuthRequestAuthenticator.java:336)~[keycloak-adapter-core-3.4.3.final.jar!/:3.4.3.final.jar!/:3.4.3.final]在AbstractKeycloakAuthenticatorValve.authenticateInternal(AbstractKeycloakAuthenticatorValve.java:203)~[spring-boot-container-bundle-3.4.3.final.jar!/:3.4.3.final.jar!/:3.4.3.final]在!/:3.4.3.final]位于org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:586)[tomcat-embed-core-8.5.27.jar!/:8.5.27]在org.keycloak.adapters.tomcat.abstractkeycloakauthenticatorvalve.invoke(abstractkeycloakauthenticatorvalve.java:181)~[spring-boot-container-bundle-3.4.3.final.jar!/:3.4.3.final]在

共有1个答案

瞿博学
2023-03-14

如果其他人发现了这个问题,答案似乎是公共访问类型只用于使用KeyCloak的UI的浏览器登录。例如,您不能使用带有Keycloak插件的Spring UI--它们必须使用机密访问类型(在这种情况下,您可以在管理UI的Clients部分中获得一个“Credentials”选项卡来提供机密)。

请参见https://www.keycloak.org/docs/4.8/server_admin/#oidc-clients并向下滚动到“访问类型”

 类似资料:
  • 我们计划将主动 MQ (STOMP) 用于我们的一个项目。其中一个要求是,如果我们发现用户不合适,就将其踢出/禁止。如何通过单板技术实现这一点?有点像在 IRC 中踢球的东西。

  • 根据客户端与授权服务器安全地进行身份验证的能力(即维护客户端凭据机密性的能力),OAuth定义了两种客户端类型: 机密客户端 能够维持其凭据机密性(如客户端执行在具有对客户端凭据有限访问权限的安全的服务器上),或者能够使用 其他方式保证客户端身份验证的安全性。 公开客户端 不能够维持其凭据的机密性(如客户端执行在由资源所有者使用的设备上,例如已安装的本地应用程序或基于Web浏览器的应用),且不能通

  • 后端 这是来自领域设置

  • 我使用GCP秘密管理器来存储密码使用google-Cloud的客户端库(Java)。客户端库期望环境变量中gcp项目的服务号键(json)文件路径。我可以为单个项目这样做,但是当我试图访问多个GCP项目的秘密管理器时,我不知道如何在环境变量中为不同的项目设置密钥。需要在环境中设置键的帮助,或者有一种方法可以使用java代码设置它。 我正在使用这个maven依赖项 https://cloud.goo

  • 我已经构建了两个keycloak客户机(spring-client和一个tomcat-client,使用keycloak、OIDC、spring boot adapter和OIDC、tomcat adapter),它们都在同一领域工作。我和这些客户有两个问题。 当我要登录到这些客户端时,我需要分别为每个客户端提供用户名和密码,即使我使用的是相同的浏览器(多个选项卡)和相同的用户名。 当我需要注销时