【问题标题】:Client Credentials Flow for Azure DevOpsAzure DevOps 的客户端凭据流
【发布时间】:2020-07-07 14:04:32
【问题描述】:

我已经研究这个问题好几天了,从经验中我知道我通常会解决这些问题,但这次我碰上了砖墙。

场景

我有一个在 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 错误:

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

【问题讨论】:

    标签: python-3.x oauth-2.0 azure-devops clientcredential


    【解决方案1】:

    出于与您相同的原因,我想在 Azure DevOps 中使用 client_credential 流!上次I spoke to support they told me it was planned for Q3 2020Reviewing the roadmap我现在看不到它。我也看不到目前在 Dev Community 上提出的任何功能请求,因此您可以考虑尝试在那里提出此问题的简介。

    【讨论】:

    • 感谢您的评论。难怪我做不出来。我会考虑提出这个问题,因为 PAT 不令人满意,再次感谢 Russ
    • 我现在遇到了这个问题。过去 12 个月有什么变化吗?还是您仍在使用 PAT?
    • 我仍在使用 PAT,我只是快速浏览了 authentication guidance,发现对于非交互式登录,它仍然是 PAT。
    猜你喜欢
    • 1970-01-01
    • 2019-04-28
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2018-02-08
    • 1970-01-01
    相关资源
    最近更新 更多