Keycloak,尝试使用 keycloak-admin 包进行身份验证

时间:2021-03-09 00:42:20

标签: node.js keycloak keycloak-rest-api

我正在创建一个员工管理解决方案,它将与组织的 Keycloak 服务器连接以进行身份​​验证。软件是用nodejs+express编写的,我尝试使用keyclock-admin包。

我在 keycloak 服务器上创建了一个客户端,并将其定义为“仅承载”访问类型,但我在身份验证方面遇到问题,因此它可以列出用户(并最终执行其他管理操作)服务器。

我尝试过的几种方法:

this.kcAdminClient = new KcAdminClient({
  baseUrl: 'https://keycloak.dev.myorg.com/auth',
  realmName: 'master'
});

await this.kcAdminClient.auth({
  grantType: 'client_credentials',
  clientSecret: '0f65bbed-a755-4ab0-ad1a-19a4085f10c0',
  clientId: 'staff-management'
});

结果:

{
  error: 'invalid_client',
  error_description: 'Bearer-only not allowed'
}

注意:尝试添加 usernamepassword(使用有效的管理员用户凭据),甚至将 grantType 更改为 password,但没有更改

然后我尝试了以下操作,因为 bearer-only 建议我们应该使用令牌:

this.kcAdminClient = new KcAdminClient({
  baseUrl: 'https://keycloak.dev.myorg.com/auth',
  realmName: 'master'
});

this.kcAdminClient.setAccessToken('...');

console.log(await this.kcAdminClient.users.find());

结果,在 find() 期间:

{ error: 'HTTP 401 Unauthorized' }

此时我不确定下一步是什么?我怀疑我错过了某处的许可,但我还没有找到任何东西。任何帮助将不胜感激。

0 个答案:

没有答案