用戶權限管理
📋 功能概述
私有雲端平台提供完整的用戶權限管理系統,讓教師可以精確控制學生對設備的存取權限,確保實驗環境的安全和有序。
👥 用戶類型說明
🔑 管理員 (admin)
適用對象:教師、系統管理員、實驗室負責人
權限範圍:
- ✅ 管理所有用戶帳戶(新增、編輯、刪除)
- ✅ 存取所有設備,無任何限制
- ✅ 編輯所有設備的名稱和設定
- ✅ 管理快捷指令庫
- ✅ 重啟設備
- ✅ 修改設備設定
- ✅ 查看所有操作記錄
使用情境:
情境:網路實驗課程
老師登入後可以看到教室內所有 20 台交換機的狀態,
可以同時監控學生的操作進度,必要時可以接管任何設備進行示範。
👨🎓 一般用戶 (user)
適用對象:學生、一般使用者
權限範圍:
- ✅ 存取被授權的設備
- ✅ 編輯被授權設備的設定
- ✅ 使用快捷指令功能
- ✅ 使用 ChatGPT 助手
- ❌ 無法管理其他用戶
- ❌ 無法存取未授權的設備
使用情境:
情境:學生實驗作業
學生 A 被分配到 Switch-01 和 Switch-02,
只能看到和操作這兩台設備,無法干擾其他同學的實驗。
🤖 ESP 設備 (esp)
適用對象:ESP32 Console Server 設備
權限範圍:
- ✅ 自動註冊到平台
- ✅ 回報設備狀態
- ✅ 接收控制指令
- ❌ 無法存取 Web 介面
🔌 API 用戶 (api)
適用對象:自動化腳本、第三方系統
權限範圍:
- ✅ 透過 API 存取被授權的設備
- ✅ 程式化控制設備
- ❌ 無法存取 Web 介面
🎯 設備存取控制
設定方式
管理員可以為每個用戶設定「設備限制」:
格式:MAC 地址列表,用逗號分隔
範例:aa:bb:cc:dd:ee:01,aa:bb:cc:dd:ee:02,aa:bb:cc:dd:ee:03
實際應用:
學生 A:aa:bb:cc:dd:ee:01,aa:bb:cc:dd:ee:02 (可存取 Switch-01, Switch-02)
學生 B:aa:bb:cc:dd:ee:03,aa:bb:cc:dd:ee:04 (可存取 Switch-03, Switch-04)
學生 C:留空 (可存取所有設備 - 不建議)
權限檢查機制
系統會在以下時機檢查權限:
- 🔍 登入時:檢查用戶類型和設備授權
- 🔍 操作時:每次設備操作都會驗證權限
- 🔍 連線時:WebSocket 連線建立時驗證
- 🔍 API 呼叫時:所有 API 請求都需要認證
🛠️ 管理操作指南
新增用戶
- 以管理員身份登入平台
- 點擊左上角的「用戶管理」按鈕
- 點擊「新增用戶」
- 填寫用戶資訊:
- 用戶名:英文和數字組合(如:student01)
- 密碼:建議使用強密碼
- 帳戶類型:選擇適當的用戶類型
- 設備限制:輸入允許存取的設備 MAC 地址
編輯用戶權限
- 在用戶列表中找到要編輯的用戶
- 點擊「編輯」按鈕
- 修改設備限制或其他設定
- 點擊「儲存」確認變更
刪除用戶
- 在用戶列表中找到要刪除的用戶
- 點擊「刪除」按鈕
- 確認刪除操作
🎓 教學應用範例
範例一:網路基礎課程
班級規模:30 人,15 組,每組 2 人 設備配置:15 台交換機
用戶設定:
teacher01 (管理員) → 可存取所有設備
group01_a (用戶) → 只能存取 switch-01
group01_b (用戶) → 只能存取 switch-01
group02_a (用戶) → 只能存取 switch-02
group02_b (用戶) → 只能存取 switch-02
...以此類推
教學流程: 1. 老師示範:使用管理員帳戶操作任一台設備 2. 學生實作:各組只能操作被分配的設備 3. 作業檢查:老師可以檢視所有設備的配置結果
範例二:進階路由課程
班級規模:20 人,10 組,每組 2 人 設備配置:10 台路由器 + 10 台交換機
用戶設定:
instructor (管理員) → 可存取所有設備
team01_leader (用戶) → 可存取 router-01, switch-01
team01_member (用戶) → 可存取 router-01, switch-01
team02_leader (用戶) → 可存取 router-02, switch-02
...以此類推
實驗設計: - 每組需要配置路由器和交換機的互連 - 組長負責路由器配置,組員負責交換機配置 - 兩人都能看到對方的操作,便於協作學習
🔒 安全性特色
密碼安全
- 加密儲存:所有密碼使用 bcrypt 哈希加密
- 強密碼政策:建議使用包含大小寫字母、數字的密碼
- 定期更換:建議定期更換密碼
連線安全
- HTTPS 加密:所有 Web 通訊都經過 TLS 加密
- 認證超時:WebSocket 連線 10 秒內必須完成認證
- 自動登出:提供安全的登出機制
操作記錄
- 完整日誌:記錄所有用戶操作
- 權限檢查:每次操作都驗證用戶權限
- 異常偵測:自動偵測異常存取行為
💡 最佳實務建議
🎯 用戶命名規則
建議格式:
- 學生:student01, student02, group01_a, group01_b
- 教師:teacher01, instructor, admin
- 特殊用途:demo_user, guest_user
🔑 密碼管理
- 初始密碼可以使用簡單規則(如:學號後四碼)
- 要求用戶首次登入後修改密碼
- 定期(每學期)重設密碼
📱 設備分配策略
- 固定分配:每個學生固定使用特定設備
- 輪流使用:定期輪換設備使用權
- 分組共用:同組學生共用設備
🎓 課程管理
- 每個課程創建專用用戶群組
- 課程結束後及時清理用戶帳戶
- 保留教學用的示範帳戶
💡 小提示:建議在學期開始前先建立所有用戶帳戶,並準備一份用戶名稱和密碼對照表,這樣開課時就能快速分發給學生使用!