跳转到内容

超级管理员与认证配置

Chorus 的大部分功能都限定在工作区内,但有一个角色凌驾于各个工作区之上:超级管理员。创建工作区、为团队开启单点登录(SSO)都要通过它完成。 本页面向负责运维 Chorus 部署的人;只需登录的最终用户请参阅账号与工作区。

超级管理员是一个平台级账号,独立于任何工作区。你在服务端通过两个环境变量启用它:管理员 邮箱,以及管理员密码的 bcrypt 哈希:

Terminal window
SUPER_ADMIN_EMAIL="admin@example.com"
SUPER_ADMIN_PASSWORD_HASH="$2b$10$..." # 你的密码的 bcrypt 哈希

用一条一次性命令生成哈希,例如:

Terminal window
node -e "console.log(require('bcryptjs').hashSync('your-password', 10))"

请把 bcrypt 哈希保存在部署的密钥存储中。管理员会话还需要一个安全的 NEXTAUTH_SECRET:单实例部署时,npm chorus 启动器和 Docker 入口脚本可以自动生成并持久保存它;有多个副本时,请在所有副本上显式设置相同的值。参见 Docker 会话密钥。

应用内没有通往管理面板的链接,你需要通过正常的登录界面进入。输入超级管理员邮箱后,Chorus 会识别 出它,并在单独的一步中要求输入管理员密码,然后打开超级管理员面板。管理员会话独立于任何 工作区,且有效期比普通会话短,所以你需要定期重新登录。

超级管理员面板的仪表盘,含 Dashboard 与 Companies 导航以及工作区、用户、智能体计数
超级管理员面板从专门的“仪表盘”和“公司”视图管理整个部署的工作区。

超级管理员面板的公司列表可用于创建、编辑或删除工作区。在创建公司表单中选择认证方式:

  • OIDC:填写名称、邮箱域名及下文的 SSO 配置。域名用于将邮箱匹配到工作区。
  • 本地账号:填写名称,以及初始工作区管理员的用户名和邮箱;显示名称可选。不需要邮箱域名或 OIDC 提供方。创建后复制一次性邀请,通过私密渠道交给管理员,由其自行设置密码并单独登录。

同一工作区的本地账号与 OIDC 互斥,不能通过工作区编辑切换认证方式。本地工作区可改名,但不能编辑 OIDC 或域名字段。由环境变量定义的 Default Auth 账号是另一种登录选项,不是初始本地管理员。

在初始管理员接受邀请前,可从公司列表重新打开本地工作区,重新签发、撤销或替换该邀请。重新签发会使旧链接失效;替换会创建新身份,即便使用相同用户名或邮箱。撤销后可在同一面板邀请替代管理员。一旦任一初始管理员邀请被接受,这项初始化恢复就会关闭。之后的日常账号管理由本地工作区管理员在侧边栏中设置下方的工作区用户中完成,而不是由超级管理员处理。参阅管理本地工作区用户。

创建公司表单选择了本地账号,并填写演示用初始管理员资料
选择本地账号即可创建工作区并邀请首位工作区管理员,无需 OIDC 提供方。

以下设置仅适用于 OIDC 模式的工作区。本地工作区不会显示 OIDC 配置卡片。

Chorus 使用带 PKCE 的 OpenID Connect,通过你的身份提供方让用户登录,因此无需管理客户端密钥 (client secret)。SSO 按工作区配置,位于超级管理员面板中该工作区设置的 OIDC 配置 之下。有两个必填值:

  • OIDC Issuer URL:你的身份提供方的 OpenID Connect 发现地址。
  • Client ID:身份提供方侧该应用的 client ID。

两项都填好后 SSO 自动开启;清空任一项则关闭。Chorus 请求的是标准的 openid profile email 作用域(scope)。

创建公司表单选择了 OIDC,并填写演示邮箱域名、Issuer URL 和 Client ID
创建工作区时选择 OIDC 并配置提供方,现有 OIDC 工作区也可稍后编辑这些设置。

在你的身份提供方处,把 Chorus 注册为一个应用,并把它的重定向(回调)URL 加入允许列表,即你的 Chorus 站点地址后接 /login/callback。公司列表会显示可直接复制的准确 URL。由于它是根据你打开 Chorus 时使用的地址生成的,请通过生产地址打开公司页面,再复制那里显示的值。

某个工作区配置好 SSO 后,使用其域名下邮箱登录的用户会被跳转到你的身份提供方完成认证再返回,也就是 账号与工作区里描述的流程。邮箱匹配到多个 SSO 工作区的用户,会被要求从中选择一个。已被加入某个工作区的用户,即使邮箱域名不同,也会登录到该工作区。

工作区与 SSO 就绪后,就可以把日常配置交给各工作区的运维人员:为智能体创建访问权限 介绍如何创建智能体凭据,账号与工作区介绍用户登录时会看到什么。