Logto 产品更新
Logto v1.43.0 增加了带有 OAuth 客户端 ID 元数据文档的动态应用、已签名的 SAML 认证请求、受限制的自定义 JWT 和 Actions 运行时、更强的令牌交换验证,以及为 webhook 和企业级 SSO 扩展的 SSRF 保护。
Logto v1.43.0 增加了带有 OAuth 客户端 ID 元数据文档的动态应用、已签名的 SAML 认证请求、受限制的自定义 JWT 和 Actions 运行时、更强的令牌交换验证,以及为 webhook 和企业级 SSO 扩展的 SSRF 保护。
Logto v1.43.0 扩展了应用程序与企业身份提供者的连接方式,同时加强了对令牌和出站请求的安全边界。此次更新引入了带有 OAuth 客户端 ID 元数据文档的动态应用、已签名的 SAML 认证请求,以及自定义 JWT 和 Actions 的统一运行时。本次发布还加固了令牌交换、webhook 和企业 SSO,同时带来了账户中心的改进、西班牙语(墨西哥)支持和稳定性修复。 以下是本次更新内容。
登录体验现已支持 es-MX(西班牙语,墨西哥)。
对于使用西班牙语(墨西哥)的用户,手机号输入默认使用墨西哥国家代码(+52)。本次发布还修复了列表格式器占位符,以及西班牙语区域中的剩余未翻译的 MFA 消息。
通过管理 API 配置的出站请求现在会被阻止,如果它们解析到回环、私有、链路本地、云元数据或其他特殊用途地址。
保护范围现已覆盖:
POST /api/hooks/:id/test。当建立连接时会检测 DNS 名称,所以解析到受保护地址的主机名会像字面 IP 地址一样被拒绝。
除了要求一方主题令牌外,Logto 现会验证作为 access_token 主体提交的 JWT 是否真正是访问令牌。
JWT 必须包含:
at+jwt 类型头部。client_id 声明。OIDC ID 令牌以及租户签名的其他 JWT 不再能替代访问令牌。无效的主题令牌会以 invalid_grant 拒绝。
第三方应用现已无法通过账户 API 或验证 API 变更账户数据。此类请求现在返回:
第一方应用(包括账户中心和控制台)不受影响。
对于未能解析的客户端标识符,检查将默认拒绝。包括已删除但 token 仍然有效的应用,以及标识符为元数据 URL 的 CIMD 客户端。
没有读取路由新增直接防护。然而,以下读取需要通过受保护路由创建的验证记录,因此第三方应用现已无法访问:
GET /api/my-account/grantsGET /api/my-account/sessionsGET /api/my-account/mfa-verifications/backup-codes对于已挂起用户,令牌签发和 userinfo 现在会以 invalid_grant 拒绝,与已删除用户的现有行为一致。
此行为适用于刷新令牌、授权码、设备码和令牌交换流程,即使某个早期令牌或会话吊销未正确完成。
从第三方应用的用户同意配置中移除某个权限后,现在会影响现有授权和新的授权请求。
invalid_scope 失败。insufficient_scope 失败。Sentinel 锁定计数器现已与账户查找使用相同的规范化标识符形式:
这避免了同一标识符的不同拼写各自创建尝试桶并削弱 maxAttempts。
手动解锁也会清理所有等价拼写,只要它们标识的是同一账户。升级后,先前用非规范拼写记录的锁定可能提前结束,但不会有用户被锁得更久。
redirect_to 必须使用 http 或 https。ES256,P-384 用 ES384,P-521 用 ES512。invalid_scope 和 insufficient_scope 消息现在会显示被拒绝的权限,而不是原生 {{error_description}} 或 {{scope}} 占位符。Accept-Language 权重值(如 en; q=0.7)现可正确解析。无效的权重值会安全降级,而不会导致 NaN。gmail.com 和 googlemail.com 视为等价,且忽略本地部分中的点。custom_profile_fields.entity_not_exists_with_names。POST /applications/:applicationId/user-consent-scopesPOST /organizations/:id/users/:userId/roles对于 HTTP 5xx 响应,Webhook POST 请求现在会重试最多三次,与文档约定一致。
鉴于重试后事件可能被多次投递,Webhook 接收方应幂等地处理事件。
Microsoft Azure AD 连接器现支持 disableEmailSync 选项。
默认情况下,连接器仍会将 Microsoft Graph 的 mail 属性复制到 Logto 用户资料。当你希望身份认证时不再同步邮件地址,可开启此选项,与 Azure OIDC 企业 SSO 的现有控制一致。
需要操作 — 出站请求保护:如 webhook 或企业 SSO 连接器确需访问内网服务,请于升级前将所需 IP 或 CIDR 加入 SSRF_ALLOWED_ADDRESSES:
只允许必要目的地比全局禁用保护更安全。
动态应用兼容性:配置 SSRF_ALLOWED_ADDRESSES 时,会禁用 CIMD,这样未认证的动态客户端无法借此白名单访问内网服务。设置 SSRF_PROTECTION_DISABLED=true 也会禁用 CIMD。
配置兼容性:OIDC_PROVIDER_SSRF_PROTECTION_DISABLED 作为 SSRF_PROTECTION_DISABLED 的别名仍被支持。这些变量仅适用于自托管部署。
脚本运行限制:自定义 JWT 与 Actions 脚本必须在 5 秒内完成,内存不得超过 128 MB,且返回值需可序列化为 JSON。
需要数据库迁移:本次更新带来新表结构与索引。升级后,需先运行数据库变更命令(在 @logto/cli/core 镜像使用 npm run alteration deploy,或 logto db alteration deploy),再启动新版本。详见升级指南。
非常感谢在本次发布贡献内容的社区成员:
Accept-Language 权重解析 (#9338)完整变更列表请参考更新日志。