Logto 產品更新 (2024 年 8 月)
探索我們 2024 年 8 月的釋出版本,包含用戶模擬、應用程式機密管理、組織和應用程式級別的登入體驗品牌化等等。
用戶模擬 (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 欄位的更新模式從merge
到replace
。 - 更新了
PATCH /api/applications/{applicationId}
端點中 API jsonb 欄位輸入參數的驗證從partial
到full
。 - 受影響的欄位:
oidc_client_metadata
、custom_client_metadata
、protected_app_metadata
和custom_data
。
注意:如果你使用 Logto console 更新
Application
設置,你應不會受此更改影響。使用 API 並使用PATCH
方法更新Application
jsonb 欄位設置的用戶應注意此更改。PATCH
方法現在將用新輸入數據替換整個 jsonb 欄位。任何受影響欄位的部分輸入數據將被拒絕。
修復一些 webhook 事件負載總是返回 API 響應狀態 404 的問題
受影響的 webhook 事件:Role.Scopes.Updated
、Organizations.Membership.Updates
。
從 webhook 事件負載返回的 API 響應狀態碼總是 404。這是因為在設置 API 響應上下文之前插入了 webhook 事件負載。
因為我們只有在事件成功處理時觸發 webhook,所以狀態碼應該是 2xx。
此問題已經通過在設置 API 響應上下文之後插入 webhook 事件負載的方式修復。
其他改進
- 現在可以在登入體驗品牌化設置中設置暗色主題的圖示。
- 添加新的密碼摘要算法:
Argon2d
和Argon2id
。使用這些算法的用戶將在成功登入時遷移到Argon2i
。 - 與
README.md
中聲明的內容同步@logto/experience
的瀏覽器列表配置。 - 改進 swagger 認證描述。使用原生 OpenAPI OAuth2 安全方案替代自定義 HTTP 標頭為基礎的安全方案。