具有Azure AD客户端凭据授予流的Azure Devops Access

时间:2018-11-25 09:44:13

标签: c# azure oauth-2.0 azure-devops azure-active-directory

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

我正在使用RestSharp Http Client进行身份验证

_point

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

library(tidyverse)
# your dataset
ggplot(econ3, aes(x=decade, y=mean.uempmed),guide=FALSE) + # remove size aesthetic
  geom_point(aes(size=mean.unemploy), colour="blue", fill="lightblue", shape=21) + # size aesthetic in geom_point
  scale_size_area(max_size = 15)+
  geom_smooth(method=lm, se=FALSE, formula = y~x, aes(color="lm"))+
  theme_gray()+
  labs(title = "Unemployment Level per Decade",
       subtitle = "(1967-2015)",
       caption = "Data from the US economic time series.",
       tag = "Figure 3",
       x = "Mean of Median Duration of Unemployment (Weeks)",
       y = "Decade")

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

我想念什么?

2 个答案:

答案 0 :(得分:1)

根据我的知识,不支持客户端凭据。 如果要使用Azure AD凭据访问Azure Devops API,则需要创建一个Azure AD本机应用程序并将权限分配给Azure AD应用程序

enter image description here

此后,我们还需要connect the Azure Devepops account to the Azure AD.

在浏览器中输入地址,然后输入用户名和密码,然后即可获得授权码

获取授权码

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}

enter image description here

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

我们可以从此link中获得更多详细的步骤和C#演示代码。

答案 1 :(得分:0)

如果拥有access_token,则可以使用access_token访问Web api资源,这里有一个示例供参考。

GET /data HTTP/1.1
Host: service.contoso.com
Authorization: Bearer
"your concrete access_token"

您可以单击此link来详细查看它,希望它能带来好处。