- 添加 AMT Digest 认证服务 (AmtDigestService) - 添加 AMT 模拟服务用于测试 (AmtMockService) - 更新设备控制器支持 AMT 连接测试和设备信息获取 - 前端添加 AMT 自动添加方式,支持手动输入和凭证选择 - 移除 Basic 认证,仅使用 Digest 认证 - 添加 Apache HttpClient 依赖支持 Digest 认证 - 创建相关文档和测试脚本
6.0 KiB
6.0 KiB
AMT 设备添加功能说明
功能概述
在设备管理的设备列表页面,增强了"新增设备"功能,支持通过 Intel AMT(Active 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. 用户交互流程
- 点击"新增设备"按钮
- 选择"AMT 自动添加"方式
- 输入 IP 地址
- 选择认证方式:
- 手动输入:填写用户名和密码
- 使用凭证:从下拉框选择已保存的凭证
- 点击"测试连接"
- 连接成功后,自动填充设备信息
- 确认并保存设备
使用说明
前置条件
- AMT 设备已启用并配置
- AMT 设备网络可达
- 已知 AMT 管理员账号密码
- (可选)在"AMT 设置"中预先保存凭证
操作步骤
-
进入设备列表页面
- 导航到:设备管理 > 设备列表
-
点击新增设备
- 点击页面右上角的"新增设备"按钮
-
选择 AMT 自动添加
- 在弹出的对话框中选择"AMT 自动添加"单选按钮
-
输入 AMT 设备信息
- IP 地址:输入 AMT 设备的 IP 地址
- 认证方式:
- 方式一:切换到"手动输入",填写用户名和密码
- 方式二:切换到"使用已保存凭证",从下拉框选择凭证
-
测试连接
- 点击"测试连接"按钮
- 等待测试结果
- 成功后会显示绿色的"连接成功"标签
-
确认设备信息
- 系统自动填充设备名称、UUID、IP地址、MAC地址
- 可以修改设备名称和备注
- 选择设备状态
-
保存设备
- 点击"确定"按钮保存设备
注意事项
-
网络连接
- 确保服务器能够访问 AMT 设备的 16992 端口
- 检查防火墙设置
-
AMT 配置
- AMT 设备必须已启用并配置
- 确认 AMT 管理员账号可用
-
安全性
- 建议使用已保存的凭证而不是每次手动输入
- 定期更新 AMT 密码
-
错误处理
- 连接失败时会显示具体错误信息
- 常见错误:
- 网络不可达
- 认证失败
- AMT 未启用
文件清单
后端文件
backend/src/main/java/com/soybean/admin/service/AmtDigestService.java- AMT Digest 认证服务backend/src/main/java/com/soybean/admin/dto/AmtTestRequest.java- 测试请求 DTObackend/src/main/java/com/soybean/admin/dto/AmtDeviceInfo.java- 设备信息 DTObackend/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- 本说明文档
测试建议
-
单元测试
- 测试 AMT 连接功能
- 测试设备信息获取
- 测试凭证集成
-
集成测试
- 使用真实 AMT 设备测试
- 测试不同的认证方式
- 测试错误处理
-
用户测试
- 测试完整的添加流程
- 验证用户体验
- 收集反馈
未来改进
-
批量发现
- 支持 IP 段扫描
- 批量添加多个设备
-
更多设备信息
- 获取 CPU、内存等硬件信息
- 获取 AMT 版本信息
- 获取设备序列号
-
高级功能
- 支持 TLS 加密连接
- 支持证书认证
- 支持 Kerberos 认证
-
监控集成
- 定期检查设备状态
- AMT 事件日志收集
- 设备健康度监控
故障排除
问题:连接超时
原因:网络不可达或防火墙阻止 解决:
- 检查网络连接
- 确认防火墙规则
- 验证 AMT 端口 16992 是否开放
问题:认证失败
原因:用户名或密码错误 解决:
- 确认 AMT 管理员账号
- 重置 AMT 密码
- 检查凭证配置
问题:无法获取设备信息
原因:AMT 未完全配置或版本不兼容 解决:
- 检查 AMT 配置状态
- 确认 AMT 版本
- 查看 AMT 日志