管理两步验证
在您的 TeamCity 服务器上启用两步验证用户身份验证(2FA)可以为其提供额外的安全级别。 用户需要通过两个步骤验证身份:提供他们的常规登录凭证 以及 提交在其个人移动设备上生成的一次性密钥。
tip
您可以将 TeamCity 2FA 与通过外部服务的身份验证相结合。 查看 支持的提供商。
要选择所需的 2FA 认证模式,请导航至 管理 | 认证 页面,并向下滚动至 通用设置 部分。 请注意,只有 系统管理员 可以修改认证设置。

二次验证模式 | 行为 |
---|---|
可选 | 允许用户决定是否要为他们的帐户启用 2FA。 这是默认设置。 |
强制 | 要求所有用户在一周内设置 2FA。 宽限期从您启用“强制”模式的那一刻开始(针对现有用户),或从用户注册的那一刻开始(针对新用户)。 |
已禁用 | 用户无法设置 2FA。 |
如果启用了两步验证,通过 2FA 检查的用户有一个小时的时间来修改关键用户设置。 一旦这个期限过期,用户必须通过新的二次身份验证才能继续进行这些编辑。
被阻止的操作,直到用户通过另一项验证,包括:
在用户个人资料设置中禁用 2FA
更改用户密码和电子邮件
生成访问令牌
note
只有当用户在 TeamCity UI 中进行这些操作时,这些操作才会被阻止。 TeamCity 服务器仍接受通过 REST API 发送的修改请求。
这种行为增加了一个额外的保护层,防止攻击者获取用户帐户的访问权限后,修改用户设置并造成更大的损害。
您可以通过 teamcity.2fa.sensitive.settings.access.duration
内部属性 修改此间隔的持续时间:
teamcity.2fa.sensitive.settings.access.duration.seconds=45
# or
teamcity.2fa.sensitive.settings.access.duration.minutes=5
# or
teamcity.2fa.sensitive.settings.access.duration.hours=3
如果全局两因素认证模式为 "可选",您可以强制单独的 用户组 使用 2FA。 为了做到这一点,添加 teamcity.2fa.mandatoryUserGroupKey
内部属性 并将其值设置为所需的组键。
teamcity.2fa.mandatoryUserGroupKey=SYSTEM_ADMINISTRATORS_GROUP
强制启用 2FA 模式的用户组会将此要求分享给其子用户组。 您可以使用此行为一次强制对多个组进行二次身份验证。 为了实现这一点,创建一个新的用户组,将其密钥赋值给 teamcity.2fa.mandatoryUserGroupKey
内部属性,并将此组设置为所有需要使用 2FA 的现有组的父组。

如果您的 TeamCity 用户可以使用外部服务的帐户登录,且您的组织策略要求通过 2FA 登录这些服务,那么您可以在登录 TeamCity 时跳过额外的验证。
例如,如果用户已经登录到他们受2FA保护的 GitHub 帐户,他们应该能够使用他们的 GitHub 凭证登录到 TeamCity,而无需任何额外的验证。
TeamCity 会自动避免向以下提供商发送冗余的授权请求:
对于不报告是否启用了 2FA 的提供商,您可以手动指定 TeamCity 是否应发送 2FA 请求。 为此,请在 auth 模块设置中指定 跳过两步验证 选项。

此设置可用于以下模块:
感谢您的反馈!