我正在尝试使用身份验证(仅承载模式)制作一个QUUKUSAPI(OpenAPI-RESTEasy)。这是我的QUUKUS配置:
# OIDC Configuration
quarkus.oidc.auth-server-url=https://my_idp/auth/realms/MY_REALM
quarkus.oidc.client-id=my_keycloak_client
quarkus.oidc.tls.verification=none
# Enable Policy Enforcement
quarkus.keycloak.policy-enforcer.enable=true
...
还有我的钥匙斗篷客户:
client protocol : openid-connect
access_type : bearer-only
A secret is also defined for this client (but I think it doesn't need to beused in that case)
在启动时(mvn编译quakus: dev),我收到以下错误:
Failed to start application (with profile dev): org.keycloak.authorization.client.util.HttpResponseException: Unexpected response from server: 400 / Bad Re
quest / Response from server: {"error":"invalid_client","error_description":"Invalid client credentials"}
(我检查过我的客户ID没问题)
我已经阅读了官方指南:https://quarkus.io/guides/security-openid-connect和其他谷歌文章,但没有找到任何资源,描述这个用法。
我错过了什么吗?这个API以前是用Spring Boot完成的,一切都很好。
谢谢,
克利斯朵夫
我的解决方案:最后(我的错),这是因为我使用了keycroak策略强制机制。我放弃了依赖项“keycroak-授权”(以及相关的配置)。
只有oidc依赖项是强制性的,具有以下application.properties:
# OIDC Configuration
quarkus.oidc.auth-server-url=https://idp/auth/realms/REALM
quarkus.oidc.client-id=CLIENT_ID
quarkus.oidc.tls.verification=none
quarkus.http.auth.permission.permit1.paths=/*
quarkus.http.auth.permission.permit1.policy=authenticated
quarkus.http.auth.permission.dev.paths=/q/dev
quarkus.http.auth.permission.dev.policy=permit
我用https://quarkus.io/guides/security-keycloak-authorization指南而不是https://quarkus.io/guides/security-openid-connect指南。
问候