本文介绍了KEYCLOAK:请求中未提供客户端密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

密钥罩js版本->^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": {}
}

按如下方式在init中使用

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

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

根据documentation从javascript适配器删除的凭据支持

那么此错误的替代方案是什么以及如何修复此错误?

推荐答案

如果这是一个角度单页应用程序(SPA),则您应该根据Keyloak文档使用公共客户端(不会使用客户端机密):

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

这篇关于KEYCLOAK:请求中未提供客户端密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-24 22:08