SuperAPI AI 工具集

api-authz

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:为 Kibana 所有 API 路由(含内部路由)配置强制授权检查,规范权限声明与分支逻辑。

主要能力:

  1. 路由安全配置:在 KibanaRouteOptions 的 security.authz 中声明 requiredPrivileges;可选 extendedPrivileges 仅检查并反映在 request.authzResult,不强制拦截。
  2. 权限命名:遵循 <operation>_<subject> 约定,仅用下划线,如 read_entity_a、manage_entity。
  3. 基于 authzResult 分支:处理器按权限返回不同数据或功能时,必须使用 request.authzResult,不得用 capabilities.resolveCapabilities() 等做授权分支。
  4. 可选扩展权限:门禁权限放 requiredPrivileges,扩展权限放 extendedPrivileges;后者为扁平字符串列表,不支持 anyRequired/allRequired,且启用 authz 时 requiredPrivileges 必填。
  5. 互斥权限分支:多个权限任一可访问时用 anyRequired,并在处理器中按 authzResult 分支。
  6. 退出授权:使用 @kbn/core-security-server 的 AuthzDisabled 或 AuthzOptOutReason 枚举;自定义原因仅在无预定义原因时使用,避免过于笼统的说明。

使用方式:在 router.get 等路由定义中设置 security.authz,处理器内读取 request.authzResult 判断权限。

适用场景:Kibana 路由安全配置、权限分支、可选权限扩展与授权退出。

限制:extendedPrivileges 不支持权限集合;退出授权需合理理由;资料未提供安装命令、收费或平台信息。