Позвольте мне начать с того, что я ученик.Я создал приложение, которое использует REST API Atlassian Jira для создания проблем с возможностью назначения пользователя для заявки.Базовая функциональность уже есть, но потом я обнаружил, что не могу использовать базовую авторизацию и мне нужно использовать OAuth 2.0.
Я уже потратил 10 часов, читая документы Jira, stackoverflow и просматриваяyoutube, о том, как использовать OAuth 2.0, и я не нашел четкой информации о том, как это сделать.
Мое приложение использует Azure Active Directory для авторизации, и в нем мне нужно реализовать OAuth 2.0 для Jira REST API..
Вот так выглядит мой код на данный момент
[HttpPost]
public async Task<ActionResult> Index(TokenRequestBody model)
{
var user = await new UserProfileController().Index();
var submitForm = new TokenRequestBody()
{
fields = new TokenRequestField()
{
project = model.fields.project,
description = model.fields.description,
summary = model.fields.summary,
issuetype = model.fields.issuetype,
assignee = model.fields.assignee,
reporter = new ReporterName()
{
name = user
}
},
};
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
$"user.com:password")));
var httpRequestMessage = new HttpRequestMessage();
httpRequestMessage.Method = HttpMethod.Post;
httpRequestMessage.RequestUri = new Uri("https://domain.atlassian.net/rest/api/2/issue/");
httpRequestMessage.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(submitForm), Encoding.UTF8, "application/json");
var response = httpClient.SendAsync(httpRequestMessage).Result;
string responseBody = await response.Content.ReadAsStringAsync();
var jiraResponse = JsonConvert.DeserializeObject<TicketResponseBody>(responseBody);
TempData["Message"] = "Ticked Created";
TempData["Id"] = jiraResponse.Id;
TempData["Key"] = jiraResponse.Key;
TempData["Self"] = jiraResponse.Self;
return RedirectToAction("Index", "Home");
}
}
Я зарегистрировал свое приложение в jira, чтобы получить ссылку, которая после доступа и получения разрешения вернет ключ доступа в URL, что я должен использовать для запроса токена.Я считаю, что у меня есть все ингредиенты, чтобы сделать эту работу, но я не могу найти какие-либо полезные учебники для кого-то с моим небольшим опытом (около 4 месяцев).