操作教程丨动态识别MaxKB对话用户身份,实现文档级别的权限控制

发布于 2026年02月25日

MaxKB开源企业级智能体平台目前已经在系统层面支持RBAC权限管理(注:MaxKB专业版和企业版提供),并且在应用层面实现了对话权限的控制。但是,在生成式AI驱动企业智能化的进程中,知识安全与权限细化已经成为核心挑战。当单一知识库容纳多部门敏感信息时,传统的应用级访问控制已不足以防范越权风险,不少用户希望将权限控制细化至具体文档级别。

事实上,通过MaxKB的可视化工作流引擎,可以巧妙地融合用户身份与文档标签,在检索链路上实现动态过滤,让安全与协作得以兼顾,有效将权限控制至文档层级。本文为您介绍“在MaxKB通过动态识别对话用户,实现文档级别权限控制”的方法和步骤。

说明:本方案中提到的“对话用户”概念为MaxKB专业版和企业版功能。

一、实现方法

1. 创建一个演示用知识库,将其命名为“文档权限-账号标签”。

0210-1.png

▲图1 创建一个知识库

2. 上传两篇文档,分别为“HR知识点”和“IT知识点”。此时,两个文档是所有账号均可访问的状态。

0210-2.png

▲图2 上传两篇不同主题的文档

3. 标签设置:为“HR知识点”文档标记“hr_demo”标签,为“IT知识点”文档标记“it_demo”标签。

0210-3.png

▲图3 为不同的文档设置不同的标签

4. 在MaxKB的“系统管理”页面选择“对话用户”选项,然后创建两个用户,用户名分别为hr_demo和it_demo。

0210-4.png

▲图4 创建对话用户

5. 为这两个用户分别配置对应知识库的权限。

0210-5.png

▲图5 为对话用户分配知识库权限

6. 接下来,创建一个智能体用来验证不同的用户访问同一个智能体的同一个知识库时,可以按照用户身份来实现文档级别的权限控制。该智能体主要包含以下节点:

① 指定回复:接入“指定回复”组件,将全局变量“chat_user”的值转换为String格式;

② 自定义工具:接入“自定义工具”组件,输入从全局变量“chat_user” 内容获取username(对话用户)的值的脚本,具体代码详见下面的函数语句;

③ 文档标签检索:接入“文档标签检索”组件,“检索范围”选择“自定义”选项,并且选择“文档权限-账号标签”知识库;“检索设置”选择“手动”选项,设置“账号”标签包含前一个节点(username获取工具)的输出结果;

④ 知识库检索:接入“知识库检索”组件,“检索范围”选择“引用变量”选项,并且将“选择变量”设定为“文档列表”以及填入前一个节点(文档标签检索)的文档列表输出值。

0210-6.png

▲图6 实现文档级权限控制工作流配置参考

自定义工具使用的函数语句如下:

import ast
def get_username_from_string(user_message):
    """
    从Python字典字符串中解析并返回username的值
    """
    try:
        # 使用ast.literal_eval安全地评估字符串为Python对象
        user_data = ast.literal_eval(user_message)
        # 获取username字段的值
        username = user_data.get('username')
        return username
    except (SyntaxError, ValueError) as e:
        return f"解析失败: {e}"
    except Exception as e:
        return f"发生错误: {e}"

7. 打开智能体的“概览”页面,点击“访问限制”按钮进入“访问限制”页面,打开“身份验证”开关,同时选中“登录认证”选项。这样一来,只有具备该知识库权限的用户在问答时可以对该知识库的内容进行检索。

0210-7.png

▲图7 配置知识库的访问限制

8. 在该智能体的“对话用户”设置页面,为用户名为hr_demo和it_demo的用户分别配置智能体的使用权限。

0210-8.png

▲图8 智能体“对话用户”权限配置

二、结果验证

智能体搭建完成后,我们来看一下实现的结果。在小助手中,分别登录hr_demo和it_demo两个账号,进行提问验证,分别返回了仅该用户可以检索到的知识库内容,文档级别的权限控制已经生效。

0210-9.png

▲图9 HR人员的访问结果

0210-10.png

▲图10 IT人员的访问结果

三、总结

MaxKB通过其可视化工作流引擎与灵活的标签系统,实现了文档级别的权限控制,显著降低了权限管理的复杂性与安全风险。MaxKB开源企业级智能体平台具备精细化的数据管控能力,能够基于用户身份动态过滤知识内容,为企业构建集高效协作与安全合规于一体的智能知识中枢,提供了成熟可靠的解决方案。