跳到主要内容

访问控制

Powerduck 把读者如何访问文档与客户端如何访问 MCP 端点分开,因为两者的消费方式不同。它还配置 MCP 服务器如何向上游 API 认证。

各关卡(按顺序)​

若干条件决定一个公开面是否打开。知道完整清单能回答那个常见问题:"为什么我打不开我的文档?"

  1. 文档状态——文档必须为 ACTIVE(未暂停、归档或删除);
  2. 形态已启用——文档用 documentationEnabled,MCP 用 mcpEnabled;
  3. 访问凭据——配置后,文档用查看密码,MCP 用访问密钥;
  4. 有效期——文档查看可设置在指定时间过期。

形态背后的已发布产物在你添加版本或更改暴露后自动构建,因此发布通常不是手动步骤。

每个形态相互独立:禁用 MCP 不影响文档,文档密码也不为 MCP 把关。

文档查看密码​

查看密码保护渲染文档和所提供的规范数据:

  • 密码用 scrypt 配合每个密码随机的盐进行哈希;不存储明文;
  • 设置密码后,读者必须先提供它,文档才会被提供;
  • 密码只为文档把关;MCP 端点使用自己的访问密钥并跳过查看密码。

你还可以设置查看有效期。过期之后,即使密码正确也会拒绝访问。清除密码或有效期即可移除限制。

MCP 端点访问密钥​

MCP 端点用自己的访问密钥保护:

  • 生成(或轮换)密钥;完整密钥仅返回一次,之后只显示最后四个字符;
  • 配置密钥后,每个 MCP 请求必须以 Bearer 令牌呈现它;
  • 提供的密钥以恒定时间比较,缺失或错误的密钥返回 401。

删除密钥可让 MCP 端点开放(前提是文档活动且 MCP 启用)。

MCP 上游认证​

除了为端点把关之外,还可以配置 MCP 服务器如何向规范所描述的上游 API 认证。支持的认证类型为:

authType配置
NONE无上游认证
BEARER一个 Bearer 令牌
BASIC基本认证的用户名和密码
APIKEYAPI 密钥名称(请求头/查询)和值

Bearer 令牌、基本认证密码和 API 密钥值等机密可以写入但从不会被读回;配置只报告它们是否已设置。

其他 MCP 配置包括:

  • 基础 URL 覆盖——覆盖上游基础 URL,而不是从规范获取;
  • 请求超时——MCP 服务器调用上游 API 时使用的超时。

推荐设置​

  • 公开文档: 启用文档,开放 API 可不开密码,或为受控分享设置密码和有效期;
  • 给自己智能体用的 MCP: 启用 MCP 并生成访问密钥,让只有你的客户端能调用;
  • 上游认证: 让 MCP 服务器的认证匹配真实 API 的要求,独立于谁可以调用 MCP 端点。

相关:暴露操作、文档与版本、自定义域名。