目录

07 授权计费与安全

本地开发与服务器部署的授权差异

本地 Windows 工作站运行 RhinoCompute,通常使用本机已有 Rhino 授权,不额外产生核心小时费用。

在 Windows Server 或 Linux Server 上运行 RhinoCompute,则通常进入 Core-Hour Billing 模型。服务器启动 Rhino 时会使用 RHINO_TOKEN 指向对应的计费团队。

Core-Hour Billing 基本概念

核心小时计费按“服务器核心数 x Rhino 运行时间”计费,按分钟折算。官方计费说明中给出的价格是每 core-hour 0.10 美元。实际成本应以 McNeel 当前页面为准。

要点:

获取 RHINO_TOKEN

概念流程:

  1. 登录 Rhino Licenses Portal。
  2. 创建或选择用于 Compute 的团队。
  3. 启用 Core-Hour Billing。
  4. 获取 Auth Token。
  5. 在服务器设置机器级环境变量 RHINO_TOKEN

Windows PowerShell 示例:

[System.Environment]::SetEnvironmentVariable('RHINO_TOKEN', 'your token here', 'Machine')

注意:不要把真实 token 放入 wiki、工单、日志、源码仓库或截图中。

API Key 与 RHINO_TOKEN 的区别

项目 RHINO_TOKEN RHINO_COMPUTE_KEY
用途 Rhino 授权和核心小时计费。 客户端调用 Compute 的认证密钥。
谁使用 服务端 Rhino/Compute 进程。 客户端请求 header 和服务端验证。
泄漏后果 他人可能消耗你的计费额度。 他人可调用你的 Compute 服务。
传输位置 环境变量,不应传给普通客户端。 header 名称为 RhinoComputeKey

两者都必须保密,但保护目的不同。

API Key 配置

服务端:

[System.Environment]::SetEnvironmentVariable('RHINO_COMPUTE_KEY', 'your-secret-api-key', 'Machine')

客户端 HTTP header:

RhinoComputeKey: your-secret-api-key

如果服务端没有配置 RHINO_COMPUTE_KEY,部分 POST 端点会处于未认证状态。生产环境不应这样部署。

密钥管理建议

网络安全边界

最小生产架构建议:

公网
  |
  v
HTTPS 网关 / 业务 API
  |
  v
内网 RhinoCompute

如果必须让 Compute 直接暴露到公网:

SSRF 风险

如果 Compute 或 Grasshopper 定义支持服务端读取 URL,攻击者可能试图让服务器访问:

这类风险称为 SSRF。对公网部署,建议启用私有地址阻断,并在外层业务服务限制可读取的 URL 域名。

请求体大小与资源消耗

默认请求体上限常见为约 50 MB。提高限制前要考虑:

超时与拒绝服务

长耗时 Grasshopper 定义可能需要提高超时,但超时越长,恶意或错误请求占用资源越久。

建议:

本章检查点

参考资料