如何使用Keycloak-connect.js强制执行路由许可

时间:2018-07-12 19:02:15

标签: javascript rest express authorization keycloak

我尝试使用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)这样的东西?

0 个答案:

没有答案