架构

组件与数据流

每一个活动部件、它运行在哪里,以及它们之间的每一条连接,包括所用的协议和每一方使用的凭据。

本文描述截至 2026年9月19日 已实现的 LayerT。尚未实现的内容均已标注。

浏览器端

LayerT 的浏览器端是一个 Manifest V3 扩展程序。您的 MDM 使用适用于 macOS 和 Windows 的 Chrome 企业策略文件安装它,并将其图标固定到工具栏(也有适用于 Linux 的文件)。同一策略会关闭无痕模式、访客模式和 Chrome 自带的密码管理器;在 Windows 上,它会将 LayerT 添加到您其他强制安装的扩展程序中,而不是替换它们。

部分是什么说明
Service Worker扩展程序的后台进程保存设备凭据,获取并校验签名策略,批量上报审计事件,代理共享账号授权,运行会话到期计时器
内容脚本Chrome 在每个页面的隔离环境(isolated world)中运行的脚本与页面自身的 JavaScript 相互隔离。它们只读取您的规则指定的字段中的值,并填写共享账号登录信息
页内提示阻止卡片、通知、账号菜单和会话标签绘制在封闭的 Shadow Root 中,因此页面脚本无法读取或更改其样式。按钮只响应真实的点击和按键。它们使用系统字体,因此 LayerT 绝不会向其他公司的页面加载网络字体
账号菜单框架在提示内以框架形式显示的扩展程序页面共享账号列表位于扩展程序自己的源(origin)中,而不在页面中
工具栏弹出窗口启动器、审批和快速添加一个扩展程序页面;绝不属于任何网站
页面无法伪造的信任标识. 只要某个标签页上显示着 LayerT 提示,LayerT 就会在自己的工具栏图标上点亮一个琥珀色圆点。网站可以模仿提示的外观,但无法在浏览器工具栏中绘制内容。LayerT 提示也从不索要密码,并且有一项测试确保任何提示都不包含密码字段。

LayerT 云端

部分是什么说明
控制台和 API一个 Web 应用管理控制台、扩展程序的 API、SCIM 2.0 服务器和 OpenID Connect 客户端
Worker一个没有公网地址的独立服务运行定时任务并发送通知
运营控制台供 LayerT 员工使用的独立站点创建和管理组织。员工只有在获得该组织批准后才能查看组织内部(见身份、租户与角色
Postgres记录系统签名策略版本、审计事件、目录数据、请求和会话。共享账号密钥以密文形式保存在单独的表中
对象存储Google Cloud Storage仅存放会话录制,在设备上加密后再上传。存储桶中从不保存明文
密钥服务Google Cloud KMS使用 Ed25519 为每个策略版本签名,并封装用于密封每个共享账号密钥和每段录制的密钥。密钥可以通过该服务使用,但永远无法从中复制出来。已构建,随首次生产部署开启;开发环境中以本地密钥代替
定时任务Worker 上的周期性任务关闭过期的请求和会话、执行保留期限、在策略过期前重新签名、目录变更后重建策略、发送通知和提醒、检查网关健康状况
托管. LayerT 尚未投入生产。它将运行在位于欧盟的 Google Cloud 上,区域为米兰(europe-west8),其密钥和数据库备份保存在 Google 的欧盟多区域(multi-region)中。Cloudflare 将负责 DNS 并发送通知邮件。服务提供方列于数据处理。目前尚不提供其他数据驻留选项。

LayerT 之外

部分归属LayerT 如何使用它
您的身份提供商通过 SCIM 2.0 向 LayerT 发送人员和组,并通过 OpenID Connect 让管理员和人员登录。为 JumpCloud 构建
您的 MDM推送 Chrome 策略,用于安装 LayerT、固定其图标,并告诉它所属的组织
员工使用的网站供应商LayerT 读取并填写这些网站上的表单。它从不更改供应商的服务器或流量

数据流

以下每一条数据流都通过 HTTPS 传输。

数据流方向传输内容身份验证方式
目录同步身份提供商 → API人员、组、在职状态(SCIM 2.0)LayerT 签发的 SCIM 令牌,仅以哈希形式保存
控制台登录浏览器 ↔ API ↔ 身份提供商OpenID Connect 授权码流程签名的 ID 令牌,依据提供商公布的密钥进行校验
控制台使用浏览器 → API决定、规则、设置服务器端会话,每次请求都重新检查
注册扩展程序 → API → 身份提供商人员登录一次;浏览器获得设备凭据身份提供商的登录
策略同步API → 扩展程序贵组织的签名策略设备令牌;策略本身在浏览器中使用 Ed25519 校验
审计扩展程序 → API关于阻止、匹配、审批和会话的事件设备令牌,必须与事件所属的设备一致
请求与授权扩展程序 ↔ API访问请求、决定、共享账号授权设备令牌,绑定到具体人员和已注册的浏览器
录制扩展程序 → API → 对象存储加密的录制分块设备令牌;分块已经加密
定时任务Cloud Scheduler → Worker仅触发信号由 Google 签名、属于调度器自身服务账号的身份令牌
登录结果扩展程序 → API共享账号登录是否成功,以及在哪一步停止。从不包含值、标签或页面文本设备令牌
设备信息扩展程序 → API扩展程序版本、是否由策略安装、浏览器、操作系统和策略版本设备令牌
通知Worker → 审批人等待某人处理的请求、答复和警报,通过电子邮件、Slack 和扩展程序发送。不含密钥,也不含完整的值电子邮件通过 SMTPS;Slack 通过其 API 和贵组织的 Slack 连接;扩展程序使用设备令牌
Slack 中的决定Slack → API审批人对请求点击的批准或拒绝Slack 的请求签名,并在点击的那一刻再次检查审批人的权限

扩展程序发送什么,不发送什么

  • 当规则匹配时,它会发送审计事件,包括网站、字段以及匹配的值。审计人员正是借此看到某个个人邮箱地址被阻止了。
  • 它会发送附有人员理由的访问请求;当某个共享账号开启录制时,它会发送加密的录制分块
  • 它会报告每次共享账号登录是否成功,以及浏览器的基本信息,以便 IT 了解哪些笔记本电脑受到保护。这些报告不包含输入的值,也不包含页面文本。
  • 在录制的共享账号会话之外,它不发送页面内容。它从不发送浏览历史,也从不发送在您的规则未指定的字段中输入的任何内容。