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

6.0 KiB
Raw Blame History

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 日志

参考资料