azure-devops - 使用 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。
构建代理配置是否有类似的东西,或者我做错了什么?
解决方案
只能使用 PAT 或备用凭据(git 用户名+密码)将 Azure DevOps 代理连接到 Azure DevOps(云)。
不能使用 Azure Active Directory 连接代理。
内部部署确实允许 NTLM/kerberos 身份验证。
知道 PAT 仅用于注册代理可能很有用。在注册期间,代理会协商其自己的凭证和加密密钥。
您可以在连接代理后撤销 PAT,您的代理将保持连接而不会出现问题。
有关 Azure Pipelines 代理的身份验证设计的更多详细信息:
推荐阅读
- reactjs - 无法编辑 Github 页面
- bash - 比较2个文件的值并合并相似的条目
- git - Jekyll 在 _config.yml 中看不到 baseurl 的值
- typescript - 如何在 Typescript 中使用“dialogflow”客户端库?
- javascript - 如何使用 AJAX POST 提交按钮值?
- vertica - Vertica 上的子查询或用户定义的函数
- python - 如果我在函数中使用 open() 作为参数,是否必须使用 close()?
- php - PHP中的数组指针
- mysql - MySQL 未将查询记录到 general_log 表
- visual-studio - gitlab无法访问:SSL证书已过期