简体中文
  • release

Logto 产品更新:合规状态、自定义 JWT、组织角色的 API 资源等

我们很高兴分享最新的合规更新和新功能。对于 Logto 团队来说,这是一个富有成效的月份,所以在深入探讨之前,请确保你已经冲好了你最喜欢的咖啡。

Gao
Gao
Founder

合规状态

Logto Cloud 现在通过了合规自动化平台的所有 SOC 2 检查。我们已经安排了 SOC 2 Type I 审计,并正在努力进行 SOC 2 Type II 审计。

自定义 JWT

现在可以使用自定义 JavaScript 代码片段为 JWT 访问令牌添加额外的声明。这在你需要在令牌中包含自定义数据以与其他系统兼容时非常有用。

要使用此功能,请导航到 Console 中的“自定义 JWT”选项卡。用户和机器对机器 (M2M) 令牌都可以自定义。

自定义 JWT 页面

在部署更改之前,你可以使用“运行测试”按钮查看带有自定义声明的令牌的样子。

查看 🎫 自定义 JWT 声明 以获取更多信息。

组织角色的 API 资源

你现在可以将 API 资源的权限(范围)分配给组织角色。与组织模板中的其他权限一样,这些权限是组织级别的,意味着它们仅适用于特定的组织。

为组织角色分配 API 权限

让我们来看一个例子:

  • 这里有一个名为 https://shopping.api/ 的 API 资源。
  • 该 API 资源有两个范围:readwrite
  • 有两个组织角色:adminuser
  • admin 角色具有 readwrite 范围;user 角色仅具有 read 范围。
  • 用户 Alice 被分配到组织 foo 中的 admin 角色,并在组织 bar 中被分配到 user 角色。

当 Alice 尝试为 https://shopping.api/ 资源交换 组织令牌 时,她将根据她请求令牌的组织收到具有相应范围的令牌。

对于 foo 组织,Alice 将收到一个具有 readwrite 范围的令牌。而在 bar 组织中,她将只收到一个具有 read 范围的令牌。

查看 🏢 组织(多租户) 以获取关于组织的全面介绍。

第三方应用权限

在配置第三方应用的权限时,组织的 API 资源也可以使用。在配置第三方应用的权限时,用户将被提示选择一个组织。

第三方应用授权页

组织自定义数据

现在你可以通过以下方式使用组织级别的 customData 字段保存与组织相关的额外数据:

  • 在 Console 的组织详细信息页面中编辑。
  • 在使用组织管理 API 时指定 customData 字段。

连接器

  • 新增了 Hugging Face 连接器。
  • GitHub 连接器现在默认包含 user:email 范围以获取 GitHub 帐户的私有邮箱地址列表。
    • 如果用户未为 GitHub 帐户设置公共邮箱,它将从私有邮箱地址列表中选取已验证的主要邮箱作为后备方案。
  • 在 Feishu 连接器中删除了在电话号码前面的加号 (#5801)。致谢 @kamto7。

改进

  • 增加了对 Redis Cluster 和 Redis 连接的额外 TLS 选项的支持 (#5619)。致谢 @alekitto。
  • OIDC 和 OAuth 2 连接器现在支持 client_secret_basicclient_secret_jwt 客户端认证方法用于令牌端点。
  • 当通过管理 API 删除或暂停用户时,他们将在 Logto 中被注销,他们的会话将立即失效。
  • 支持逗号分隔的 resource 参数,因为某些库不支持资源数组。
  • 增加了一个 API 来根据用户组织角色获取用户组织范围 (
    GET /api/organizations/:id/users/:userId/scopes
    )。
  • 增加了 Java Spring Boot Web 集成指南。
  • 在 OIDC 授权页中增加了 zh-cn 语言支持 (#5606)。致谢 @the-pawn-2017。

修复

  • 组织邀请 API 应该不区分大小写地处理受邀人电子邮件。
  • 管理 API 不会在生产环境中返回 OpenAPI 规范中未列出的状态码为 500 的响应。
  • 当 Logto 尝试为缺乏所需权限的用户授予访问令牌时,返回 403 而不是 400,特别是在授予与组织相关的资源时。
  • 修复了将错误的社交登录回调发送到本机容器 (例如 iOS 中的 WKWebView) 的问题。
  • 修复了新用户从 SSO 注册挂钩事件未触发的 bug。
  • 修复了如果 API 资源指示符后面没有尾随斜杠或路径名,指示符不生效的 bug。