使用 Azure AD 客户端凭据授予流程的 Azure Devops Access

2023-12-25

我已成功通过 Azure AD 进行身份验证并收到访问令牌。我已授予 Azure AD App API 访问 Azure DevOps 的权限

我正在使用 RestSharp Http 客户端进行身份验证

var client = new RestClient("https://login.microsoftonline.com/{tenant}/oauth2/token");
            var request = new RestRequest("", Method.POST);
            request.AddParameter("grant_type", "client_credentials");
            request.AddParameter("client_id", "00000f-0000-00-00-000000");
            request.AddParameter("client_secret", "][M.&*******?*_5z)y${*[)");
            request.AddParameter("resourse", "https://tenant.onmicrosoft.com/4815c06b-7e28-4f88-9dc8-8fe3354d5909");
            IRestResponse response = client.Execute(request);
            var content = response.Content; // raw con

到目前为止我很高兴。我不知道如何使用访问令牌来访问 Azure DevOps 到目前为止我已经尝试过

 var client = new RestClient("https://app.vssps.visualstudio.com/oauth2/token");
        var request = new RestRequest("", Method.POST);
        request.AddParameter("client_id", "My APP code here";
        request.AddParameter("client_secret", "My ap secret here");
        request.AddParameter("client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer");
        request.AddParameter("client_assertion", "access token here");
        request.AddParameter("grant_type", "authorization_code");

我收到的错误是“{\”Error\”:\“unsupported_grant_type \”,\“ErrorDescription \”:\“grant_type必须是ietf jwt承载类型或refresh_token \”}“

我缺少什么?


据我所知,不支持客户凭据。 如果我们想使用Azure AD凭证访问Azure Devops API,我们需要创建一个Azure AD本机应用程序并为Azure AD应用程序分配权限

之后我们还需要

在浏览器中输入地址并输入用户名和密码即可获取authorization_code

获取授权码

https://login.microsoftonline.com/{tenantId}/oauth2/authorize?resource=499b84ac-1321-427f-aa17-267ca6975798&client_id={applicationId}&response_type=code&redirect_uri={redirecturl}

获取访问令牌

POST login.microsoftonline.com/e4c9ab4e-bd27-40d5-8459-230ba2a757fb/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Body
resource=499b84ac-1321-427f-aa17-267ca6975798&client_id={clientid}&grant_type=authorization_code&code=AQABAAIAAA..&redirect_uri={redirectUrl}

然后我们可以使用访问令牌来访问 Azure Devops API。

我们可以从中获得更多详细步骤和 C# 演示代码link https://github.com/Microsoft/azure-devops-auth-samples/tree/master/ManagedClientConsoleAppSample.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Azure AD 客户端凭据授予流程的 Azure Devops Access 的相关文章

随机推荐

  • 使用 Git 和 Heroku 进行正确的持续集成和持续部署

    我正在使用 heroku 和 git 开发一个 ruby on Rails 网站 我应该使用哪些工具和功能来建立以下简单的开发流程 代码 gt 签入 gt 自动测试 gt 自动部署 我将代码签入我的存储库 首选选项 托管 git 如 git
  • 确定 sprintf 缓冲区大小 - 标准是什么?

    当像这样转换 int 时 char a 256 sprintf a d 132 确定多大的最佳方法是什么a应该 我认为手动设置它是可以的 因为我已经看到它到处使用 但它应该有多大 32 位系统上可能的最大 int 值是多少 是否有一些棘手的
  • 如何在 Chart.js 中循环工具提示附加数据

    这里我有一个图表 其中包含来自数据库表的 x 轴数据和 y 轴数据 现在我面临的问题是 无论我尝试将第三个数据附加到afterbody工具提示中的回调函数 它将在每个工具提示中显示完整数据 但我想分别将这些数据附加到每个工具提示中 like
  • 主动存储种子Rails

    我想为我的数据库添加一些包含活动存储附件的实例 但我不知道如何做到这一点 我尝试了一些方法但没有成功 这是我的种子 User create email email protected cdn cgi l email protection p
  • DMCS 中的 D 代表什么?

    所以 我正在阅读有关单声道 C 编译器 http www mono project com docs about mono languages csharp 我知道这些应用程序的用途是什么 但我只是想知道缩写代表什么 另外 gmcs smc
  • Android hprov-dump 给我错误:期待 1.0.3

    我在 eclipses DDMS 中使用了转储 HPROF 文件选项 并将我的 hprof 文件命名为 in hprof 但是当我尝试执行以下操作时hprov conf in hprof out hprof从命令行它给我错误 错误 期待 1
  • 使文本块只读

    目前我在滚动查看器控件中放置了一个文本块 如何使文本块只读 文本块 http msdn microsoft com en us library system windows controls textblock aspx已经是只读的 它们旨
  • 为什么会出现错误 ORA-00937

    对于每名获得三架以上飞机认证的飞行员 找到 援助和他 或她 所乘坐的飞机的最大航程 认证为 我有四张桌子 FLIGHTS flno varchar 出发地 varchar 目的地 varchar 距离 整数 出发 日期 到达 日期 飞机 a
  • Android httpclient cookie拒绝非法路径属性

    我正在构建一个 Android 应用程序 它使用 httpclient 将数据发布到 WordPress 服务器并检索数据 由于 cookie 中的路径无效 我无法发送发布数据 这是我检索到的日志 Cookie rejected Basic
  • 高效解析大型 JSON 数组的前四个元素

    我在用Jackson从 json 解析 JSONinputStream如下所示 36 100 The 3n 1 problem 56717 0 1000000000 0 6316 0 0 88834 0 45930 0 46527 5209
  • 如何复制图像?

    我想复制image png form folder1 to folder2 怎么做 folder1 image png folder2 Thanks 尝试这样的事情 var fs require fs var inStr fs create
  • PHP包含html页面字符集问题

    使用下面的代码查询 mysql 数据库后 我生成了一个 html 文件 myFile page htm fh fopen myFile w 或 die 无法打开文件 fwrite fh row 文本 fclose fh 在 mysql 数据
  • 如何运行内存中下载的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 C 加载 EXE 文件并从内存中运行它 https stackoverflow com questions 3553875 load an exe file and run it from me
  • 从 C++ 中查找 python 函数参数

    我正在从 C 调用 python 函数 我想知道是否可以确定参数的数量和这些参数的名称 我已阅读链接如何从 C 语言中查找 Python 函数的参数数量 https stackoverflow com questions 1117164 h
  • 如何从最小最大算法中获取实际移动而不是移动值

    我目前正在为国际象棋编写一个带有 alpha beta 剪枝的极小极大算法 从我见过的所有示例中 极小极大算法将返回一个 int 值 该值表示最佳得分或最佳移动所产生的棋盘状态 我的问题是我们如何返回与分数返回值相关的最佳动作 例如 下面的
  • 如何将 TensorFlow (v. 2) Hub 中预训练的 KerasLayer 与 tfrecords 结合起来?

    我有一个包含 23 个类的 tfrecord 每个类有 35 张图像 总共 805 张 我当前的 tfrecord 读取函数是 def read tfrecord serialized example feature description
  • knockoutjs 检查绑定

    我遇到了问题checked绑定 单击复选框不会更新可见状态 尽管 dependentObservable 指示值已更改 这是 HTML 片段
  • 如何使用标记创建范围滑块并更改填充范围的颜色?

    我已经在某种程度上完成了工作 如下所示 如何实现像这样的范围滑块 slidecontainer width 100 Width of the outside container The slider itself slider webkit
  • 如何创建一个包含每个项目复选框的组合框?

    对 tkinter 和 python 相当陌生 我想知道如何实现一个像这样的按钮 单击按钮下拉列表 所以这是一个组合框 列表的每一行都有一个复选框 最后 如果单击复选框 则运行一个函数 或者 甚至更好 一旦不再删除组合框 就运行一个将项目检
  • 使用 Azure AD 客户端凭据授予流程的 Azure Devops Access

    我已成功通过 Azure AD 进行身份验证并收到访问令牌 我已授予 Azure AD App API 访问 Azure DevOps 的权限 我正在使用 RestSharp Http 客户端进行身份验证 var client new Re