Подтвердить что ты не робот

Доступ к API Jira с использованием OAuth2.0 2-legged подхода в .NET.

Как создать токен доступа для API JIRA Rest? Из соответствующих данных у меня есть

  • Пользовательский ключ
  • Комбинация частных/открытых ключей

Jira Rest API Oauth example предполагает трехсторонний подход и очень неясно, какие фактические параметры для отправки (я хочу, чтобы Swagger был более широко использован стандарт!).

Более подробно у меня следующий прецедент: При создании нового сотрудника в приложении Web Forms (ASPX) мне нужно создать новую учетную запись JIRA и назначить ее проекту (и роли внутри проекта).

Как таковой, я хотел бы использовать аутентификацию OAuth2 с двумя ногами для этого. Возможно, я могу взломать его с помощью Basic Authentication, но я действительно хотел бы сделать это правильно.

Проблема возникает при попытке найти примеры кода, которые используют этот подход. Примеры .NET очень скудны, и даже примеры на других языках обычно используют базовую аутентификацию (имя пользователя и пароль, передаваемые по каждому вызову) или несколько, которые используют подход с тремя ногами.

Я нашел AnotherJiraRestClient, но посмотрел на код, использующий Restrient nuget (это хорошо), но с HttpBasicAuthenticator (это плохо).

Я прошел через все Аутентификаторы, которые предлагают, и OAuth2AuthorizationRequestHeaderAuthenticator выглядит многообещающим, но для этого требуется, чтобы я уже имел токен доступа. Поэтому в конце концов возникает вопрос: "Как создать токен доступа, используя двухъядерный подход?"

Я уже создал ссылку на ссылку JIRA с этими настройками:

  • Тип приложения: общее приложение
  • Исходящая аутентификация: (дает 500 ошибок сервера на стороне Jira... но не думаю, что это имеет значение, поскольку я не использую ее)
  • Входящая аутентификация: OAuth
    • Состояние: настроено
    • Ключ потребителя: TEST_JIRA_KEY
    • Открытый ключ:... (сгенерированный онлайн-закрытый/открытый ключ)
4b9b3361

Ответ 1

В настоящее время Atlassian не поддерживает OAuth 2.0, но только 1.0 (a).

Для этого есть запрос функции: https://jira.atlassian.com/browse/JRA-43171

Я создал клиента Open Source Jira в С#, > =.NET 4.5 и полностью async (с поддержкой прокси), который доступен в GitHub и как пакет NuGet. См.: https://github.com/dapplo/Dapplo.Jira

Сегодня я добавил поддержку OAuth 1.0a, которую я получил и использую здесь информацию для тестирования: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src/d625161454d1?at=default Я использовал открытый ключ из этого репозитория, чтобы установить тестовую ссылку на моем сервере Jira Cloud, и использовать закрытый ключ в моем тестовом случае.

Код для тестирования находится здесь (он прокомментировал, так как процесс OAuth открывает браузер, что плохо на тестовом сервере) https://github.com/dapplo/Dapplo.Jira/blob/master/Dapplo.Jira.Tests/JiraOAuthTests.cs

Я все еще ищу способ облегчить чтение сертификата/закрытого ключа, но в некотором роде это не является задачей самой библиотеки...

Если есть какие-либо вопросы, я думаю, что проблемы с GitHub - лучший способ общения.