1

我已经研究这个问题好几天了,我从经验中知道我通常会解决这些问题,但这次我遇到了障碍。

设想

我有一个在 Azure DevOps YAML 管道中实例化的 python 应用程序。应用调用 Azure DevOps REST API 来创建存储库

该应用程序使用 PAT(个人访问令牌)进行身份验证

第一个问题是,个人访问令牌作为人类用户连接到我。如果我离开公司,PAT 将被撤销,这对需要在非用户上下文中运行的应用程序不利。

所以现在我想设置我的 Python 应用程序以使用客户端凭据流向 Azure DevOps REST API 进行身份验证。

我的问题是,我找不到关于此的一致信息。

我在 Azure DevOps 中创建了一个应用程序:

在此处输入图像描述

我的计划是让这一切都在 Postman 中工作,然后将我的发现移植到 Python 代码中。所以说真的,我正在为我在 Postman 中所做的设置寻求帮助,我可以自己用 Python 完成其余的工作。

许多帖子一起讨论了 Azure DevOps 和 Azure AAD(Azure Active Directory),但是,当我在 Azure DevOps 中创建我的应用程序注册时,如图所示,我不明白为什么我会在 AAD 中做任何事情。(注意,我的 Azure DevOps 实例是在 Azure 之外创建的。Azure 对我的 Azure DevOps 实例一无所知)

任何指向有关如何执行此操作的正确信息的指针都会很好。请记住,我绝对需要客户端凭据类型流。我的应用程序和 Azure DevOps REST API 之间没有人工交互。

更新

这是我现在在 Postman 中的内容: 注意:在此处输入图像描述

  • 您可以看到我用来打开和关闭 application/x-www-form-urlencoded 键/值对的复选框
  • 资源- 499b84ac-1321-427f-aa17-267ca6975798显然是 Azure DevOps的GUID,不会改变
  • 如果我从 500 错误中查看 HTML,我会看到:找不到 hostId 的分区:499b84ac-1321-427f-aa17-267ca6975798这是上面提到的 DevOps 资源 GUID。

这是我从 Azure Devops 得到的 500 错误: 在此处输入图像描述

这一切都非常令人困惑,但我确信我只需要调整一两件事就可以让它发挥作用。

4

1 回答 1

1

出于与您相同的原因,我想在 Azure DevOps 中使用 client_credential 流!上次我与支持人员交谈时,他们告诉我计划在 2020 年第三季度进行查看路线图,我目前看不到它。我也看不到目前在Dev Community上提出的任何功能请求,因此您可以考虑尝试在那里提出此问题的简介。

于 2020-03-27T14:57:37.417 回答