我们已从TFS 2017更改为Azure DevOps Services。在TFS中,我们使用了AD对用户进行身份验证。对于Azure DevOps Services,我们使用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 。
构建代理配置是否存在类似问题?
答案 0 :(得分:1)
您只能使用PAT或备用凭据(git username + pass)将Azure Devops代理连接到Azure DevOps(云)。
您不能使用Azure Active Directory连接代理。
内部部署确实允许NTLM / kerberos身份验证。
了解PAT仅用于注册代理可能会很有用。在注册过程中,代理会协商自己的凭据和加密密钥。
您可以在连接代理后撤消PAT,并且您的代理将保持连接状态而没有问题。
有关Azure Pipelines代理的身份验证设计的更多详细信息:
答案 1 :(得分:0)
注册代理时,通过使用身份验证类型= Negotiate
,代理应使用用户名和密码而不是PAT。