2016-06-03 8 views
13

So erstellen Sie ein Zugriffstoken für JIRA Rest API? Relevante Daten habe ichZugriff auf die Jira-API mit dem OAuth2.0-Ansatz mit zwei Beinen in .NET

  • Benutzerschlüssel
  • Private/Public-Key-Combo

Jira 's Rest API Oauth example nimmt an 3-legged Ansatz und ist sehr unklar, was die aktuellen Parameter zu senden (Ich wünschte, Swagger ist häufiger Standard!).

Ausführlicher habe ich folgenden Anwendungsfall: Beim Erstellen neuer Mitarbeiter in Web Forms (ASPX) -Portal-Anwendung muss ich neues JIRA-Konto erstellen und es Projekt zuweisen (und Rolle innerhalb des Projekts).

Als solche möchte ich OAuth2 2-legged Authentifizierung verwenden, um dies zu erreichen. Ich kann es wahrscheinlich mit Basic Authentication hacken, aber ich würde es wirklich gerne richtig machen.

Beim Versuch, Codebeispiele zu finden, die diesen Ansatz verwenden, tritt ein Problem auf. .NET-Beispiele sind wirklich selten, und selbst Beispiele in anderen Sprachen verwenden normalerweise die Basisauthentifizierung (Benutzername und Kennwort, die bei jedem Aufruf übertragen werden) oder wenige, die den 3-beinigen Ansatz verwenden.

Ich fand AnotherJiraRestClient, aber mit Blick auf den Code verwendet es RestClient nuget (das ist gut), aber mit HttpBasicAuthenticator (das ist schlecht).

Ich ging durch alle Authenticators, die im Angebot sind und OAuth2AuthorizationRequestHeaderAuthenticator sieht vielversprechend aus, aber es erfordert, dass ich bereits Zugriffstoken habe. Deshalb lautet die Frage am Ende: "Wie erstelle ich Zugangstoken, benutze einen 2-beinigen Ansatz?"

Ich habe bereits Anwendung Link auf der Seite des JIRA mit diesen Einstellungen:

  • Typ Anwendung: Generic Application
  • Abgehende Authentifizierung: (gibt 500 Server-Fehler auf Jira Seite ... aber glaube es nicht Angelegenheiten wie verwende ich es nicht)
  • Incoming-Authentifizierung: OAuth
    • Status: konfiguriert
    • Consumer K ey: TEST_JIRA_KEY
    • Public Key: ... (online erstellt private/öffentliche Schlüssel Combo)
+0

Haben Sie eine Lösung gefunden? Versuche, ähnliches zu tun, aber irgendwie mit den gleichen Problemen wie Sie stecken – Vilius

+0

@Vilius Sorry, aber nein ... Ich ging nur mit Basic Auth ... Hatte nicht die Zeit, mehr dafür auszugeben. – Igor

Antwort

2

Atlassian unterstützt derzeit keine OAuth 2.0, aber nur 1,0 (a).

Es gibt eine Feature-Anfrage für diesen: https://jira.atlassian.com/browse/JRA-43171

ich ein Open-Source-Jira-Client in C# gemacht habe,> = NET 4.5 und vollständig asynchrone (mit Proxy-Unterstützung), die auf GitHub verfügbar ist und als ein. NuGet Paket. Siehe: https://github.com/dapplo/Dapplo.Jira

Heute habe ich OAuth 1.0a Unterstützung, die ich habe zu arbeiten und nutzen die Informationen hier zum Testen: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src/d625161454d1?at=default ich den öffentlichen Schlüssel aus diesem Repository Setup Link ein Test verwendet, auf meinem Jira Cloud-Server und verwende den privaten Schlüssel in meinem Testfall.

Der Code für den Test ist hier (es ist auf Kommentar, da der OAuth-Prozess einen Browser öffnet, der auf dem Test-Server schlecht ist) https://github.com/dapplo/Dapplo.Jira/blob/master/Dapplo.Jira.Tests/JiraOAuthTests.cs

Ich suche immer noch auf einem Weg, um das Zertifikat zu machen/Das Lesen des privaten Schlüssels ist einfacher, aber in gewisser Weise ist dies nicht der Job für die Bibliothek selbst ...

Wenn es irgendwelche Fragen gibt, dann denke ich, dass Probleme auf GitHub der beste Weg zur Kommunikation sind.