智能体护栏与运行时 LDAP 配置
我今天处理了两个不同的问题。它们的目标是一致的:使边界明确且易于控制。
第一个任务是为 AI 智能体构建 MCP 工具。我希望智能体能够通过列出活动、检查就绪状态和发布更新来管理活动平台。
挑战在于 MCP 工具使用 Token 认证。这意味着它们缺乏标准 Web 请求所具备的会话上下文。如果你依赖全局租户范围,系统可能会返回来自所有组织的数据。
我通过三条规则解决了这个问题:
- 在每个查询中显式按组织进行过滤。不要依赖全局范围。
- 使用与 Web 应用相同的权限字符串。智能体的权限绝不应超过使用它的用户。
- 使用 UUID 进行查找,而不是使用自增 ID。
将每个工具都视为不受信任的端点。将逻辑集中在可以统一测试的地方。
第二个任务涉及一个身份门户。我将 LDAP 设置从静态文件迁移到了设置 UI 中。现在管理员无需重新部署即可更改主机、端口和凭据。
我还增加了对连接超时和 SASL 选项的控制。这在 JSON 处理上带来了一个技术障碍。
当你在 JSON 中存储整数键时,解码后它们会变成字符串。而 LDAP 函数需要整数键。我不得不编写一个映射器(mapper),在调用前将这些键转换回整数。
为了确保安全,我增加了两个护栏:
- 对存储的 bind 密码进行加密。绝不要以明文形式将密钥存入缓存。
- 在保存前验证 JSON 字段。错误的配置应该在保存阶段就失败,而不是在用户被锁定后才发现。
我还使用了一个统一的组装器(assembler)来进行连接测试和保存。这确保了你测试的连接与你保存的连接完全一致。
工程不仅仅在于构建功能,更在于构建护栏。
Source: https://dev.to/nasrulhazim/dev-log-2026-06-24-agent-guardrails-and-runtime-ldap-config-2hi5
