【发布时间】:2019-01-09 06:18:50
【问题描述】:
我正在编写 Azure WebJob(长时间运行的任务)以务实地创建 WorkItems。我创建了 Azure AD App (SPN) 并在 API 权限下添加了 Visual Studio Team Services。我创建了控制台应用程序来测试 API,这里是获取令牌和调用 DevOps API 的代码
static async Task RunAsync()
{
AuthenticationContext authContext = new AuthenticationContext(authority); // https://login.microsoftonline.com/{tanent}
ClientCredential clientCredential = new ClientCredential(clientId, appKey); // Azure APP ID and Key
AuthenticationResult result = await authContext.AcquireTokenAsync(resourceId, clientCredential); // 499b84ac-1321-427f-aa17-267ca6975798
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
HttpResponseMessage response = await httpClient.GetAsync(baseAddress + "/_apis/wit/workitemtypes?api-version=5.1-preview.2"); // https://dev.azure.com/{org}/{project}
if (response.IsSuccessStatusCode)
{
string s = await response.Content.ReadAsStringAsync();
Console.WriteLine(s);
}
}
我收到标题为“Azure DevOps Services | 登录”的 HTML 输出,而不是 JSON 响应(工作项类型列表)。由于它是后台进程,我无法要求用户提示登录。我可以这样做吗?是否支持?
【问题讨论】:
标签: azure-devops azure-active-directory