为每个人提供所需权限

结合项目 RBAC、细粒度模板权限和身份提供程序登录。将组映射到角色,并为本地账户添加双因素身份验证。

任务模板预发布清单报告
模板权限
角色仅针对模板的质量检查

权限

取消
Enterprise 预览。选择模板权限,再点击创建以查看生成的条目。不会在 Semaphore 中保存任何内容。

不是所有人都需要相同的自动化权限

工程师创建作业,其他团队执行,有些同事只需要查看结果。给所有人相同权限,要么开放过多,要么拖慢工作。

选择谁可以配置、执行或查看

通过项目角色提供共享访问。如需让角色只访问选定作业,可添加 Enterprise 权限。

作业维护者配置作业
作业使用者运行准备好的作业
审核者阅读结果

设置团队访问与登录

通过现有目录登录

连接现有身份系统用于登录。Semaphore 项目角色决定每个人可以访问的资源和操作。

本地账户

使用 Semaphore 用户名和密码登录。

LDAP 与 Active Directory

让成员使用现有目录凭据登录。

OpenID Connect

连接 Keycloak、Okta、Microsoft Entra ID、Authentik 或其他 OIDC 提供程序。

KeycloakOktaMicrosoft Entra IDAuthentik

来自可信代理的 JWT

接受来自可信身份验证代理的已签名身份令牌。

通过双因素身份验证保护本地登录

为本地账户启用身份验证器应用验证码,配置恢复方式和会话有效期。用户自行绑定第二重验证。

一次性密码

登录时,身份验证器应用生成的验证码可增加第二重验证。

恢复码

验证器不可用时,允许使用恢复方式。

会话最长时限

达到配置的最长有效期后,要求重新登录。

日常访问使用的项目角色

为项目成员分配内置角色,无需从头配置每一项权限。一名成员可以拥有多个角色,其权限会合并生效。

Production operations 团队,展示工程师姓名及其已分配的项目角色
Semaphore 新建角色表单,角色为 Maintenance Runner,可选择各项项目权限

为团队创建角色

在 Enterprise 中围绕团队职责定义自定义角色。选择其可以执行的操作,而不是向所有人授予相同的宽泛权限。

将角色限制到选定任务

让自定义角色访问指定任务模板,而不是项目中的所有作业。允许执行任务,同时单独管理模板编辑权限。

工作流也采用相同方式,运行、编辑和审批具有独立权限。

Maintenance Runner 获得 Validate Frankfurt services 的 Can run tasks 权限,而 Can update the template 保持未勾选

让团队运行准备好的操作

委派预先准备的作业

让同事使用已保存的配置执行操作。

任务模板

定义谁可以查看、执行和修改自动化

在收窄角色之前,先准备操作

可委派的作业是已保存仓库、清单和凭据引用的任务模板。先创建并测试任务,再创建允许执行它的角色。使用具有代表性的账户登录,确认预期任务能够启动,同时另一个任务不可用。

批准工作流步骤是一项独立权限

工作流权限涵盖查看、运行、编辑和审批。审批独立于运行,您可以决定启动操作的人是否也能放行等待中的步骤。应有意识地分配这两项权限,而不是默认同时授予。

组映射在下次登录时生效

Enterprise 组映射利用身份提供程序发送的 groups 声明,将 OIDC 组关联到 Semaphore 项目中的角色。Semaphore 会在用户登录时刷新映射角色。从目录组中移除成员并不会结束其已持有的会话,因此应将这一时间差纳入权限撤销计划。

保留本地管理员恢复通道

如果日常登录依赖外部提供程序,请同时保留一个经过测试的本地管理员账户。记录负责人和凭据保管位置,并在故障发生前实际演练。恢复后,审查期间授予的访问权限,防止临时变更成为永久权限。

单独授权支持任务模板和工作流

选定对象的权限适用于这两类对象。单个清单、仓库、变量组或 Key Store 条目不按这种方式管理,它们受项目级权限和项目边界本身约束。在基于更细粒度资源控制建立流程之前,请先核实相应要求。

所有已分配角色的权限会合并生效

团队成员可以同时拥有多个角色,包括内置角色、自定义角色,以及全局和项目级角色。其有效权限是所有角色权限的并集,因此其他地方授予的宽泛角色可能抵消精心设置的限制。在依赖某项限制之前,请检查完整的角色集合。

FAQ

身份验证与项目权限有什么区别?

身份验证通过本地账户或受支持的外部身份系统确认登录用户是谁。授权决定该 Semaphore 用户可以访问哪些项目和操作。启用 SSO 并不会自动分配正确的运维角色。请将两者一并设计:确认身份关联、添加预期的项目成员关系,并在委派运维任务之前,用具有代表性的账户测试实际可用的操作。

能让任务运行器只执行一个选定的模板吗?

内置 Task Runner 角色可以运行其项目中的每个模板。如需仅委派选定作业,应使用 Enterprise 自定义角色,只对选定任务模板和工作流授予权限,不授予项目级运行权限。所有已分配角色的权限会合并,因此同时持有更宽泛角色,仍可能让该成员执行其他模板。

能将自定义角色限制到选定的任务模板和工作流吗?

可以。Enterprise 自定义角色将项目级权限与单个对象授权结合起来。如果只需特定对象,应关闭项目级权限,仅添加角色所需的任务模板和工作流,并分别选择查看、运行、编辑,以及工作流的审批权限。全局角色只需定义一次,即可跨项目重用;项目角色仅在创建它的项目中使用。用户可以拥有多个角色,且权限累加,因此限制敏感自动化访问时,应检查完整角色集合。

能将权限限制到单个清单或凭据条目吗?

单个对象级别的权限粒度适用于任务模板和工作流。不要假定管理清单、仓库、变量组或 Key Store 条目的项目级权限,也能缩小到其中单个对象。划分运维职责时,请有意识地使用项目边界和现有角色模型。如果访问设计依赖其他类型的资源级限制,请在生产依赖它之前核实具体要求。

Semaphore 支持 LDAP、Active Directory、OIDC 或 JWT 登录吗?

文档中的身份验证选项包括本地账户、LDAP 与 Active Directory、OpenID Connect,以及可信反向代理传入的 JWT,具体方案范围见当前对比表。通过外部身份验证的用户仍拥有 Semaphore 用户记录,并需要适当的项目访问权限。修改现有配置前,请检查提供程序标识符和账户关联行为。不要假定启用身份提供程序就会自动将所有目录组映射到授权设计要求的角色。

身份提供程序不可用时应如何恢复?

在外部身份验证配置之外,保留经过测试的本地管理员恢复通道。记录负责人、必要凭据的保管位置,以及故障期间如何使用。应在事故发生前测试流程,避免到时才发现所有管理员都依赖同一个不可用的提供程序。恢复后检查相关账户与项目访问权限,防止临时运维变更成为非预期的永久权限。

同事能在不编辑 Playbook 或模板的情况下运行作业吗?

可以。内置 Task Runner 角色可运行项目模板,同时对其他资源保持只读。若只需访问选定作业,请使用对这些任务模板和工作流授权的 Enterprise 自定义角色。权限会叠加,因此应检查成员被分配的全部角色。准备好的任务模板让团队随时可使用执行设置。

能允许用户查看结果,但不允许其启动任务吗?

Guest 角色提供项目只读访问。访客可以查看项目信息和任务结果,但不能执行任务或修改设置。将成员添加到合适的项目团队,同时检查其其他角色。与 Guest 一起分配的更宽泛角色可能授予额外权限。

身份提供程序的组能自动分配项目角色吗?

Enterprise 组映射将 OIDC 提供程序中的组与 Semaphore 项目角色关联。请在提供程序中配置 groups 声明,并为预期项目和角色添加映射。Semaphore 会在用户通过该提供程序登录时刷新角色分配,因此变更在下次登录生效,而不是立即影响现有会话。

能用双因素身份验证保护本地账户吗?

可以。在服务器配置中启用 TOTP,用户即可为本地账户绑定身份验证器应用,在密码之后输入基于时间的验证码。绑定时会生成恢复码,供验证器不可用时登录。启用该选项并不会强制每个账户绑定,因此应将推广使用纳入流程。同一配置区域可设置绝对会话时限,无论用户是否活跃,会话都会在固定有效期后结束。