身分與密碼安全
Arova Nexus

本指南說明 Arova Nexus 的身分驗證基礎能力:首次安裝開通、密碼安全策略、登入鎖定與緊急解鎖。撰寫對象為 IT 管理員與一般使用者。

概覽

Arova Nexus 在首次安裝後,由管理員透過一次性的 bootstrap 流程開通第一個帳號。後續所有需要密碼的操作(建立使用者、改密、Admin 重置)都套用同一套密碼安全策略:強度規則、連續失敗鎖定、密碼到期、緊急解鎖。

策略以「產品下限 + 客戶可調」的兩層結構運作 — 系統保留一條不可低於的底線(符合金融業 baseline),管理員可在底線之上自由調嚴。


1. 首次安裝 bootstrap

適用角色: 管理員 / 交付工程師
前置條件: 平台已部署、HTTPS 已啟用、尚未建立任何帳號

操作步驟

  1. 開啟平台網址(任何 URL 都會被自動重導向 /bootstrap
  2. 在 bootstrap 表單填寫第一個 Admin 帳號資訊:
    • 使用者名稱(username)
    • 顯示名稱
    • Email
    • 密碼(需通過強度檢查)
  3. 表單下方的強度檢查指示器會即時顯示密碼是否符合策略;所有檢查項打勾後提交按鈕變為可點選
  4. 點選提交

結果

系統會建立第一個 Admin 帳號、自動登入、並導向 Dashboard。畫面右上角會顯示「歡迎 <顯示名稱>」的 toast。同一時間系統會寫入第一筆稽核紀錄(操作者 system_init、動作 bootstrap_admin),由稽核紀錄能力保存。

常見問題


2. 密碼強度策略

適用角色: 管理員
前置條件: 已以 Admin 登入

策略結構

層級 規則 可調整?
產品下限 至少 8 字 + 含數字 ❌ 不可低於此線
預設策略 12 字 + 大小寫 + 數字 + 特殊符號 ✅ 可調(但不可低於產品下限)
客戶策略 由管理員設定 ✅ 在產品下限以上自由調整

操作步驟

  1. 點選頂部選單 設定
  2. 在左側選擇 安全性策略
  3. 調整以下欄位:
    • 最少字數(產品下限 8 字以上)
    • 必須包含類型(數字 / 大小寫 / 特殊符號)
    • 密碼到期天數(預設 90 天)
  4. 點選儲存

結果

策略立即生效。下一次有任何使用者改密或建立新帳號時,會套用新策略。系統會寫一筆稽核紀錄(動作 password_policy_update,含變更前後差異)。

⚠️ 注意: 既有使用者的舊密碼不會因策略調嚴而立即失效,但下次改密時必須符合新標準。如果需要強制全員改密,使用強制改密功能。

常見問題


3. 連續登入失敗鎖定

適用角色: 所有使用者(被動觸發)/ 管理員(緊急解鎖)

觸發規則

一般使用者遇到鎖定

  1. 登入頁顯示紅色 banner:「帳號已鎖定,15 分鐘後重試或聯絡管理員」
  2. 倒數計時顯示剩餘時間
  3. 等待倒數結束,再輸入正確密碼即可登入

管理員緊急解鎖

  1. 點選頂部選單 使用者管理
  2. 找到被鎖定的帳號(狀態欄會顯示「鎖定中」+ 倒數)
  3. 點選該列的 緊急解鎖
  4. 在確認對話框點選確認解鎖

結果

帳號狀態立即恢復為「正常」,失敗計數歸零。系統寫一筆稽核紀錄(動作 account_unlocked_admin,含操作者與對象)。被解鎖的使用者下次以正確密碼登入即可成功。

常見問題


4. 密碼到期與強制改密

適用角色: 所有使用者 / 管理員(手動標記)

自動到期

階段 系統行為
密碼建立後 < 83 天 正常使用,無提示
距到期 ≤ 7 天 登入後顯示非阻斷式 banner「密碼將於 N 天後到期」
到期當天起 登入後強制導向改密頁,必須完成改密才能存取其他頁面

一般使用者收到強制改密

  1. 以正確密碼登入後,畫面自動導向改密
  2. 輸入:
    • 舊密碼
    • 新密碼(須通過強度檢查)
    • 確認新密碼
  3. 點選儲存

管理員手動標記強制改密

  1. 點選頂部選單 使用者管理
  2. 找到目標使用者
  3. 勾選 下次登入強制改密
  4. 點選儲存

結果

目標使用者下次登入時,會被導向改密頁直到完成新密碼設定。系統寫稽核紀錄(動作 force_password_change_set)。改密完成後自動導向 Dashboard。

常見問題


狀態總覽

+------------------+        +-----------+        +-----------+
| 帳號未建立        |  bs    | 正常       |  fail*5| 鎖定中     |
| bootstrap=false  +-------->            +-------->            |
+------------------+        +-----+-----+        +-----+-----+
                                  |                    |
                                  | password_age>=90   | timer=15min OR admin unlock
                                  v                    v
                            +-----+-----+        +-----+-----+
                            | 強制改密   |        | 正常       |
                            |           |        | (counter=0)|
                            +-----------+        +-----------+
狀態 進入條件 離開條件
帳號未建立 系統 cold start 完成 bootstrap
正常 bootstrap 成功 / 解鎖 / 改密完成 5 次失敗 / 密碼到期
鎖定中 連續 5 次失敗 15 分鐘倒數結束 / 管理員緊急解鎖
強制改密 密碼到期 / 管理員標記 改密成功

Edge Cases 速查

情境 觸發條件 系統行為 你的下一步
Bootstrap 過程中後端錯誤 DB 寫入失敗 表單狀態保留、顯示「儲存失敗」 重試重新提交
兩瀏覽器同時 bootstrap A 先提交 B 收 409 + 導向 /login 改用登入
鎖定期間正確密碼登入 鎖定未到期 拒絕 + 顯示倒數 等待或請管理員緊急解鎖
攻擊者換 IP 嘗試 同帳號跨 IP 仍判定為鎖定
改密中 session 過期 30 分鐘無操作 提示重新登入 重登後再改密
失敗訊息洩漏帳號是否存在? 攻擊者試不存在的 username 系統回應與「密碼錯誤」相同

相關章節