密钥斗篷:请求中未提供客户端密码



keycloak js version -> ^10.0.2

角度 -> ^7.2.16

Keycloak.json

{
"realm": "REALM",
"auth-server-url": "<auth-url>/auth/",
"ssl-required": "external",
"resource": "CLIENT_ID",
"verify-token-audience": true,
"credentials": {
"secret": "CLIENT_SECRET_KEY"
},
"use-resource-role-mappings": true,
"confidential-port": 0,
"policy-enforcer": {}
}

像这样在初始化中使用

const keycloakAuth = Keycloak('keycloak.json');
keycloakAuth.init({ onLoad: 'login-required', checkLoginIframe: false })

当KeyCloak进行此调用时,<auth-url>/auth/realms/guavus/protocol/openid-connect/token给出此错误。

{"错误":"unauthorized_client","error_description":"请求中未提供客户端密码"}

根据文档从JavaScript适配器中删除了凭据支持

比这个的替代方案是什么以及如何解决此错误?

如果这是一个 Angular 单页应用程序 (SPA(,您应该根据 Keycloak 文档使用公共客户端(不会使用客户端密钥(:

"关于使用客户端应用程序,需要注意的一件重要事情是,客户端必须是公共客户端,因为没有安全的方法在客户端应用程序中存储客户端凭据。 https://www.keycloak.org/docs/latest/securing_apps/#_javascript_adapter

是的,我知道他们从javascript适配器中删除了credential支持

https://www.keycloak.org/docs/latest/release_notes/#credentials-support-removed-from-the-javascript-adapter https://github.com/keycloak/keycloak/commit/913056b2b2d39707347a39dddb7bdad69fe47cc3

对于他们在文档中提到的JavaScript适配器To use the JavaScript adapter you must first create a client for your application in the Keycloak Administration Console. Make sure public is selected for Access Type.

最新更新