Я пишу Azure WebJob (долгосрочное задание) для прагматического создания WorkItems. Я создал приложение Azure AD (SPN) и добавил Visual Studio Team Services в соответствии с разрешениями API. Я создал консольное приложение для тестирования 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);
}
}
Вместо ответа JSON (список типов рабочих элементов) я получаю вывод HTML с заголовком «Службы Azure DevOps | Вход». Поскольку это фоновый процесс, я не могу попросить пользователя ввести логин. Могу ли я сделать это так? Это поддерживается?