跳转到内容

认证与安全

SRA-server 提供基于 Token 的 API 认证机制,默认不启用。

编辑 SRA-server 目录下的 appsettings.json 文件,设置 AccessToken 字段:

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"AccessToken": "your-secret-token-here"
}

设置 AccessToken 后,所有 API 请求(除认证验证端点外)都需要携带该 Token。

AccessToken 留空或不设置时,认证功能不会启用,所有 API 无需认证即可访问。

Token 支持两种传递方式(优先级从高到低):

X-Access-Token: your-secret-token-here

示例:

Terminal window
curl -H "X-Access-Token: your-secret-token-here" \
http://localhost:5000/api/Task/status
?access_token=your-secret-token-here

示例:

Terminal window
curl "http://localhost:5000/api/Task/status?access_token=your-secret-token-here"

POST /api/Auth 端点无需认证,可用于验证 Token 是否有效:

Terminal window
curl -X POST http://localhost:5000/api/Auth \
-H "Content-Type: application/json" \
-d '{"token": "your-secret-token-here"}'

响应:

场景 响应
Token 匹配 {"success": true, "message": "authorized"}
Token 不匹配 {"success": false, "message": "unauthorized"}(HTTP 401)
未配置 Token {"success": true, "message": "No access token configured"}

MCP 端点(/mcp)独立于 REST API 认证体系,不使用 Token 认证。

当使用远程后端模式时,本地桌面端通过 HTTP 连接远程 SRA-server。此时需要在桌面端的设置中配置远程服务器的 URL 和 Token:

{
"advanced": {
"backend": {
"remote": {
"enabled": true,
"url": "http://192.168.1.100:5000",
"accessToken": "your-secret-token-here"
}
}
}
}