Logto 產品更新
Logto v1.42.0 帶來了自訂網域驗證檔案、支援萬用字元樣式的 Email 白名單、密碼重設一鍵登入連結、Grant.LimitExceeded webhook,以及協議層升級 node-oidc-provider v9、Koa 3,且預設啟用 SSRF 防護。
Logto v1.42.0 帶來了自訂網域驗證檔案、支援萬用字元樣式的 Email 白名單、密碼重設一鍵登入連結、Grant.LimitExceeded webhook,以及協議層升級 node-oidc-provider v9、Koa 3,且預設啟用 SSRF 防護。
Logto v1.42.0 是一個針對網域和協議的重要發佈。它讓團隊能在不額外架設主機下完成網域所有權驗證,並對哪些 Email 可以註冊有更細緻的管控,還讓終端使用者的密碼重設流程更加流暢。在技術層面,Logto 升級到 node-oidc-provider v9 與 Koa 3,並將 OIDC 外部請求的 SSRF 防護預設打開。以下是本次更新重點。
第三方服務常常要求你在固定路徑提供一個小檔案來驗證網域所有權。過去這代表你需要額外架設主機配合 Logto 的自訂網域。
你現在可以在 Console > Tenant settings > Domains 直接為啟用中的自訂網域附加驗證檔案。每個檔案包含:
/verify.txt),或者 /.well-known/ 下的路徑。text/plain 或 application/json。若為 JSON,儲存前會驗證格式。每個網域最多可配置 10 個驗證檔,且路徑不可重複。Logto 只對精確的 GET 與 HEAD 請求提供對應內容與標頭強化。若驗證檔案路徑和現有 Logto 路由重疊,永遠會以 Logto 內建路徑為主,因此設定錯誤的檔案也不會覆蓋真實的端點。Console 亦支援全語言在地化體驗。
由於 Logto 不會解析檔案內容,因此你可以自行對接任何供應商的驗證需求,無需 Logto 支援特定方案。
Email 黑名單政策擴展為完整的 Email 存取規則,可於 Console > Security > Email blocklist 設定。
自訂 Email 白名單。你可建立 Email 地址、網域或萬用字元樣式的白名單。設置白名單後,只有符合條件的 Email 才可新註冊、綁定(不論是 Email 註冊還是帳號 Email 更新)。
萬用字元樣式。白名單和黑名單都可接受萬用地址或網域,例如 foo*@example.com、*@example.com、@*.example.com,當然也支援精確地址([email protected])和網域(@example.com)。
衝突警示。設定白名單時,若與黑名單重疊,或白名單包含加號(+)而當前禁止 Email 子地址,或組合後無任何 Email 能通過,都會在 Console 發出警示。
這套比對與驗證邏輯藉由 @logto/core-kit 的共用 helper 實作,因此所有 Email 進入 tenant 的場景都能用到。
Experience app 現在支援在密碼重設頁直接透過一次性魔術連結完成驗證,除了原本支援的驗證碼方式外。
Grant.LimitExceeded webhook 事件當 OIDC 授權數量上限被超過導致授權被清除時,Logto 現會觸發 Grant.LimitExceeded webhook 事件。你可像其他 webhook 事件一樣在 Console 設定是否通知。
Webhook payload 包含 userId、applicationId、revokedGrantIds、maxAllowedGrants 與 preRevocationActiveGrantCount。推送採 fire-and-forget,失敗時會以 TriggerHook.Grant.LimitExceeded 寫入稽核日誌,且永不阻斷認證回應。
本次重要變更主在 token 撤銷的安全性修正。
撤銷 opaque access token 時,現在連帶撤銷同一 grant 下所有 token,包括 refresh token。在 v8 中,即使 access token 被撤銷,refresh token 仍可繼續換取新 access token。
v9 其他協議更新:
unsupported_token_type,不像 v8 回傳成功但實際未撤銷。/oidc/.well-known/oauth-authorization-server 授權伺服器資訊端點。at_hash claim。typ: "JWT" 標頭。OpenID Connect 已將 ID token 定義為 JWT,且未要求驗證這標頭。自訂 ID token 驗證需行動。若你用官方 Logto SDK,無需更動。自訂驗證請確保允許 at_hash 缺席,以及允許缺少 typ: "JWT" 標頭。
Logto 現行於 Koa 3(官方優先維護的版本),可即時收到安全性修補。預期沒有行為差異:所有端點、OIDC 流程、API 回應皆與以往相同。
identities 使用者範圍,與其他社群帳號和企業 SSO 相同。rediss 通訊協議時,Redis cluster 連線也會正確啟用 TLS 加密。jose 相依套件,因此安裝時不再拉入未實際使用的 package。操作必要 — OIDC provider SSRF 防護。 外部請求安全性增強,SSRF 防護現預設啟用。若需存取私有網路上的受信端點,請於啟動 Logto 前設 OIDC_PROVIDER_SSRF_PROTECTION_DISABLED=true,否則可維持預設。
資料庫異動必須執行。 本版本附帶自訂網域驗證檔案、內部索引及資料表結構變更。升級後請先執行異動指令(npm run alteration deploy 於 @logto/cli/core 映像檔,或 logto db alteration deploy),詳情見 升級指南。
自訂 ID token 驗證。 at_hash 與 typ 標頭異動詳見 node-oidc-provider v9 區段。
感謝下列社群成員參與本次釋出:
Grant.LimitExceeded webhook 事件 (#9230) 及密碼無密碼連接器交易性替換 (#9277)rediss TLS 修正 (#9144)準備好升級了嗎?請參考 升級指南 獲得分步說明。
完整異動列表請見 GitHub 發布頁面。