TFS 2015-REST-API-Authentifizierung
Versuchen wir rufen die TFS 2015-REST-API aus einer web-Seite mit Javascript, und haben eine Herausforderung bei der Einführung gültige Authentifizierung mit dem TFS-server.
Wissen wir nicht, wie generieren Sie einen persönlichen Zugangs-Token oder ein OAuth access Token. Die Anleitung unten, scheinen mehr in Richtung VSO als on-premise TFS.
https://www.visualstudio.com/en-us/integrate/get-started/rest/basics
Wie kann ich das generieren einer Authentifizierungs-Schlüssel/token?
UPDATE: Wie auf der Mar 2017, die neueste Version der On-Prem TFS unterstützt die Erstellung von persönlichen Zugangs-Token für alle Benutzer. Anhand der folgenden javascript-code von @Elmar Sie können Anträge stellen, um zu aktualisieren, Bearbeiten von TFS-workitems aus REST-API.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den OAuth-Mechanismus wird verwendet, gegen die VSO-api zum Zeitpunkt des Schreibens dieses, als haben Sie scheinbar identifiziert. offizielle Dokumente für VSO OAuth-Token hier.
Für on-prem allerdings ist Folgendes erforderlich:
Über einen javascript-client (Hinweis: ich benutze jquery für ajax-Anfrage hier)
Da alternative creds oder token-basierte auth ist nicht verfügbar on-prem zu entsprechen aktuellen vso Umsetzung; Sie können betrachten Sie die folgende Vorgehensweise: Wenn Sie Administrator-Berechtigungen auf dem TFS-app tier, Sie können konfigurieren, dass die Standardauthentifizierung für das tfs-Anwendung in IIS, und legen Sie die Standard domain.
Und rufen Sie dann wie folgt vor:
WICHTIGER HINWEIS! : Wenn Sie enable-basic-auth, sollten Sie wirklich konfigurieren Sie Ihre Website für die Verwendung von https-zu oder Ihre Anmeldeinformationen werden unverschlüsselt gesendet werden (wie in der Warnung gesehen -> oben rechts im Bild oben).
Über eine .NET-client
In on-prem (derzeit rtm würde: 2015 update 1) die api ist in der Regel gated/eingezäunt mit NTLM, also ein pre-flight-Anfrage gestellt, 401 zurückgegeben vom server Herausforderung für auth in diesem Fall die Einstellung der Anfrage Berechtigung wie folgt erlaubt die Anforderung auth gegen den server, sobald der preflight-Herausforderung eingegangen ist.
Um Platz für die Herausforderung, die Sie dies tun können:
Wenn du Sie aktiviert hast basic auth für tfs on-prem können Sie versuchen, zu authentifizieren, wie folgt, dieses Muster entspricht der Mechanismus, der beim aufrufen der vso nach der Aktivierung von alternativen Anmeldeinformationen, die in der Benutzeroberfläche:
Hinweis: In einigen code habe ich geändert, vor ein paar Wochen; Unterstützung für beide VSO und on-prem erforderlich war, so habe ich die beiden Muster oben auf befassen sich mit dem konkreten Szenario.
headers: { 'Authorization': 'Basic ' + btoa("" + ":" + myPatToken) }
%systemroot%\system32\inetsrv\appcmd.exe list config "Team Foundation Server/tfs" -section:windowsAuthentication
. Sie können auchbasicAuthentication
zu den-section
argument und die Ausgabe, die. Dies wird jedoch nicht Ihnen sagen, genau, wie basic auth konfiguriert wurde. Die Vorgehensweise in meiner Antwort ist der Weg, um es zu aktivieren, nichts weniger.Meine Frage ist alt, aber wie auf der Mar 2017, die neueste Version der On-Prem TFS unterstützt die Erstellung von persönlichen Zugangs-Token für alle Benutzer. Mithilfe der javascript-code von @Elmar Sie können Anträge stellen, um zu aktualisieren, Bearbeiten von TFS-workitems aus REST-API.
Wenn möglich, würde ich empfehlen, mit die .NET-client-Bibliotheken für Visual Studio Team Services (und TFS):
https://www.visualstudio.com/en-us/docs/integrate/get-started/client-libraries/dotnet
Können Sie windows-Authentifizierung verwenden (das ist, was ich brauchte). Nachdem Sie die folgenden nuget-Pakete in meinem code:
Konnte ich folgenden code schreiben:
Siehe auch: https://www.visualstudio.com/en-us/docs/integrate/get-started/client-libraries/samples