【问题标题】:Build agent authentication with Azure AD user使用 Azure AD 用户构建代理身份验证
【发布时间】:2020-02-08 17:35:48
【问题描述】:

我们已从 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 服务进行身份验证时,我遇到了同样的问题。但是我可以使用 VssAadCredential 代替 VssBasicCredential

对于构建代理配置有类似的东西还是我做错了什么?

【问题讨论】:

  • 嗨,安娜的解决方案怎么样?将 AAD 连接到您的组织是否可以解决您的问题?如果是,您可以accept the answer 这样其他 SO 用户将能够看到该解决方案是否有效。如果您仍然遇到问题,请发表评论,以便我们仍然可以为您提供帮助:-)

标签: azure-devops


【解决方案1】:

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

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

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


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

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

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

【讨论】:

    【解决方案2】:

    注册代理时,通过使用身份验证类型=Negotiate,代理应使用用户名和密码而不是PAT。

    【讨论】:

    • 工作,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 2020-08-26
    • 2016-07-08
    • 1970-01-01
    • 2018-11-14
    相关资源
    最近更新 更多