繁體中文(台灣)
  • release

Logto 產品更新 (2024 年 8 月)

探索我們 2024 年 8 月的釋出版本,包含用戶模擬、應用程式機密管理、組織和應用程式級別的登入體驗品牌化等等。

Simeng
Simeng
Developer

用戶模擬 (RFC 8693: OAuth 2.0 Token Exchange)

新增透過 Token Exchange 的用戶模擬支持:

  • 新的管理 API 端點 POST /subject-tokens 用於請求用於令牌交換的 subject_token
  • 更新的 OIDC POST /oidc/token 端點,新增授權類型 urn:ietf:params:oauth:grant-type:token-exchange 以交換用戶模擬的 access_token

查看 用戶模擬 獲取更多詳情。

應用程式級別的 custom_data

在應用程式中新增了一個新的任意物件欄位 custom_data。此欄位可以儲存標準 Application 方案中未定義的其他資訊。

點擊展開管理 API 更新
  • 新的 PATCH /api/applications/{applicationId}/custom-data 端點以補丁更新應用程式的 custom_data 欄位。
  • 更新 PATCH /api/applications/{applicationId} 端點以允許覆蓋 custom_data 欄位。
點擊展開控制台更新

在應用程式詳細信息頁(受保護的應用除外)添加了一個新的自定義數據 JSON 編輯器。

多應用程式密鑰管理

安全應用程式(機器對機器、傳統網頁、受保護)現在可以擁有多個帶有過期時間的應用程式密鑰。這允許密鑰輪換並提供更安全的體驗。

注意:在此功能之前創建的舊密鑰仍可用於客戶端身份驗證。然而,建議刪除舊密鑰並創建帶有過期時間的新密鑰以增強安全性。

點擊展開管理 API 更新
  • GET /api/applications/{applicationId}/secrets:列出應用程式的所有密鑰。
  • POST /api/applications/{applicationId}/secrets:為應用程式創建一個新密鑰。
  • DELETE /api/applications/{applicationId}/secrets/{name}:按名稱刪除應用程式的密鑰。
  • PATCH /api/applications/{applicationId}/secrets/{name}:按名稱更新應用程式的密鑰。
  • DELETE /api/applications/{applicationId}/legacy-secret:刪除應用程式的舊密鑰並用新密鑰替換。
點擊展開控制台更新

要管理你的應用程式密鑰,請前往 Logto Console -> Applications -> Application Details -> Endpoints & Credentials。

原始的應用程式密鑰唯讀輸入欄位現在被新的密鑰管理表所取代。你可以在此表中創建、更新和刪除密鑰。

組織與應用程式級別的品牌化

組織徽標

現在可以為組織設置淺色和深色徽標。你可以在組織設置頁上傳徽標。

還可以從組織覆蓋登入體驗徽標。只需將 organization_id 參數添加到身份驗證請求中。在大多數 Logto SDK 中,可以在 signIn 方法中使用 extraParams 欄位完成。

例如,在 JavaScript SDK 中:

<organization-id> 可以在組織設置頁找到。

如果你在使用的 SDK 中找不到 extraParams 欄位,請告訴我們。

應用程式級別的品牌化

你現在可以為你的應用程式設置徽標、圖示和顏色。這些設置將在應用程式啟動身份驗證流程時使用於登入體驗。對於沒有品牌化設置的應用程式,將使用綜合登入體驗品牌化。

如果在身份驗證請求中提供了 organization_id,應用程式級別的品牌設置將被組織的品牌設置覆蓋(如果有)。

性能改進

支持體驗應用的服務器端渲染

Logto 現在將登入體驗設置和短語注入到 index.html 文件中以提高首屏性能。如果:

  • 服務器未注入設置和短語。
  • URL 中的參數與服務器渲染數據不同。

體驗應用仍會從服務器獲取設置和短語。

包構建改進

  • 使用 tsup 構建連接器包。這將使構建過程更快,並且應不會影響包的功能。
  • 使用 Vite 進行 @logto/console@logto/demo-app@logto/experience 包的轉譯和打包。移除 ParcelJS 並用 Vite 替換。不應有重大變動。

Bug 修復

修復 PATCH /api/applications/{applicationId} 端點的 jsonb 更新行為

Application 物件的所有 jsonb 欄位應以 replace 模式更新而不是 merge 模式。此更改將使 PATCH 方法更可預測並與 Restful API 設計更一致。

  • 更新 PATCH /api/applications/{applicationId} 端點中 jsonb 欄位的更新模式從 mergereplace
  • 更新了 PATCH /api/applications/{applicationId} 端點中 API jsonb 欄位輸入參數的驗證從 partialfull
  • 受影響的欄位:oidc_client_metadatacustom_client_metadataprotected_app_metadatacustom_data

注意:如果你使用 Logto console 更新 Application 設置,你應不會受此更改影響。使用 API 並使用 PATCH 方法更新 Application jsonb 欄位設置的用戶應注意此更改。PATCH 方法現在將用新輸入數據替換整個 jsonb 欄位。任何受影響欄位的部分輸入數據將被拒絕。

修復一些 webhook 事件負載總是返回 API 響應狀態 404 的問題

受影響的 webhook 事件:Role.Scopes.UpdatedOrganizations.Membership.Updates

從 webhook 事件負載返回的 API 響應狀態碼總是 404。這是因為在設置 API 響應上下文之前插入了 webhook 事件負載。

因為我們只有在事件成功處理時觸發 webhook,所以狀態碼應該是 2xx。

此問題已經通過在設置 API 響應上下文之後插入 webhook 事件負載的方式修復。

其他改進

  • 現在可以在登入體驗品牌化設置中設置暗色主題的圖示。
  • 添加新的密碼摘要算法:Argon2dArgon2id。使用這些算法的用戶將在成功登入時遷移到 Argon2i
  • README.md 中聲明的內容同步 @logto/experience 的瀏覽器列表配置。
  • 改進 swagger 認證描述。使用原生 OpenAPI OAuth2 安全方案替代自定義 HTTP 標頭為基礎的安全方案。