我尝试使用keycloak保护我的REST nodejs / express后端。我在Keycloak管理界面中定义了一组权限。我已经使用评估模块测试了这些权限。我使用keycloak-connect中间件,如文档中所述。我已经成功地限制了仅通过身份验证的用户对路由的访问。但是授权似乎仅限于基于角色的系统。由于我在应用程序中具有动力学角色,因此我不能依赖
app.get( '/special', keycloak.protect('admin'), specialHandler );
我希望这个中间件能够自动检查所有授权。但是,在浏览源代码后,我发现此功能无法为我提供任何东西。
function simpleGuard(role, token) {
return token.hasRole(role);
}
if (typeof spec === 'function') {
guard = spec;
} else if (typeof spec === 'string') {
guard = simpleGuard.bind(undefined, spec);
}
这段代码似乎只是在等待自定义函数或角色名称的检查。所以我的问题是:我是否需要实现自定义签入功能,并将其传递给密钥斗篷中间件?是否有让我检查授权的REST端点?像http://{keycloak_url}/auth/checkPermission(token, permission)
这样的东西?