Oauth 2.0 Quarkus web app无法使用JWT和KeyClope进行授权

Oauth 2.0 Quarkus web app无法使用JWT和KeyClope进行授权,oauth-2.0,keycloak,quarkus,Oauth 2.0,Keycloak,Quarkus,我正在尝试使用KeyClope中的代码授权流将用户授权给Quarkus应用程序。 这是Quarkus配置 # OIDC Configuration quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus quarkus.oidc.client-id=web-application quarkus.oidc.credentials.secret=ca21b304-XXX-XXX-XXX-51d38ef5da02

我正在尝试使用KeyClope中的代码授权流将用户授权给Quarkus应用程序。 这是Quarkus配置

# OIDC Configuration
quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus
quarkus.oidc.client-id=web-application
quarkus.oidc.credentials.secret=ca21b304-XXX-XXX-XXX-51d38ef5da02
quarkus.oidc.application-type=web-app
quarkus.oidc.authentication.scopes=email
“web应用程序”的客户端配置仅启用了标准流(用于代码授予流)

  • 我访问
  • 我被重定向到keydape(url看起来很好,带有
    scope=openid+email&response\u type=code&client\u id=web应用程序
  • 我使用示例用户帐户登录
  • 我被重定向回代码
  • 然后我在Quarkus中得到一个例外
KeyClope中的错误是:

09:58:25,420 WARN  [org.keycloak.events] (default task-30) type=CLIENT_LOGIN_ERROR, realmId=quarkus, clientId=web-application, userId=null, ipAddress=172.17.0.1, error=invalid_client, grant_type=client_credentials, client_auth_method=client-secret
问题: 为什么Quarkus尝试使用“grant\u type=客户端\u凭据”?它应该使用grant type=“authorization\u code”。这看起来像Quarkus中的一个错误,但可能有一个标志。

您可以尝试:

quarkus.oidc.client-type=web-app
而不是:

quarkus.oidc.application-type=web-app

来源:

“已启用服务帐户”已禁用。启用它应该可以解决问题。

底部的属性列表只有应用程序类型。我的示例在删除KeyClope依赖项时有效。
quarkus.oidc.application-type=web-app