admin/AMT_DEVICE_ADD_FEATURE.md
lvfengfree 8b07d8f52a feat: 实现 AMT 设备自动添加功能(仅 Digest 认证)
- 添加 AMT Digest 认证服务 (AmtDigestService)
- 添加 AMT 模拟服务用于测试 (AmtMockService)
- 更新设备控制器支持 AMT 连接测试和设备信息获取
- 前端添加 AMT 自动添加方式,支持手动输入和凭证选择
- 移除 Basic 认证,仅使用 Digest 认证
- 添加 Apache HttpClient 依赖支持 Digest 认证
- 创建相关文档和测试脚本
2026-03-01 14:51:35 +08:00

246 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AMT 设备添加功能说明
## 功能概述
在设备管理的设备列表页面,增强了"新增设备"功能,支持通过 Intel AMTActive Management Technology协议自动发现和添加设备。
## 功能特性
### 1. 两种添加方式
#### 手动添加
- 传统的手动输入设备信息方式
- 需要手动填写设备名称、UUID、IP地址、MAC地址等信息
#### AMT 自动添加
- 通过 AMT 协议自动发现设备
- 只需输入 IP 地址和认证信息
- 自动获取设备名称、MAC 地址等信息
- 自动生成 UUID
### 2. 认证方式
#### 直接输入
- 手动输入 AMT 用户名和密码
- 适合临时测试或一次性添加
#### 使用已保存凭证
- 从"AMT 设置"页面选择已保存的凭证
- 支持默认凭证快速选择
- 提高安全性和便捷性
### 3. 连接测试
- 提供"测试连接"按钮
- 验证 AMT 连接是否可用
- 测试成功后自动获取设备信息
- 显示连接状态反馈
## 技术实现
### 后端实现
#### 1. AmtDigestService.java
- 使用 WS-Management 协议与 AMT 设备通信
- 支持 Digest 认证HTTP Digest Auth
- 实现设备信息获取和连接测试
#### 2. 主要接口
**测试 AMT 连接**
```
POST /device/amt/test
{
"ipAddress": "192.168.1.100",
"username": "admin",
"password": "password"
}
{
"ipAddress": "192.168.1.100",
"credentialId": 1
}
```
**获取 AMT 设备信息**
```
POST /device/amt/getInfo
{
"ipAddress": "192.168.1.100",
"username": "admin",
"password": "password"
}
```
#### 3. WS-Management 协议
使用标准的 SOAP over HTTP 协议:
- 端口HTTP 16992, HTTPS 16993
- 认证HTTP Digest Authentication
- 协议WS-Management (WSMAN)
### 前端实现
#### 1. 设备列表页面增强
- 添加方式选择(单选按钮)
- AMT 设备发现表单
- 认证方式切换(开关)
- 凭证选择下拉框
- 测试连接按钮和状态显示
#### 2. 用户交互流程
1. 点击"新增设备"按钮
2. 选择"AMT 自动添加"方式
3. 输入 IP 地址
4. 选择认证方式:
- 手动输入:填写用户名和密码
- 使用凭证:从下拉框选择已保存的凭证
5. 点击"测试连接"
6. 连接成功后,自动填充设备信息
7. 确认并保存设备
## 使用说明
### 前置条件
1. AMT 设备已启用并配置
2. AMT 设备网络可达
3. 已知 AMT 管理员账号密码
4. (可选)在"AMT 设置"中预先保存凭证
### 操作步骤
1. **进入设备列表页面**
- 导航到:设备管理 > 设备列表
2. **点击新增设备**
- 点击页面右上角的"新增设备"按钮
3. **选择 AMT 自动添加**
- 在弹出的对话框中选择"AMT 自动添加"单选按钮
4. **输入 AMT 设备信息**
- IP 地址:输入 AMT 设备的 IP 地址
- 认证方式:
- 方式一:切换到"手动输入",填写用户名和密码
- 方式二:切换到"使用已保存凭证",从下拉框选择凭证
5. **测试连接**
- 点击"测试连接"按钮
- 等待测试结果
- 成功后会显示绿色的"连接成功"标签
6. **确认设备信息**
- 系统自动填充设备名称、UUID、IP地址、MAC地址
- 可以修改设备名称和备注
- 选择设备状态
7. **保存设备**
- 点击"确定"按钮保存设备
### 注意事项
1. **网络连接**
- 确保服务器能够访问 AMT 设备的 16992 端口
- 检查防火墙设置
2. **AMT 配置**
- AMT 设备必须已启用并配置
- 确认 AMT 管理员账号可用
3. **安全性**
- 建议使用已保存的凭证而不是每次手动输入
- 定期更新 AMT 密码
4. **错误处理**
- 连接失败时会显示具体错误信息
- 常见错误:
- 网络不可达
- 认证失败
- AMT 未启用
## 文件清单
### 后端文件
- `backend/src/main/java/com/soybean/admin/service/AmtDigestService.java` - AMT Digest 认证服务
- `backend/src/main/java/com/soybean/admin/dto/AmtTestRequest.java` - 测试请求 DTO
- `backend/src/main/java/com/soybean/admin/dto/AmtDeviceInfo.java` - 设备信息 DTO
- `backend/src/main/java/com/soybean/admin/controller/DeviceController.java` - 设备控制器(已更新)
### 前端文件
- `src/views/device/list/index.vue` - 设备列表页面(已更新)
- `src/service/api/device.ts` - 设备 API已更新
- `src/typings/api/device.d.ts` - 设备类型定义(已更新)
### 工具文件
- `rebuild_and_test_amt.bat` - 重新编译和测试脚本
- `AMT_DEVICE_ADD_FEATURE.md` - 本说明文档
## 测试建议
1. **单元测试**
- 测试 AMT 连接功能
- 测试设备信息获取
- 测试凭证集成
2. **集成测试**
- 使用真实 AMT 设备测试
- 测试不同的认证方式
- 测试错误处理
3. **用户测试**
- 测试完整的添加流程
- 验证用户体验
- 收集反馈
## 未来改进
1. **批量发现**
- 支持 IP 段扫描
- 批量添加多个设备
2. **更多设备信息**
- 获取 CPU、内存等硬件信息
- 获取 AMT 版本信息
- 获取设备序列号
3. **高级功能**
- 支持 TLS 加密连接
- 支持证书认证
- 支持 Kerberos 认证
4. **监控集成**
- 定期检查设备状态
- AMT 事件日志收集
- 设备健康度监控
## 故障排除
### 问题:连接超时
**原因**:网络不可达或防火墙阻止
**解决**
- 检查网络连接
- 确认防火墙规则
- 验证 AMT 端口 16992 是否开放
### 问题:认证失败
**原因**:用户名或密码错误
**解决**
- 确认 AMT 管理员账号
- 重置 AMT 密码
- 检查凭证配置
### 问题:无法获取设备信息
**原因**AMT 未完全配置或版本不兼容
**解决**
- 检查 AMT 配置状态
- 确认 AMT 版本
- 查看 AMT 日志
## 参考资料
- [Intel AMT SDK Documentation](https://software.intel.com/sites/manageability/)
- [WS-Management Protocol](https://www.dmtf.org/standards/ws-man)
- [Intel vPro Technology](https://www.intel.com/content/www/us/en/architecture-and-technology/vpro/vpro-technology-general.html)