繁體中文(香港)
  • release

Logto 產品更新

Logto v1.41.0 帶來應用程式層級存取控制、密碼過期政策、重磅升級的帳戶中心、可自訂用戶名及驗證碼規則、更安全的訊息傳遞,以及一系列協議/安全強化。

Sijie
Sijie
Developer

Stop wasting weeks on user auth
Launch secure apps faster with Logto. Integrate user auth in minutes, and focus on your core product.
Get started
Product screenshot

Logto v1.41.0 是一個著重於控制與安全的版本。它為團隊提供更細緻的方式決定誰可以存取每個應用程式,更完整的密碼生命週期控管,並為終端使用者帶來功能更豐富的帳戶中心。同時加強了驗證碼傳送、用戶名規則、SAML/OIDC 處理、多重認證重播保護,以及自架部署的升級路徑。以下是本次新功能。

應用程式層級存取控制

你現在可以直接在 Logto 中限制應用程式的存取。存取規則可指定到特定用戶、用戶角色、組織或組織角色。

當用戶不符合已設定的規則集時,Logto 會以拒絕存取頁面阻擋登入或存取流程,而不是讓請求繼續進行。這大大簡化了應用程式發佈、客戶專屬存取、內部工具防護及組織範圍管控,無需讓你的應用程式程式碼處理完整決策。

詳情見 應用程式層級存取控制文件

密碼過期政策

管理台現已支援租戶層級的密碼過期政策,路徑為 安全性 > 密碼政策

管理員可以啟用密碼過期、設定密碼有效天數,並可在用戶詳情頁手動使特定用戶的密碼過期。當密碼過期時,用戶必須透過已設定的恢復方式重設密碼,方可繼續以密碼登入。

單一登入 (SSO) 和通行密鑰簽入不受影響。沒有記錄密碼更換時間的現有用戶也會被妥善處理:Logto 會以啟用政策的時間作為起點,這樣他們可享有完整的有效期,而不會馬上被設為過期。

帳戶中心自助功能增強

帳戶中心正逐步成為終端用戶的完整自助身分平台。

本次更新加入了工作階段管理、已連接的第三方應用審查、個人資料管理、大頭照上傳、註冊收集個人資料時的大頭照上傳、獨立通行密鑰管理,以及用戶可設定的通行密鑰登入偏好。

帳戶中心的個人資料頁、註冊時自定義個人資料欄位,以及大頭照上傳端點,也正式脫離開發者功能閘門。

本次也修復了幾個重要問題:

  • 主題、平台及品牌色於 hydration 前載入,降低畫面閃爍。
  • 動態身份驗證僅限於用戶權限驗證記錄。
  • 當用戶沒有既有安全驗證方式時,社交身份可在未驗證密碼、電郵或電話的情況下連結。
  • 管理台用戶名編輯現已導向帳戶中心,以完成必要的驗證步驟。

用戶名及驗證碼政策

租戶層級用戶名政策現可在 管理台 > 登入體驗 > 註冊及登入 > 進階選項 中設定。

該政策涵蓋大小寫敏感、長度限制及允許字元類型,並強制應用於用戶端的所有用戶名寫入,包括註冊、完善個人資料、帳戶中心、帳戶 API 及 /me

切換為不區分大小寫的用戶名時會做安全檢查:Logto 會檢查現有僅大小寫不同的用戶名並避免變更導致衝突,直到問題解決。OIDC preferred_username 聲明,當 profile.preferredUsername 未設定時,也會回退使用 username

驗證碼規則現也移至管理台安全設定。管理員可設定驗證碼有效期及最大重試次數。

更安全的訊息傳遞

Logto 現於系統層級對每個收件者的電郵/SMS 驗證及邀請路徑實施發送速率限制,覆蓋體驗、MFA、帳戶 API、管理 API、/me、組織邀請,以及舊版互動 API。

當發送被節流時,Logto 會發出 Message.RateLimited webhook 事件,可於管理台 webhook 設定開啟。

如註冊已禁用時,驗證碼不會傳送至未知收件者,降低帳戶探測風險。

JWT 自訂器與 API 改善

針對組織 API 資源權杖,access token 的 JWT 自訂器現會收到 context.organization,包含目標組織的 idnamedescriptioncustomData

這讓每個組織的聲明可輕易加到權杖,而無需每次嵌入所有組織對應。

也有數項 API 改善:

  • POST /api/applications/:applicationId/roles 現在為冪等,對已存在角色 ID 忽略處理,不會回傳 422 application.role_exists
  • 該端點現在以 201 回傳 { roleIds, addedRoleIds },格式與用戶角色指派 API 一致。
  • 建立組織角色時支援事務處理,不正確的 scope ID 不會造成部分角色殘留。

安全與協議強化

本次版本重點針對協議與安全漏洞作多項修正:

  • SAML IdP 自動提交表單現會跳脫 HTML 屬性值,並拒絕非 HTTP(S) 行動網址。
  • samlify 升級至 ^2.13.0,強化產生 SAML 斷言時的 XML 跳脫。
  • TOTP MFA 驗證會拒絕同一或舊時階代碼重播。
  • OIDC 請求正文若含空字節現回傳 400 invalid_request
  • 稽核日誌內容插入前會剔除空字節。
  • 電郵子位址黑名單檢查不再依賴用戶輸入動態生成正則表達式。
  • Logto Tunnel 防止靜態檔案請求讀取經驗目錄外的路徑。

相容性與儲存修正也已納入:舊版 Safari 及 iOS 15 不會再因不支援 lookbehind regex 導致啟動閃退,OIDC 企業連接器現可支援僅回應 JSON 的供應商進行探索性設定,自訂 UI 資源於 Azure Blob 傳輸失敗時,會映射成可重試的儲存下載錯誤。

新增及完善的連接器

本次版本加入和優化多項連接器功能:

  • 新增 SMTP2GO 電郵連接器,透過 SMTP2GO API 傳送授權郵件。
  • QQ 連接器支援以已儲存重導網址進行情社交身分驗證。
  • SAML 連接器同步 samlify 版本及更嚴謹的回傳型別。
  • 連接器工具包現導出 SMTP 郵箱通用解析及格式化工具,MailJunky 亦同時採用。

自架部署者須知

v1.41.0 需執行資料庫遷移。本次版本包含密碼過期、用戶名政策、驗證碼政策、訊息速率指標、帳戶中心預設值、服務日誌索引的 schema 變更。

升級後,請先運行資料庫更動指令再啟動新版。詳見 升級指南

CASE_SENSITIVE_USERNAME 環境變數現已棄用。雖仍可作為執行時覆寫,但用戶名大小寫敏感性應以新用戶名政策在租戶層級設定。該變數預計下個主要版本移除。

快速開始

準備好升級了嗎?請參閱 升級指南 取得分步驟說明。

完整變更內容見 GitHub 發佈頁

有疑問或反饋?歡迎加入 Discord 或於 GitHub 提問。