2016-06-03 7 views
13

Как создать токен доступа для API JIRA Rest API? Из соответствующих данных у меня естьДоступ к API Jira с использованием OAuth2.0 2-legged подхода в .NET

  • ключ
  • Private/комбинированный открытый ключ пользователя

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

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

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

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

Я нашел AnotherJiraRestClient, но, глядя на код, он использует Restrigient nuget (это хорошо), но с HttpBasicAuthenticator (это плохо).

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

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

  • Применение Тип: Универсальное приложение
  • Исходящий Authentication: (дает ошибку 500 сервера на стороне JIRA ... но не думаю, что это вопросы, как я его не использую)
  • Incoming Authentication: OAuth
    • Статус: Настроен
    • Потребитель K еу: TEST_JIRA_KEY
    • Public Key: ... (генерируется онлайн частный/государственный комбинированный ключ)
+0

Вы нашли решение? Попытка сделать что-то подобное, но вроде бы застряла с такими же проблемами, как у вас – Vilius

+0

@Vilius Извините, но нет ... Я просто пошел с Basic Auth ... Не было времени потратить на это больше. – Igor

ответ

2

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

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

Я сделал клиент Open Source Jira в C#,> = NET 4.5 и полностью асинхронный (с поддержкой прокси), который доступен на 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 - лучший способ общения.