请帮我解决这个问题。
我正在尝试从 Azure 逻辑应用程序向 DevOps 发送发布请求以创建发布。
我在逻辑应用程序中创建了一个 http 操作,这是用于创建发布的 uri:https://vsrm.dev.azure.com/ https://vsrm.dev.azure.com/{组织}/{项目}/_apis/release/releases?api-version=5.0
我使用 Active Directory OAuth 进行身份验证,需要提供租户、客户端 ID、受众和密码。
我在 Azure Active Directory 中使用我的应用程序的租户、客户端 ID 和密钥,但我不确定对受众使用什么。
有人可以帮我解释一下如何找到这个受众领域吗?
我需要做其他事情才能连接到我的 DevOps 吗?或定义标头的权限或任何其他参数?
有两种方法可以进行身份验证。
- 使用 Azure AD 身份验证。
DevOps 的资源是静态值:499b84ac-1321-427f-aa17-267ca6975798。但是,由于 DevOps REST API 只能使用委派权限进行设置。
您需要使用密码授予流程来获取令牌:
您获得的令牌将是不记名令牌。
- 另一种选择是使用个人访问令牌。你可以在 DevOps 门户中创建一个 https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops.
然后按如下方式使用它:
try
{
var personalaccesstoken = "PAT_FROM_WEBSITE";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = await client.GetAsync(
"https://dev.azure.com/{organization}/_apis/projects"))
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
通过这种方式获得的Token是一个基础Token。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)