我正在使用Keycloak的JavaScript Adapter将Web应用程序与我工作场所的SSO连接起来。代码看起来像这样(服务器数据通过他们的keycloak.json文件加载):
const keycloak = Keycloak();
keycloak.init({onLoad: "login-required"}).success(authenticated => {
...
}).error(() => {
...
});
它在Firefox和Chrome上按预期工作,但在Internet Explorer(v.11)上,令牌的POST请求返回400 Bad Request。这是我的Internet Explorer配置还是Keycloak-js本身的问题?这是来自IE的screenshot。
解决方案非常简单:Keycloak-js想要访问的客户端必须是public
,以便可以读取客户端ID并将其发送到服务器。 Cookie中缺少属性或其数据(Firefox和Chrome显然自己解决了这个问题)导致从Keycloak服务器发送的400 Bad Request。