使用 Microsoft Entra 向 Azure DevOps 进行身份验证
Microsoft Entra ID 是一个独立的 Microsoft 产品,拥有自己的平台。 作为领先的标识和访问管理 (IAM) 提供商,Microsoft Entra ID 专注于满足需要管理团队成员和保护公司资源的公司的需求。 我们提供将 Azure DevOps 组织连接到 Microsoft Entra ID 租户的功能,这样做对你的公司可能有很多好处。
一旦连接,基于 Microsoft Entra ID 的 Microsoft 标识应用程序平台提供了一些优势,使其对应用程序开发人员和组织管理员具有吸引力。 在 Microsoft Entra 上,你可以注册应用程序以访问 Azure 租户,并定义 Azure 资源所需的权限,其中 Azure DevOps 被视为其中之一。 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 提供的新功能,以及你在安装过程中的不同期望。
我们提供指导,以支持你的应用开发:
- Microsoft Entra OAuth 应用(代表用户应用),适用于代表同意用户执行操作的应用
- Microsoft Entra 服务主体和托管标识(代表自身应用),适用于在团队中执行自动化工具的应用
将 PAT 替换为 Microsoft Entra 令牌
个人访问令牌 (PAT) 仍然是 Azure DevOps 用户最受欢迎的身份验证形式之一,因为它们易于创建和使用。 但是,不良的 PAT 管理和存储可能会导致对 Azure DevOps 组织进行未经授权的访问。 让 PAT 生存很长时间或过度界定它们也会增加泄漏的 PAT 造成损害的风险。
Microsoft Entra 令牌提供了一种吸引人的替代方案,因为在刷新前,其有效期为一小时。 用于生成 Entra 令牌的身份验证协议更可靠且更安全。 条件访问策略等安全措施可以防范令牌被盗和重播攻击。 我们希望吸引更多用户探索在当前普遍使用 PAT 的地方使用 Microsoft Entra 令牌。 我们分享了一些最常用的 PAT 用例,以及在此工作流中将 PAT 替换为 Entra 令牌的方法。
对 Azure DevOps REST API 的临时请求
还可以使用 Azure CLI 来获取 Microsoft Entra ID 访问令牌,供用户调用 Azure DevOps REST API。 由于 Entra 访问令牌只存在一个小时,因此它们非常适合快速一次性操作,如不需要持久令牌的 API 调用。
在 Azure CLI 中获取用户令牌
这些说明要归功于 Databricks 文档。
- 使用
az login
命令登录到 Azure CLI,并按照屏幕上的说明进行操作。 - 使用这些 bash 命令为登录用户设置正确的订阅。 请确保 Azure 订阅 ID 与连接到你尝试访问的 Azure DevOps 组织的租户相关联。 如果不知道订阅 ID,可以在 Azure 门户中找到它。
bash az account set -s <subscription-id>
- 使用
az account get-access-token
Azure DevOps 资源 ID499b84ac-1321-427f-aa17-267ca6975798
生成 Microsoft Entra ID 访问令牌:bash az account get-access-token \ --resource 499b84ac-1321-427f-aa17-267ca6975798 \ --query "accessToken" \ -o tsv
在 Azure CLI 中获取服务主体令牌
服务主体还可以利用即用的 Microsoft Entra ID 访问令牌进行临时操作。 有关如何执行此操作的说明,请参阅本指南中的服务主体和托管标识。
使用 Git 凭据管理器执行 Git 操作
Microsoft Entra 令牌还可用于执行 Git 操作。 对于经常推送到 git 存储库的用户,使用 Git 凭据管理器 提供了一种简单的方法来请求和管理其 Microsoft Entra OAuth 令牌凭据,前提是 oauth
已设置为默认值 credential.azReposCredentialType
。