繁體中文(台灣)
  • release

Logto 產品更新

Logto v1.40.0 帶來了稽核日誌的時間範圍選擇器、更豐富的組織成員 WEBHOOK 載荷、大型組織效能大幅提升,還有多項自架設品質改進。

Yijun
Yijun
Developer

不要在使用者認證上浪費數週時間
使用 Logto 更快地發布安全應用程式。幾分鐘內整合使用者認證,專注於您的核心產品。
立即開始
Product screenshot

Logto v1.40.0 是一個加強平台韌性的版本。它讓稽核日誌可在大規模下實用,告訴你組織成員 Webhook 到底改了什麼,加速大型租戶的組織查詢,並移除了自架設部署上一些長久以來的卡點。這次還有三個新連接器加入。以下是亮點內容。

你真的能範圍篩選的稽核日誌

當事情剛發生時,稽核日誌才最好用——但直到現在,Console 都是抓整個無範圍的日誌窗口,這讓日誌量很大的租戶變得很慢。

這次發佈在稽核日誌頁新增了時間範圍選擇器,預設是最近 7 天。你能用預設的時間段(最近 1 小時最近 24 小時最近 7 天最近 30 天)和自訂日期範圍,只要調大時間窗口就能查更早的日誌(#8810)。

底層上,管理 API 在 GET /api/logsGET /api/hooks/{id}/recent-logs 提供了 start_timeend_time 查詢參數(unix 毫秒,區間為左閉右開),你也可以用程式化方式查詢(#8806)。和非常巨大的租戶相關,一個新的 enableCap=true 參數會讓 count 查詢遇到約 10,000 筆就終止,並回應 Total-Number-Is-Capped: true 標頭,不再追求精確總數以避免 statement_timeout;Console 當碰到 cap 時會自動跳回上一頁/下一頁分頁(#8796, #8802)。沒給這參數時,一切保持原樣。

組織成員 Webhook 現在能告訴你改了哪些

Organization.Membership.Updated Webhook 以前只會說成員有變,但不會說變了什麼。現在額外帶有 delta 字段——addedUserIds / removedUserIdsaddedApplicationIds / removedApplicationIds——橫跨成員端點,還有邀請接受和即時配置(email 網域與企業 SSO JIT)的 addedUserIds#8840)。

這是完全新增、非破壞性的——空變更會省略,每個陣列最多顯示 5000 筆(大批操作時請用 GET /organizations/:id/users.../applications 來對比)。更完整內容請看 Webhook 參考文件。這工作也取代了早期社群提案——感謝 @chiche84#8752)。

也順手在 session 代碼裡讓 GET /api/my-account/sessions 回傳每筆紀錄的 isCurrent 標記,方便 session 管理介面標註「這個裝置」並避免自爆當前 session(#8731)。

組織規模增大還是很順暢

多項調整專為用戶、組織都很多的租戶:

  • GET /organizations/:id/users 現在用 LATERAL 子查詢先聚合角色,LIMIT 能在抓角色前先精簡用戶集——不再每次分頁都組出滿滿的 members × roles 關聯(#8826)。
  • 兩個新的二級索引加快反向查找:一個在 organization_user_relations (tenant_id, user_id),登入跟 membership middleware 都會用到(#8818);另一個在 organization_role_user_relations (tenant_id, organization_id, user_id),被 getUserScopes 跟每位用戶角色查詢用到(#8819)。
  • PUT /organizations/:id/users 改用新型 delta 查詢,只寫真的變動過的行,而不是每次全部改一遍成員–同時保留沒刪掉用戶的角色指派(#8820)。

帳號中心與登入修正

  • 從登入補註冊時的條款。 若協議策略為「僅限註冊需勾選同意」,用未註冊的 email 或手機登入、再點建立新帳號,現在會先提示條款同意才創帳——跟新註冊和社群/SSO 體驗一致(#8835)。
  • 首次密碼設定。 沒有密碼、email 或手機的用戶,現可不用驗證記錄也能透過 Account API 設定第一組密碼(#8746)。
  • 靜默重新認證。 如果出現用戶資訊錯誤——比如換帳號但存有過期存取權杖,Account Center 會用 prompt=none 進行重新認證,不會直接跳到登入畫面,感謝 @taka-guevara#8785)。
  • Session 逾期 & 社交回呼提示更乾淨。 過期的帳號中心 session 會直接跳轉,不會先閃過登入錯誤(#8830);社交連結回呼現在正確讀取 connectorId#8758);兩步驗證的開關標籤也更清楚了(#8792)。
  • i18n。 更正了「Passkey」在 MFA 中文翻譯,感謝 @rotempasharel1#8870)。

新增接改善的連接器

這版加入三個連接器,也優化了其他好幾個——不少來自社群貢獻:

  • MailJunky 電子郵件連接器,用於發送交易型認證信,感謝 @devadarshh#8638)。
  • SMSBao 短信連接器,支援國內手機認證,感謝 @wintbiit#8871)。
  • 阿里雲 SMS 認證服務 連接器,感謝 @CertStone#8385)。
  • 阿里雲 Direct Mail 現在支援 Direct Mail 區域設定(#8892)。
  • 企業微信(WeCom) 通過額外 API 調用獲取更完整用戶資料,感謝 @liyujun-dev#8191)。
  • SMTP auth 現可省略 userpass,這樣用來源(如 IP/VLAN)驗證的轉發不需偽造帳密(#8888)。
  • Connector Kit 收緊電子郵件品牌網址判斷,避免含點縮寫被誤判,感謝 @aayushbaluni#8747)。

給自架設用戶

以下這些專為 OSS 部署優化:

隔離網路管理員快速安裝。 installdb seed 指令現在可以帶 --dapc 參數(別名 --disable-admin-pwned-password-check)。Admin 租戶預設的密碼政策會啟用 Have I Been Pwned 洩漏檢查,每次密碼提交都會查 api.pwnedpasswords.com ——但當外網連不上時,就會卡在第一次管理員註冊。加上 --dapc 會跳過這項檢查,因此註冊管理員不再依賴對外網路。(感謝 @darcyYe, #8859

直接從資料庫抓 admin 簽名金鑰。 OSS 部署現在直接從資料庫讀 admin 租戶簽名金鑰,不再需要額外 host/DNS 映射讓容器去拉自己的 OIDC 設定(#8869)。

必需升級資料庫。 v1.40.0 有資料庫結構變更(新組織關聯索引及新增內部欄位)。拉新版本後,務必先跑資料庫更新再啟動伺服器。詳見 升級教學

開始體驗

要更新了嗎?看我們的升級教學獲得詳細指引。

完整更新清單,請往 GitHub 發布頁

有問題或想回饋?來 Discord 聊聊,或到 GitHub 發 issue。