- 添加 AMT Digest 认证服务 (AmtDigestService) - 添加 AMT 模拟服务用于测试 (AmtMockService) - 更新设备控制器支持 AMT 连接测试和设备信息获取 - 前端添加 AMT 自动添加方式,支持手动输入和凭证选择 - 移除 Basic 认证,仅使用 Digest 认证 - 添加 Apache HttpClient 依赖支持 Digest 认证 - 创建相关文档和测试脚本
246 lines
6.0 KiB
Markdown
246 lines
6.0 KiB
Markdown
# 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. 用户交互流程
|
||
|
||
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)
|