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
,用于将subject_token
交换为用户模拟的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
字段,请告诉我们。
应用级别的品牌化设置
现在可以为你的应用设置标志、图标和颜色。这些设置将在应用程序启动身份验证流程时在登录体验中使用。对于没有品牌设置的应用,将使用通用登录体验品牌。
如果身份验证请求中提供了 organization_id
,并且组织有可用的品牌设置,应用级别的品牌设置将被组织品牌设置覆盖。
性能改进
支持体验应用的服务端渲染
Logto 现在将登录体验设置和短语注入到 index.html
文件中,以提高首屏性能。如果:
- 服务器未注入设置和短语。
- URL 中的参数与服务器渲染的数据不同。
体验应用仍将从服务器获取设置和短语。
包构建改进
- 使用
tsup
构建连接器包。这将加快构建过程,并且不应影响包的功能。 - 使用
Vite
进行@logto/console
、@logto/demo-app
和@logto/experience
包的转译和打包。移除了 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
设置,则不应受到此更改的影响。使用 APIPATCH
方法更新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
。 @logto/experience
的浏览器列表配置已与README.md
中所述的同步。- 改进 Swagger 身份验证描述。使用原生 OpenAPI OAuth2 安全方案,代替自定义 HTTP 头基安全方案。