如何在 Azure DevOps Pipeline 中验证 PythonScript 任务

How to authenticate PythonScript task within Azure DevOps Pipeline

我在 Azure DevOps YAML 管道中有一个 PythonScript 任务调用 Azure API 来检索订阅和管理组的列表。我的脚本使用 DefaultAzureCredential class,据我所知,它最初会查找某些环境变量(客户端 ID、客户端密码和租户 ID),或者可以使用托管身份进行身份验证。我可以在本地 运行 我的脚本,但我不知道如何正确设置它以使其在管道中运行。

非常感谢收到任何指导。

我没有使用 azure devops 的经验,但我确实记得我的一位同事曾经为他的 Azure DevOps 管道分配服务主体。我没有问很多问题;他遇到了我正在帮助他解决的问题。

所以对于那部分:https://stefanstranger.github.io/2019/03/02/ManageIdentityInServiceConnections/ 也许这是将托管标识分配给您的管道的一个进步。

在您分配管道使用托管身份后,管道将自动连接到具有服务主体的云,并查明它有什么权限来执行您希望它执行的操作。所以不要忘记分配托管身份权限。

现在回到故事背景。我的同事对服务主体和他的 Azure DevOps 管道的问题是他需要使用对象 ID 来分配服务主体。提供客户端 ID 使管道失败。

如果您想继续使用 ENV var 方法。我建议使用 Keyvault 并提取机密,然后将它们传递到您的管道并使用它们。同样,我没有使用 Azure DevOps 的经验。 但是,这就是我在我的 Azure Functions 中所做的,你正在尝试的看起来非常相似。 也许这会有所帮助:https://docs.microsoft.com/en-us/azure/devops/pipelines/release/azure-key-vault?view=azure-devops