# 决定哪些客户端能接入你的模型

> 用请求头准入规则限制谁能调用你的 AI 网关:按 User-Agent 或任意 header 放行/拒绝,全局 / 组 / key 三级作用域、白名单模式、ReDoS-safe 正则。

规范链接: https://www.gatellm.io/zh-CN/use-cases/client-admission-control/

按请求头做放行/拒绝的准入规则——可匹配 User-Agent、来源或任意 header,作用域为全局 / 某个 key 组 / 某个 key。

## 社区真正在抱怨什么
「key 一泄露,谁拿着都能烧我们的额度」「我们想把全公司的 coding agent 都放进白名单,但要拦掉裸 curl 和爬虫」「厂商控制台只有 IP 白名单,可我们流量是动态的、还前置了代理,根本套不上」。
管控必须落在请求真正到达的地方——网关——而不是开发随手就能关掉的客户端设置上。

## GateLLM 怎么做
GateLLM 对每个请求按 HTTP 头做准入判定:6 种匹配类型(exact / prefix / regex / exists / absent / any)、3 级作用域(全局 / key 组 / key),按 sort_order 升序、first-match-wins 逐条求值。
「只放行认可的客户端」走白名单模式:把该组的默认动作设为拒绝,再加一条匹配客户端特征的 allow 规则——其余请求在到达模型前就被拒掉。

## 落地的 5 个手段
- 6 种匹配类型:exact / prefix / regex / exists / absent / any——一条规则可用正则交替表达「A 或 B 或 C」
- 3 级作用域:全局、按 key 组、按 key——first-match-wins,同 order 下全局优先
- 白名单模式:默认拒绝 + 单条显式 allow——新出现的未知客户端默认被拒
- 规则同样作用于模型列表路由(/v1/models),被拒客户端端到端锁死
- ReDoS-safe 线性时间正则引擎——病态 pattern 在加载期就被拒,而非请求期

## FAQ
### 客户端能伪造 X-Forwarded-For 绕过规则吗?
能。X-Forwarded-For 是客户端可伪造的头,只有前面有可信反代覆写它才可靠;否则恶意客户端可任意填。真正的 IP 准入应优先用网关直接看到的源 IP,配 TRUSTED_PROXIES。

### key 是对的,为什么还是 403?
准入规则同样作用于模型列表路由。被拒的客户端可能在第一次 /v1/models 调用时就被拦。检查是否有 Header ACL 规则命中;且默认拒绝模式下,匹配不到任何 allow 规则的客户端一律被拒。

### 能写「header 不含 X 才放行」吗?
单条正则表达不了——引擎不支持 lookahead。反向编排:把默认动作设为拒绝,再加一条「含 X 则 allow」的规则,未命中的请求自然落到默认拒绝。

- [完整教程:配置 Header ACL(docs 站)](https://docs.gatellm.io/zh-CN/howto/configure-header-acl)

## 相关页面
- [首页](https://www.gatellm.io/zh-CN/index.md)
- [定价](https://www.gatellm.io/zh-CN/pricing.md)
- [成本计算器](https://www.gatellm.io/zh-CN/calculator.md)
- [关于](https://www.gatellm.io/zh-CN/about.md)
- [预约演示](https://www.gatellm.io/zh-CN/demo.md)
- [常见问题](https://www.gatellm.io/zh-CN/faq.md)
- [对比 AI 网关](https://www.gatellm.io/zh-CN/compare.md)
- [对比 LiteLLM](https://www.gatellm.io/zh-CN/compare/litellm.md)
- [对比 OpenRouter](https://www.gatellm.io/zh-CN/compare/openrouter.md)
- [对比 Alibaba Cloud AI Gateway](https://www.gatellm.io/zh-CN/compare/alibaba-cloud.md)
- [对比 Azure API Management](https://www.gatellm.io/zh-CN/compare/azure-apim.md)
- [对比 Apigee](https://www.gatellm.io/zh-CN/compare/apigee.md)
- [对比 Cloudflare AI Gateway](https://www.gatellm.io/zh-CN/compare/cloudflare.md)
- [对比 Kong AI Gateway](https://www.gatellm.io/zh-CN/compare/kong.md)
- [对比 Portkey](https://www.gatellm.io/zh-CN/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway 对比](https://www.gatellm.io/zh-CN/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter 对比](https://www.gatellm.io/zh-CN/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey 对比](https://www.gatellm.io/zh-CN/compare/litellm-vs-portkey.md)
- [场景方案](https://www.gatellm.io/zh-CN/use-cases.md)
- [降低调用成本](https://www.gatellm.io/zh-CN/use-cases/reduce-cost.md)
- [做到高可用](https://www.gatellm.io/zh-CN/use-cases/high-availability.md)
- [多租户隔离](https://www.gatellm.io/zh-CN/use-cases/multi-tenant.md)
- [合规与审计](https://www.gatellm.io/zh-CN/use-cases/compliance-audit.md)
- [从症状排障](https://www.gatellm.io/zh-CN/use-cases/troubleshooting.md)
- [混合多供应商模型栈](https://www.gatellm.io/zh-CN/use-cases/mixed-model-stack.md)
- [在 Office 里自托管用 AI](https://www.gatellm.io/zh-CN/use-cases/self-hosted-office-ai.md)
- [Token 用量可见与归因](https://www.gatellm.io/zh-CN/use-cases/token-ops.md)
- [Token FinOps: AI 支出分摊与管控](https://www.gatellm.io/zh-CN/use-cases/token-finops.md)
- [MCP 工具治理](https://www.gatellm.io/zh-CN/use-cases/mcp-tool-governance.md)
- [给模型统一加联网搜索](https://www.gatellm.io/zh-CN/use-cases/web-search-grounding.md)
- [多 Key 轮询与备用](https://www.gatellm.io/zh-CN/use-cases/multi-key-pooling.md)
- [强制模型使用策略](https://www.gatellm.io/zh-CN/use-cases/enforce-model-policy.md)
- [客户端不暴露模型选择](https://www.gatellm.io/zh-CN/use-cases/automatic-model-tiering.md)
- [一套协议接任意模型](https://www.gatellm.io/zh-CN/use-cases/one-protocol-any-model.md)
- [Office / Microsoft 365 加载项](https://www.gatellm.io/zh-CN/office-addin.md)
- [术语表](https://www.gatellm.io/zh-CN/glossary.md)
- [模型目录](https://www.gatellm.io/zh-CN/models.md)
- [SDK 与框架集成](https://www.gatellm.io/zh-CN/integrations.md)
- [AI Coding Agent 与 Harness](https://www.gatellm.io/zh-CN/coding-agents.md)
- [安全与合规](https://www.gatellm.io/zh-CN/security.md)
- [隐私政策](https://www.gatellm.io/zh-CN/privacy-policy.md)
- [服务条款](https://www.gatellm.io/zh-CN/terms.md)
- [Cookie 政策](https://www.gatellm.io/zh-CN/cookies.md)
- [数据处理协议 (DPA)](https://www.gatellm.io/zh-CN/dpa.md)
- [子处理方清单](https://www.gatellm.io/zh-CN/subprocessors.md)
- [安全问卷预答库 (CAIQ/SIG/VSA)](https://www.gatellm.io/zh-CN/trust.md)
- [事故响应与支持服务](https://www.gatellm.io/zh-CN/sla.md)
- [漏洞披露政策](https://www.gatellm.io/zh-CN/vulnerability-disclosure.md)
- [开源许可声明](https://www.gatellm.io/zh-CN/open-source-licenses.md)
- [版本支持与生命周期 (EOL)](https://www.gatellm.io/zh-CN/lifecycle.md)
- [技术博客](https://www.gatellm.io/zh-CN/blog.md)
- [你的 Agent 权限比员工还大:在网关层治理 MCP 工具](https://www.gatellm.io/zh-CN/blog/mcp-tool-governance.md)
- [一张一万美元的账单:五种降低 LLM 成本又不让应用变笨的做法](https://www.gatellm.io/zh-CN/blog/reduce-cost.md)
- [厂商的目录价不是你的成本:把真正的 FinOps 用到 Token 支出上](https://www.gatellm.io/zh-CN/blog/token-finops.md)
- [llms.txt](https://www.gatellm.io/zh-CN/llms.txt)
