TeamCity On-Premises 2024.03 Help

NTLM HTTP 认证

TeamCity 的 NTLM HTTP 身份验证功能采用了集成的 Windows 身份验证,并允许在使用支持 NTLM 和协商 HTTP 认证的浏览器 / 客户端(包括 NTLMv1、NTLMv2 和 Kerberos 逻辑)时,实现对 TeamCity 网页界面的透明 / 单点登录。 当 TeamCity 服务器在 Windows OS 下运行时,支持身份验证。 一般来说,它允许用户使用他们的 NT 域帐户登录 TeamCity 服务器网页界面,无需手动输入凭据。

配置

NTLM HTTP 模块是在 "HTTP 认证模块" 部分下的 管理 | 认证 页面上配置的。

一旦 TeamCity 用户名与 Windows 域用户名相同,或者在用户配置文件中指定了 Windows 域用户名,您就可以使用任何登录模块启用 NTLM 登录。

要求

  1. 进行身份验证的用户应该使用要用于身份验证的域帐户登录到客户端工作站。

  2. 用户的网络浏览器应支持 NTLM HTTP 认证(TeamCity 服务器的 URL 应为“受信任的站点”,等等)

启用 NTLM HTTP 认证

在配置了 NTLM HTTP 认证模块之后,用户将在登录屏幕上看到一个链接,点击该链接后,浏览器将被强制发送域认证数据。

您可以通过在 "强制协议" 设置中指定协议,来强制服务器公布 NTLM HTTP 认证。 这将使服务器请求对任何向 TeamCity 网络用户界面的请求进行域验证。 如果用户的浏览器在域环境中运行,当前用户将会自动登录。 否则,浏览器将弹出一个对话框,要求输入域凭据。

如果没有这个属性,NTLM HTTP 身份验证只有在客户端明确启动它时(例如,点击登录页面上的 "Login using NT domain account" 链接)才会工作,并且在通常情况下,未经认证的用户将被简单地重定向到 TeamCity 登录页面。

默认情况下,TeamCity 服务器只对 Windows 用户强制执行 NTLM HTTP 认证。 如果您想为所有用户启用它,请设置以下 内部属性

teamcity.ntlm.ignore.user.agent=true

NTLM 登录网址

为了强制某个连接进行 NTLM 认证,向 <您的 TeamCity 服务器 URL>/ntlmLogin.html 发送请求,TeamCity 将会启动 NTLM 认证且将您重定向至概览页面。 对于这种情况,无需设置 forceProtocols 属性。

使用 NTLM HTTP 认证模块与 LDAP 认证

在使用 LDAP 验证时,可以拒绝一些用户的登录。 NTLM HTTP身份验证模块(以及Windows域凭据认证模块)并未具备此功能,因此,一些用户可能会使用Windows域帐户进行登录,即使他们未被允许通过LDAP进行登录。 为了解决这个问题,您应启用相应认证模块的 允许在首次登录时创建新用户 选项。

设置此属性后,用户只有在已经拥有 TeamCity 账号(即他/她已经通过 LDAP 登录过 TeamCity)的情况下,才能使用其 NT 域账号登录。此 TeamCity 用户名应与 Windows 域用户名或用户个人资料页面上指定的自定义 NT 域用户名相等。

配置客户端

根据您的环境,您可能需要配置您的客户端以使 NTLM 认证正常工作。

Internet Explorer

  1. 打开 Tools | Internet Options

  2. 高级 标签页中,请确保选项 安全 | 启用集成的 Windows 验证 已被勾选。

  3. 安全 标签页中选择 本地内网 | 站点 | 高级 并将您的 TeamCity 服务器 URL 添加到列表中。

Google Chrome

在 Windows 上,Chrome 通常会使用 IE 的行为,查看更多信息 这里

Mozilla Firefox

  1. 在浏览器的地址栏中输入 about:config

  2. 将您的 TeamCity 服务器 URL 添加到 network.automatic-ntlm-auth.trusted-uris 属性中。

最后修改日期: 16日 7月 2024年