Übergeben Sie NTLM mit Postman

73

Gibt es einen Weg, um Windows Authenticationmit zu gehen postman?

Ich habe dies aber noch in der Kopfzeile hinzugefügt 401 Unauthorized.

Authorization: NTLM TkFcYWRtaW46dGVzdA==

Wie von diesem Link vorgeschlagen. Ich habe als Unicode (UTF-16, little-endian)aber nutzlos verschlüsselt .

Irgendwelche Ideen?


quelle
1
Ich denke, hier sind zwei Aspekte zu berücksichtigen: Authentifizierung gegen einen Proxy oder Authentifizierung gegen den Zielserver.
Constantino Cronemberger

Antworten:

30

Ich glaube nicht, dass es einen Weg gibt, das zu tun. Aber du bist nicht der Einzige, der es will ...

https://github.com/postmanlabs/postman-app-support/issues/1137

[BEARBEITEN] Nach dem Hinzufügen dieser Bearbeitung hat Postman in seiner neuesten Version die NTLM-Authentifizierung in der Beta-Version.

https://www.getpostman.com/docs/v6/postman/sending_api_requests/authorization

Spiralis
quelle
4
Es scheint, dass v5.3.0 diese Funktion haben wird. Ein Update für den Issue-Thread ist gerade
eingetroffen
Funktioniert für mich mit v5.3.2!
Matt Varblow
2
Sieht aus wie es wieder kaputt ist. Die Probleme sind alle geschlossen, aber es funktioniert nicht mit Version 6.0.10. Die Antwort, die die Verwendung von Fiddler vorschlägt, funktioniert.
Constantino Cronemberger
Dies scheint der aktive Fehler zu sein, der noch offen ist. github.com/postmanlabs/postman-app-support/issues/4355
Jim
1
Bitte seien Sie vorsichtig damit! Wenn Sie keine Variablen verwenden (wie in der GUI vorgeschlagen), wird Ihr Kennwort in erkennbarer Textform protokolliert. (In C:\Users\...\AppData\Roaming\Postman\IndexedDB\file__0.indexeddb.leveldb\000NNN.log)
Yahoo Serious
110

Ich habe das zum Laufen gebracht, indem ich zuerst Fiddler ausgeführt habe.

  1. Führen Sie Fiddler aus (ich verwende 4.6.2.3)
  2. Fiddler-Menü: Regel -> Automatisch authentifizieren = wahr
  3. Postbote: Überprüfen Sie, ob der Autorisierungstyp = Keine Authentifizierung ist
  4. API durchsuchen.
PabloBlamirez
quelle
In meinem Fall scheint es so, als müsste ich die ganze Zeit im Hintergrund Fiddler ausführen. Gibt es eine Problemumgehung dafür? Ich möchte den Geiger nicht offen lassen, er ist zu schwer
Ghiscoding
1
Ja, Sie müssen Fiddler ausführen, während Sie Ihre API testen. Ich kenne keinen Weg, es ohne Geiger zu tun.
PabloBlamirez
1
Für die NTLM-Authentifizierung gegen einen Proxy müssen Sie diese Problemumgehung verwenden, bis dieses Problem behoben ist: github.com/postmanlabs/postman-app-support/issues/3692
Constantino Cronemberger
1
obwohl ich immer noch nicht weiß, warum nur das funktioniert. Es hat mir vorerst beim Testen geholfen. Vielen Dank.
Eakan Gopalakrishnan
46

Sie können die NTLM-Autorisierung verwenden, die auf der Registerkarte Autorisierung wie auf diesem Foto vorhanden ist

Geben Sie hier die Bildbeschreibung ein

Hala
quelle
4
Username
Denken Sie
3
Ich habe es versucht, es gibt mir immer noch 401 nicht autorisierten Fehler. Ich greife auf die von SharePoint 2010 gehostete Web-API zu
Xiao Han
Überprüfen Sie die Einstellungen des Postboten Schalten Sie alle Einstellungen auf "Aus". Dies funktionierte für mich
George Livingston
@ XiaoHan folgen Tonatio und fügen Sie die Domain in sein Feld anstelle von Benutzername
sujit tiwari
2
Bitte seien Sie vorsichtig damit! Wenn Sie keine Variablen verwenden (wie die GUI im Screenshot bereits andeutet, siehe Alexeis Antwort darauf), wird Ihr Passwort in erkennbarer Textform protokolliert. (In C:\Users\...\AppData\Roaming\Postman\IndexedDB\file__0.indexeddb.leveldb\000NNN.log) Es wird auch irgendwo gespeichert, da es für nachfolgende Anforderungen wiederhergestellt wird.
Yahoo Serious
8

Ich schlage vor, Schlaflosigkeit zu verwenden . Es ist kostenlos und die Dokumentation zum Hinzufügen von NTLM Auth finden Sie hier: https://insomnia.rest/documentation/authentication/

Moch Yusup
quelle
Ich konnte Postman 7.2.2 nicht dazu bringen, mit NTLM zu arbeiten. Ich gab schließlich auf und versuchte es mit Schlaflosigkeit, und es funktioniert beim ersten Mal einwandfrei.
Kevin Finck
3

Die NTLM-Authentifizierung funktioniert mit der Chrome-Plugin-Version von Postman, da die integrierte Chrome NTLM-Authentifizierung mit dem Plugin verwendet werden kann. Plugins werden von Chrome jedoch nicht mehr unterstützt, sodass diese Version nicht mehr installiert und verwendet werden kann.

Die aktuelle App-Version von Postman (sowohl die Chrome-App als auch die native App-Version) unterstützt keine NTLM-Authentifizierung.

M. Justin
quelle
1
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. - Aus dem Rückblick
Peter Hall
1
@PeterHall Wie wäre es, wenn es als "NTLM-Authentifizierung funktioniert mit dem älteren Postman Chrome-Plugin ..." neu gefasst würde? Die Frage besagt nicht speziell, dass es sich um die Chrome-App handelt (obwohl man vermuten kann, dass der Fragesteller diese verwendet hat).
M. Justin
2
@ PeterHall Danke für die Verbesserungsvorschläge. Ich habe meine Antwort entsprechend aktualisiert.
M. Justin
2

Ich werde die HalaAntwort verbessern , da sie aufgrund des Speicherns von Anmeldeinformationen in der Anforderung problematisch ist und diese möglicherweise in einem gemeinsam genutzten Repository gespeichert bleiben, wenn eines verwendet wird.

Löschen Sie die Anmeldeinformationen, sobald eine Anforderung erfolgreich ausgegeben wurde

Eine Möglichkeit besteht darin, die Anmeldeinformationen - Benutzername, Kennwort und Domäne - einzugeben, die Anforderung zu stellen und sie zu entfernen. Nachfolgende Anforderungen funktionieren wahrscheinlich aufgrund der Verwendung desselben NTLM-Authentifizierungsheaders, da Postman einen temporären Autorisierungsheader (unscharf) mit einem Wert wie dem folgenden hinzufügt:NTLM some_base64_content

Verwenden Sie Umgebungsvariablen (oder besser globale Variablen, wie von vorgeschlagen SSS), um vertrauliche Daten zu speichern

Definieren Sie eine zu verwendende Umgebung und konfigurieren Sie sie ähnlich wie folgt:

Umgebung konfigurieren

Verwenden Sie konfigurierte Umgebungsvariablen in der Anforderung:

Autorisierungsdaten anfordern

Alexei
quelle
1
Gute Antwort. Eine kleine Verbesserung besteht darin, die Anmeldeinformationen in globalen Variablen und nicht in einer Umgebung zu speichern. Auf diese Weise können Sie die Umgebung mit Ihrem Team teilen.
SSS
@SSS - ja. Ich habe diese Antwort gepostet, als die NTLM-Unterstützung noch in den Kinderschuhen steckte (ein Szenario, das sogar Postman zum Absturz brachte). Damals war es viel einfacher, die veraltete Chrome-Erweiterung zu verwenden, um von der Windows-Authentifizierung zu profitieren, ohne etwas zu tun.
Alexei
1

Sie können auch die Internetoptionen ändern und die Anmeldung auf Folgendes setzen: Automatische Anmeldung mit aktuellem Benutzernamen und Kennwort

entnommen aus: https://sysadminspot.com/windows/google-chrome-and-ntlm-auto-logon-using-windows-authentication/

Wenn die Website https verwendet, können Sie sie zu vertrauenswürdigen Sites hinzufügen und dort festlegen. Andernfalls können Sie sie zu lokalen Intranetsites hinzufügen und dort die benutzerdefinierte Ebene festlegen.

Offene Internetoptionen: Offene Internetoptionen

Klicken Sie auf Benutzerdefinierte Ebene ... und scrollen Sie nach unten:

Klicken Sie auf Benutzerdefinierte Ebene ... und scrollen Sie nach unten

pajics
quelle
1

Dies wurde der Postman-Anwendung in 5.3.0 hinzugefügt. Diese Unterstützung wurde jedoch in 5.4.1 unterbrochen und blieb bis 7.14.0 gemäß Postman App-Ausgabe Nr. 4355 unterbrochen . Das Aktualisieren der App auf eine neuere Version von Postman sollte daher die Verwendung der NTLM-Authentifizierung ermöglichen.

Beachten Sie, dass Postman derzeit nur die NTLMv1-Authentifizierung unterstützt, nicht jedoch NTLMv2 gemäß Postman App-Problem Nr. 8038 .

M. Justin
quelle
0

Postman führt NTLM jetzt nur auf seinen Desktop-Apps aus.

Geschwindigkeit_Distanz
quelle
-6

Wenn Sie Ihre API in C # entwickeln, können Sie auf Ihrem Basis-Controller Folgendes verwenden

#if !DEBUG 
   [Authorize] 
#endif
loona70
quelle
Ich möchte den aktuellen Benutzernamen erhalten, während ich den API-Aufruf ausführe. Wie können Sie dies erreichen, indem Sie Authorize deaktivieren?
Cdev