Skip to content
Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » AI » 使用者驗證與 OAuth 2.0 流程活動圖

使用者驗證與 OAuth 2.0 流程活動圖

A two-column hero banner graphic for a guide on visualizing secure user authentication. The left side features bold white text on a blue background: 'USER AUTHENTICATION & OAUTH 2.0 FLOWS' and 'Mastering Multi-Factor Auth, PKCE & Diagram-as-Code.' The right side displays a clean, blended technical activity diagram (image_2.png style) or schematic layout (image_4.png style) illustrating a complete OAuth 2.0 process flow with secure nodes and tokens, using a blue and white color scheme.

設計安全的使用者驗證與授權邏輯,需要絕對清晰。從多重因素驗證(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圖表語法,錯誤率極低。