設計安全的使用者驗證與授權邏輯,需要絕對清晰。從多重因素驗證(MFA)迴圈到具備 PKCE 的 OAuth 2.0 授權碼授權,以視覺化方式呈現權杖交換與安全邊界,可避免關鍵的實作缺陷。本指南提供逐步的 UML 活動圖範例、PlantUML 源碼,以及系統架構師與開發人員可直接使用的 AI 提示。
範例 1:具備 MFA 的標準使用者名稱/密碼登入
此活動圖描繪了完整的憑證驗證流程,包含暴力破解速率限制與多重因素驗證(MFA)權杖驗證。
關鍵建模概念:
- 泳道區隔:區分使用者介面(客戶端應用程式)、API 後端,以及資料庫/身分識別提供者。
- 條件守衛條件:評估密碼有效性與帳戶鎖定狀態。
PlantUML 程式碼:
@startuml
|客戶端應用程式|
start
:輸入使用者名稱與密碼;
:按「登入」;
|驗證 API|
:驗證請求資料;
if (速率限制已超過?) then ([是])
|客戶端應用程式|
:顯示「請求過多」提示;
stop
else ([否])
|資料庫 / IDP|
:取得帳戶與密碼雜湊;
endif
|驗證 API|
if (密碼相符?) then ([否])
:增加失敗嘗試次數;
|客戶端應用程式|
:顯示「憑證無效」錯誤;
stop
else ([是])
|驗證 API|
if (MFA 已啟用?) then ([是])
|客戶端應用程式|
:提示輸入六位數 MFA 碼;
:提交 MFA 碼;
|驗證 API|
if (MFA 合法?) then ([是])
:產生會話權杖;
else ([否])
|客戶端應用程式|
:顯示「MFA 碼無效」錯誤;
stop
endif
else ([否])
|驗證 API|
:產生會話權杖;
endif
endif
|客戶端應用程式|
:安全儲存 JWT 並重導向至儀表板;
stop
@enduml AI 聊天機器人提示:
「產生一個具備 MFA 的使用者登入流程的 UML 活動圖。使用泳道:客戶端應用程式、驗證 API 與資料庫/IDP。檢查速率限制,驗證密碼雜湊,若 MFA 已啟用,則在發放會話權杖前提示輸入六位數代碼。」
範例 2:具備 PKCE 的 OAuth 2.0 授權碼流程
具備 Code Exchange 證明金鑰(PKCE)的 OAuth 2.0 授權碼授權,是單頁應用程式(SPAs)與行動應用程式的業界標準。以視覺化方式呈現程式碼挑戰與權杖交換,可確保完整遵循協定。
關鍵建模概念:
- 平行產生:產生
code_verifier與代碼挑戰在啟動瀏覽器之前並行執行。 - 跨域授權:映射客戶端、授權伺服器和資源伺服器之間的重定向。
PlantUML 程式碼:
@startuml
|客戶端應用程式 (SPA)|
開始
分叉
:產生 PKCE 代碼驗證器;
分叉再次
:推導 PKCE 代碼挑戰 (SHA256);
結束分叉
:將瀏覽器重定向至帶有挑戰的授權伺服器;
|授權伺服器|
:提示使用者登入與同意;
|使用者|
:批准範圍並授權;
|授權伺服器|
:發行短期授權碼;
:重定向至客戶端重定向網址;
|客戶端應用程式 (SPA)|
:提取授權碼;
:將代碼 + PKCE 代碼驗證器傳送至權杖端點;
|授權伺服器|
:驗證代碼驗證器是否符合代碼挑戰;
如果 (驗證成功?) 那麼 ([是])
:發行存取權杖與重新整理權杖;
|客戶端應用程式 (SPA)|
:將存取權杖儲存在記憶體中;
:取得受保護的使用者資料;
否則 ([失敗])
|客戶端應用程式 (SPA)|
:顯示授權錯誤;
結束如果
停止
@enduml
AI 聊天機器人提示:
「為 OAuth 2.0 授權碼流程搭配 PKCE 建立活動圖。顯示 code_verifier 與 code_challenge 的並行產生、重定向至授權伺服器、使用者同意、代碼兌換,以及權杖驗證。」
範例 3:JWT 權杖驗證與靜默重新整理流程
安全地管理 API 授權需要在每次請求時驗證 JSON Web 權杖 (JWT),並透過背景重新整理權杖靜默更新已過期的權杖,而不會中斷使用者體驗。
關鍵建模概念:
- 非同步復原迴圈:當收到「
401 未授權」回應時,請求新的存取權杖。 - 會話過期處理:當重新整理權杖本身過期時,清除本地儲存並重定向至登入畫面。
PlantUML 程式碼:
@startuml
|客戶端應用程式|
開始
:以承載權杖傳送 API 請求;
|API 網關|
:檢查授權標頭;
如果 (權杖有效且未過期?) 那麼 ([有效])
:將請求轉發至微服務;
|客戶端應用程式|
:接收 API 資料負載;
停止
否則 ([已過期 / 401])
|客戶端應用程式|
:攔截 401 錯誤;
:將重新整理權杖傳送至授權端點;
|授權 API|
如果 (重新整理權杖有效?) 那麼 ([是])
:發行新的存取權杖;
|客戶端應用程式|
:在記憶體中更新存取權杖;
:重新嘗試原始 API 請求;
停止
否則 ([已過期 / 已撤銷])
|客戶端應用程式|
:清除儲存的權杖;
:將使用者重定向至登入畫面;
停止
結束如果
結束如果
@enduml
AI 聊天機器人提示:
「產生一個活動圖,顯示 JWT 權杖驗證與靜默重新整理。如果存取權杖有效,則提供 API 資料。如果已過期(401),嘗試靜默重新整理權杖。如果重新整理權杖也已過期,則清除本地儲存並重定向至登入畫面。」
安全與授權工作流程的提示工程
當使用「AI 活動圖工具」來建模安全協議時,精確的措辭可確保正式的安全邊界被清晰地映射:
- 明確命名安全實體:明確提及權杖、驗證碼與雜湊值(例如:「JWT 存取權杖」, 「code_challenge」, 「bcrypt 散列」) 以便 AI 能正確標記節點。
- 定義正常與異常路徑:明確指定失敗流程(例如,「如果 MFA 失敗,顯示錯誤。如果速率限制超出,回傳 429 Too Many Requests」).
- 指定信任邊界:使用泳道區分客戶端執行(不受信任的瀏覽器/行動應用程式)與伺服器端執行(受信任的 API 網關/資料庫)。
在 Visual Paradigm 中結合 AI 生成與圖形即程式碼
設計安全架構需要快速迭代並搭配嚴格的版本控制。這款AI 繪圖聊天機器人在 Visual Paradigm 中提供完整的端對端工作流程:
- 對話式驗證圖形生成:以複雜的安全協議提示 AI UML 工具,並在數秒內獲得語法正確的 PlantUML 或 Mermaid 程式碼。
- 使用 VPasCode 編輯:將生成的驗證圖形直接匯出至VPasCode以進行微調。
- OpenDocs 中的安全標準作業程序:將活動圖嵌入 OpenDocs,以建立全面的安全架構審查、開發人員入職指南,以及 SOC 2 / ISO 27001 審計文件。
- 互動式會話分享:與同儕開發人員和安全審計人員分享直接的聊天會話網址,以快速獲得協作反饋。
透過VP Online 專業版或在您的桌面 IDE 環境中使用VP Desktop 專業版.
常見問題
為何選擇 UML 活動圖而非序列圖來描述 OAuth 2.0?
雖然序列圖擅長展示系統之間按時間順序傳遞訊息,活動圖在說明決策邏輯、條件性令牌刷新以及並行任務(例如並行的PKCE雜湊生成)方面更為優越。
我可以將生成的驗證圖表匯出,以便在VP Desktop中編輯嗎?
可以。由AI繪圖聊天機器人生成的圖表可直接在Visual Paradigm Desktop或Visual Paradigm Online中打開並編輯,以進行進一步的視覺優化。
AI聊天機器人是否能保證安全圖表的語法錯誤率很低?
可以。與通用的AI聊天工具不同,Visual Paradigm使用專門訓練過的模型,這些模型專門設計用於生成正確的UML和PlantUML圖表語法,錯誤率極低。












