Keycloak管理客户端,405 DELETE方法不允许



我正在实现一个nodejs后端来管理Keycloak中的用户,为此我使用npm包keycloak-nodejs-admin-client

一切正常,但当我开始尝试删除资源时,我得到405 DELETE METHOD NOT ALLOWED

const adminClient = await initializeKeycloak()
let mapper = await adminClient.clientScopes.findProtocolMapperByName({id: openIdScopeId, name: keycloakId})
await adminClient.clientScopes.delProtocolMapper({id: openIdScopeId, name: mapper.name});
await adminClient.clientScopes.delProtocolMapper({id: samlScopeId, name: mapper.name});

例如findProtocolMapperByName工作得很好,但删除不返回405,我已经试图确保我正确使用库,所以我认为必须是一个keycloak配置我是这样配置keycloak admin npm包的:

kcAdminClient.setConfig({
realmName: 'master',
});
adminClient = await kcAdminClient.auth({
username: 'admin',
password: 'dummy',
grantType: 'password',
clientId:'admin-cli',
});
kcAdminClient.setConfig({
realmName: dummy,
});

事实上,我配置两个领域没有影响,因为这个问题之前发生过,我试图使用主领域的用户来执行请求。

没有关于keycloak/http方法的直接信息,我认为这可以帮助很多人,谢谢!

我发现了问题:在keycloak-nodejs-admin-client上有很少的文档和测试文件来测试方法,在那里他们使用映射器名称进行删除,实际上你需要使用mapperID。

最新更新