首页 > 解决方案 > 使用 Azure AD 用户构建代理身份验证

问题描述

我们已从 TFS 2017 更改为 Azure DevOps Services。在 TFS 中,我们使用 AD 对用户进行身份验证。对于 Azure DevOps 服务,我们使用 Azure AD。所以我想在本地机器上配置一个自托管的构建代理。我尝试使用 PAT 身份验证,它的工作方式与预期一样。只是为了看看它是否有效,我尝试了其他身份验证类型:

--auth <type> - authentication type. Valid values are:

pat (Personal access token) --> works
negotiate (Kerberos or NTLM) --> not working because of Azure AD authentication
alt (Basic authentication) --> ?
integrated (Windows default credentials) --> not working because of Azure AD authentication

我尝试使用用于成功通过 PAT 进行身份验证的用户的用户名(电子邮件)和密码进行身份验证。但是每次我收到用户无权访问服务器的消息。

是否无法使用 Azure DevOps Services 用户的用户名和密码而不是 PAT 对构建代理进行身份验证?

当我尝试通过 API 对 Azure DevOps Service 进行身份验证时,我遇到了同样的问题。但是在那里我可以使用VssAadCredential而不是VssBasicCredential

构建代理配置是否有类似的东西,或者我做错了什么?

标签: azure-devops

解决方案


只能使用 PAT 或备用凭据(git 用户名+密码)将 Azure DevOps 代理连接到 Azure DevOps(云)。

不能使用 Azure Active Directory 连接代理。

内部部署确实允许 NTLM/kerberos 身份验证。


知道 PAT 仅用于注册代理可能很有用。在注册期间,代理会协商其自己的凭证和加密密钥。

您可以在连接代理后撤销 PAT,您的代理将保持连接而不会出现问题。

有关 Azure Pipelines 代理的身份验证设计的更多详细信息:


推荐阅读