使用 Microsoft Entra 向 Azure DevOps 进行身份验证
Microsoft Entra ID 是一个独立的 Microsoft 产品,拥有自己的平台。 作为领先的标识和访问管理 (IAM) 提供程序,Microsoft Entra ID 侧重于管理团队成员和保护公司资源。 你可以将 Azure DevOps 组织连接到 Microsoft Entra ID 租户,这可以为公司带来许多好处。
连接后,Microsoft Entra ID 上的 Microsoft 身份验证应用程序平台为应用开发人员和组织管理员提供了多项优势。 你可以注册应用程序以访问 Azure 租户并定义 Azure 资源所需的权限,包括 Azure DevOps(存在于 Azure 租户构造之外)。
Microsoft Entra 应用和 Azure DevOps 应用是彼此不了解的独立实体。 身份验证方法不同:Microsoft Entra 使用 OAuth,而 Azure DevOps 使用自己的 OAuth。 Microsoft Entra ID OAuth 应用将颁发 Microsoft Entra 令牌,而不是 Azure DevOps 访问令牌。 这些令牌在过期前具有一个小时的标准时长。
在 Microsoft Entra 上开发 Azure DevOps 应用
全面阅读 Microsoft Entra 文档,在设置过程中了解新功能和其他预期。
通过以下指南支持你的应用开发:
- Microsoft Entra OAuth 应用(代表用户应用),适用于代表同意用户执行操作的应用。
- Microsoft Entra 服务主体和托管标识(代表自身应用),适用于在团队中执行自动化工具的应用。
将 PAT 替换为 Microsoft Entra 令牌
个人访问令牌 (PAT) 非常适用于 Azure DevOps 身份验证,因为它易于创建和使用。 但是,不良的 PAT 管理和存储可能会导致对 Azure DevOps 组织进行未经授权的访问。 长期或范围过大的 PAT 会增加因 PAT 泄露而造成损害的风险。
Microsoft Entra 令牌提供一个安全的替代方法,仅持续一小时,然后需要刷新。 用于生成 Entra 令牌的身份验证协议更可靠且更安全。 条件访问策略等安全措施可以防范令牌被盗和重播攻击。 我们鼓励用户使用 Microsoft Entra 令牌而不是 PAT 进行浏览。 我们分享了在此工作流中常见的 PAT 用例以及用 Entra 令牌替换 PAT 的方法。
对 Azure DevOps REST API 的临时请求
还可以使用 Azure CLI 来获取 Microsoft Entra ID 访问令牌,供用户调用 Azure DevOps REST API。 由于 Entra 访问令牌只存在一个小时,因此它们非常适合快速一次性操作,如不需要持久令牌的 API 调用。
获取用户令牌
使用
az login
命令登录到 Azure CLI,并按照屏幕上的说明进行操作。使用这些 bash 命令为登录用户设置正确的订阅。 请确保 Azure 订阅 ID 与连接到你尝试访问的 Azure DevOps 组织的租户相关联。 如果不知道订阅 ID,可以在 Azure 门户中找到它。
az account set -s <subscription-id>
使用 Azure DevOps 资源 ID
499b84ac-1321-427f-aa17-267ca6975798
通过az account get-access-token
命令生成 Microsoft Entra ID 访问令牌。az account get-access-token \ --resource 499b84ac-1321-427f-aa17-267ca6975798 \ --query "accessToken" \ -o tsv
有关详细信息,请参阅 Databricks 文档。
在 Azure CLI 中获取服务主体令牌
服务主体还可以利用即用的 Microsoft Entra ID 访问令牌进行临时操作。 有关详细信息,请参阅服务主体和托管标识/使用 Azure CLI 获取 Microsoft Entra ID 令牌。
使用 Git 凭据管理器执行 Git 操作
您还可以使用 Microsoft Entra 令牌执行 Git 操作。 如果定期推送到 git 存储库,请使用 Git 凭据管理器轻松请求和管理 Microsoft Entra OAuth 令牌凭据,前提是 oauth
设置为默认的 credential.azReposCredentialType
。