SafeLine MCP Server 的 MCP 客户端 Bearer Token 如何初始化与轮换?

发布时间:2026/11/10 3:59:29

SafeLine MCP Server 的 MCP 客户端 Bearer Token 如何初始化与轮换? SafeLine MCP Server 的 MCP 客户端 Bearer Token 如何初始化与轮换【免费下载链接】SafeLineSafeLine is a self-hosted WAF(Web Application Firewall) / reverse proxy to protect your web apps from attacks and exploits.项目地址: https://gitcode.com/GitHub_Trending/sa/SafeLine在部署 SafeLine MCP Server 时需要为 MCP 客户端即连接该服务的 AI 客户端启用访问认证先生成一次 Bearer Token 供客户端携带之后在需要作废旧凭据时执行一次显式轮换。这篇文章给出这两步的具体命令、状态文件位置和验证方式。先说清楚范围MCP 客户端认证与下游 SafeLine 实例的 API Token 相互独立。后者按实例存放在token_file指向的文件里只用于 MCP Server 访问 SafeLine 管理 API不会暴露给 MCP 客户端。本文只处理前者的初始化auth init与轮换auth rotate。认证机制Token 只在初始化时显示一次启用 MCP 认证后Token 由crypto/rand生成一个 256-bit 随机值前缀为slmcp_。命令只在执行时把明文打印一次状态文件里只保存 SHA-256 哈希与创建时间文件权限为0600。服务正常重启只会读取该状态不会修改或再次打印 Token实现见 mcp_server/internal/auth/auth.go。客户端之后在每次 MCP 请求中携带该 TokenAuthorization: Bearer slmcp_...其中slmcp_...是auth init/auth rotate输出的实际 Token文档中此处仅为格式示例。内置监听器是明文 HTTPDocker Compose 默认把端口发布在127.0.0.1就是这个静态 Bearer 门闩不被放到网络上明文传输的原因。若要从其他机器访问README 明确要求把端点放在可信的 HTTPS 终止网关之后不要在不受信任的网络上把MCP_PUBLISH_ADDRESS设为0.0.0.0而不做 TLS 终止。准备启用认证并确认状态文件位置Docker Compose 路径下mcp_server/docker-compose.yml容器内状态文件固定为/var/lib/safeline-mcp/auth.json由宿主机${SAFELINE_MCP_STATE_DIR:-./state}目录绑定挂载提供MCP_AUTH_ENABLED默认取宿主机环境变量的值未设置时为false。在mcp_server/目录下操作。先按 mcp_server/README.md 的 Docker 部署流程准备好目录与镜像docker compose build install -d -m 700 /etc/safeline-mcp/secrets /var/lib/safeline-mcp install -m 600 /path/to/production-a.token /etc/safeline-mcp/secrets/production-a.token export SAFELINE_MCP_SECRETS_DIR/etc/safeline-mcp/secrets export SAFELINE_MCP_STATE_DIR/var/lib/safeline-mcp其中/path/to/production-a.token是示例换成你自己每个 SafeLine 实例的管理员 API Token 文件。install命令会创建上述受保护的部署目录700和 Token 文件600——这是 Compose 声明create_host_path: false的前提Compose 拒绝自动创建缺失的绑定挂载路径。若只用./secrets与./state本地开发路径README 要求先以相同权限手动创建这两个目录再运行 Compose。注意两个前提细节状态文件所在目录必须没有 group/other 权限状态文件本身必须是权限0600的普通文件否则Load会拒绝加载并报invalid MCP authentication stateCompose 中的SAFELINE_MCP_STATE_DIR指向的宿主目录就是state的落点初始化前确认该目录存在且权限正确。初始化执行一次 auth init 并保存 Token在同一个 shell 会话里执行export需要延续到后面的docker compose up容器才会在运行态启用认证export MCP_AUTH_ENABLEDtrue docker compose run --rm mcp_server auth init输出示例Token 为随机值此处仅展示文档给出的形式MCP bearer token (shown once; save it now): slmcp_...命令结束后把打印的 Token 保存下来——这是明文唯一可见的时刻。判断初始化是否成功的依据输出中出现一次slmcp_前缀的 Token状态文件已生成宿主机${SAFELINE_MCP_STATE_DIR}目录下的auth.json权限0600内容只有version、token_hash、created_at不含明文再次运行同样的auth init不会重新生成而是提示MCP authentication is already initialized at state file; token was not changed.——init是一次性操作重复执行不改写已有状态。如果启用了认证但状态尚未初始化就启动服务README 明确说明服务器会拒绝启动mcp_server/main.go 中的报错会直接给出该跑的命令例如MCP authentication is enabled but not initialized; run mcp-server auth init --state-file /var/lib/safeline-mcp/auth.json: invalid MCP authentication state: ...之后启动服务并验证客户端侧行为docker compose up -d不带 Token 或携带错误 Token 的 MCP 请求会被中间件拒绝返回401 Unauthorized响应头带WWW-Authenticate: Bearer realmsafeline-mcp见 mcp_server/internal/auth/auth.go 的Middleware。服务重启后日志不会再次出现 Token 明文这与 README「重启只读状态、不改动不打印 Token」的描述一致。可选分支不用 Docker直接用 Go 运行README 给出本地路径的做法先选定一个持久的状态文件再初始化go build -o mcp-server . export MCP_AUTH_ENABLEDtrue export MCP_AUTH_STATE_FILE$PWD/state/auth.json ./mcp-server auth init ./mcp-server --config ./config.yamlauth子命令的完整用法为mcp-server auth init|rotate [--state-file path]不传--state-file时取MCP_AUTH_STATE_FILE环境变量再取不到则用默认路径/var/lib/safeline-mcp/auth.json。轮换auth rotate 并重启服务需要作废旧 Token 时在mcp_server/目录下执行docker compose run --rm mcp_server auth rotaterotate的前提是状态文件已存在且有效它会先Load现有状态成功后才生成新 Token 并整体替换状态文件。它同样只把新 Token 打印一次。与init不同rotate可以重复执行每次都产出一个新值并使旧值失效。README 给出的轮换注意事项轮换在服务重启后才让旧 Token 失效拿到新 Token 后把docker compose up -d重新拉起或重启容器再让客户端改用新 Tokenauth rotate必须作为一次串行化的部署操作执行不支持并发的轮换命令轮换期间客户端会短暂持有两个都不能用的凭据旧的重启后失效、新的还未下发这是一个需要排进变更窗口的动作。限制与边界这套静态 Bearer 门闩面向自托管部署README 明确说明它「不呈现为完整的 MCP OAuth 2.1 实现」不存在全局SAFELINE_API_TOKEN那是下游实例凭据且每个实例各用一份 Token 文件状态文件一旦权限不符合要求如出现 group/other 可读位会被判为无效状态服务会拒绝启动需要恢复到0600的普通文件与0700的目录初始化/轮换命令只负责凭据本身MCP 端点地址、实例映射display_name到instance_id由 mcp_server/config.yaml 与instances配置决定与 Token 管理互不干涉。下一步按 README 的部署顺序走即可保存好auth init输出的 Tokendocker compose up -d启动服务让客户端用Authorization: Bearer token访问POST /mcp。【免费下载链接】SafeLineSafeLine is a self-hosted WAF(Web Application Firewall) / reverse proxy to protect your web apps from attacks and exploits.项目地址: https://gitcode.com/GitHub_Trending/sa/SafeLine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/9 16:21:14

SAP ABAP CDS Projection View四种变体解析与实战

1. 项目概述:CDS Projection View的演进与实战价值 在SAP ABAP开发领域,CDS(Core Data Services)Projection View作为数据模型的核心构建单元,其设计模式直接影响着RAP(ABAP RESTful Application Programmi…

2026/11/9 23:36:21

非标电压供电方案选型指南:变压器、变频电源与UPS实战决策

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/10 12:13:58

电工证到哪里去报名多久拿证才靠谱

电工证到哪里去报名多久拿证才靠谱 你是不是也遇到过这种情况,网上一搜“电工证到哪里去”,全是各种培训机构的广告,看得人眼花缭乱,生怕一不小心被坑了钱还拿不到证?其实,想考电工证, 电工证到哪里去…

2026/11/10 12:13:58

肇庆中级电工证在哪考多久拿证实操考试心里没底怕挂科

肇庆中级电工证在哪考多久拿证实操考试心里没底怕挂科 实操考试心里没底怕挂科,是很多准备考肇庆中级电工证的朋友最真实的感受。尤其是在面对高压、高风险的电工作业时,很多考生对考试流程、评分标准、备考技巧都缺乏清晰的认识,导致在准备阶段就焦虑不安…

2026/11/10 12:13:58

电工证怎样查询被盗用 郑州报考避坑指南

电工证怎样查询被盗用 郑州报考避坑指南 你还在为找不到工作发愁?特种作业证是不少岗位的硬性门槛,尤其像电工证,几乎是建筑、电力、制造行业的“入场券”。但你有没有遇到过这种情况——辛辛苦苦考下来的电工证,突然发现被人盗用?这不仅影响你求职,还…

2026/11/10 12:13:58

坎墩哪里考电工证真实经历告诉你怎么考最稳妥

坎墩哪里考电工证真实经历告诉你怎么考最稳妥 你是不是也和我一样,学历不高,担心自己报不了名?去年我带着几个工友一起去考电工证,很多人就因为学历问题被拦在门外,结果耽误了项目进度。今天我就从 信阳劳务班组负责人 的角度,分享一下我 真实经历…

2026/11/10 12:08:57

黄江考电工证哪里报名多少钱才能上岗找工作

黄江考电工证哪里报名多少钱才能上岗找工作 你是不是正准备找电工相关的工作,却发现手里没有特种作业操作证?在黄江地区,考电工证哪里报名、多少钱、流程怎么走,成了很多人最关心的问题。别急,这文章就帮你从头理清楚,确保你一次拿证、顺利上岗。…

2026/11/10 8:12:38

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/10 0:01:28

学历不高怕报不上名?考电工证报名费+网上查询全攻略来了

学历不高怕报不上名?考电工证报名费+网上查询全攻略来了 你是不是也担心自己学历不高,考电工证报名费太贵,根本报不上名?别急,今天就来给你讲讲,怎么用最少的钱,把证拿到手,还能在工地上多挣点钱。 电工证报名费多少钱?网上查询是关键…

2026/11/10 0:01:29

绍兴考电工证培训机构怎么选?2026河南最新政策别错过

绍兴考电工证培训机构怎么选?2026河南最新政策别错过 怕考不过白交培训费?你不是一个人。2026河南最新政策出台,对电工证考试、报名、培训、复审都有明确规定。选择绍兴考电工证培训机构,别再踩坑,下面一步步教你避坑。…

2026/11/9 6:30:27

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑