Logto 產品更新(2024 年 8 月)
探索我們 2024 年 8 月推出的版本,包含用戶模擬、應用程式機密管理、組織和應用層級的登入體驗品牌化等更多功能。
用戶模擬(RFC 8693:OAuth 2.0 令牌交換)
新增通過令牌交換的用戶模擬支持:
- 新的管理 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 編輯器(保護應用除外)。
多重應用機密管理
安全應用程式(機器對機器傳統 Web、保護的)現在可以擁有多重具有到期日的應用機密。這允許進行機密輪換並提供更安全的體驗 。
注意:此功能推出前創建的舊機密仍可用於客戶端身份驗證。但是,建議刪除舊機密並創建具有到期日的新機密以提高安全性。
點擊展開管理 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 控制台 -> 應用 -> 應用程式詳情 -> 端點和憑證。
原來的應用機密只讀輸入欄位現在已被新的機密管理表取代。在此表中你可以創建、更新和刪除機密。
組織和應用層級的品牌設置
組織標誌
現在可以為組織設置淺色和深色標誌。你可以在組織設置頁面上傳標誌。
同樣的,可以通過組織覆蓋默認的登入體驗標誌。只需在身份驗證請求中添加 organization_id
參數。在大多數 Logto SDK 中,可以在 signIn
方法中使用 extraParams
欄位來完成。
例如,在 JavaScript SDK 中:
值 <organization-id>
可以在組織設置頁中找到。
如果你無法在正在使用的 SDK 中找到 extraParams
欄位,請告訴我們。
應用層級品牌設置
你現在可以為你的應用設置標誌、favicon 和顏色。這些設置將在應用啟動身份驗證流程時用於登入體驗。對於沒有品牌設置的應用,將使用通用登入體驗品牌設置。
如果在身份驗證請求中提供了 organization_id
,應用層級的品牌設置將被組織的品牌設置覆蓋(如果有的話)。
性能提升
支持體驗應用服務器端渲染
Logto 現在將登入體驗設置和短語注入 index.html
文件,以改善首屏性能。如果:
- 服務器沒有注入設置和短語。
- URL 中的參數與服務器渲染的資料不同。
體驗應用仍會從服務器獲取設置和短語。
包構建改進
- 使用
tsup
構建連接器包。這將使構建過程更快,並且不應影響包的功能。 - 對
@logto/console
、@logto/demo-app
和@logto/experience
包使用Vite
進行轉譯和打包。移除 ParcelJS 並用 Vite 替代。不應預期有不兼容更改。
錯誤修正
修正 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 控制台更新
Application
設置,不應受到此更改影響。使用PATCH
方法更新Application
jsonb 欄位設置的 API 使用者應注意此更改。PATCH
方法現在將以新的輸入資料替換整個 jsonb 欄位。任何受影響欄位的部分輸入資料都將被拒絕。
修正某些 webhook 事件有效負載總是返回 API 響應狀態 404 的問題
受影響的 webhook 事件:Role.Scopes.Updated
、Organizations.Membership.Updates
。
Webhook 事件負載返回的 API 響應狀態碼總是 404。這是由於在設置 API 響應上下文之前插入 webhook 事件負載所致。
因為我們只有在事件成功處理時才觸發 webhook,所以狀態碼應始終為 2xx。
此問題已 通過在設置 API 響應上下文後插入 webhook 事件負載來修正。
其他改進
- 現在可以在登入體驗品牌設置中為深色主題設置 favicon。
- 新增密碼摘要算法:
Argon2d
和Argon2id
。使用這些算法的用戶將在成功登入時移行到Argon2i
。 @logto/experience
的瀏覽器清單配置已與README.md
中的聲明同步。- 改善 swagger 驗證描述。使用原生 OpenAPI OAuth2 安全方案代替自定義 HTTP 標頭安全方案。