„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erreicht man eine NTLM-Authentifizierung mit Systemanmeldeinformationen in Go-HTTP-Anfragen?

Wie erreicht man eine NTLM-Authentifizierung mit Systemanmeldeinformationen in Go-HTTP-Anfragen?

Veröffentlicht am 12.11.2024
Durchsuche:245

How to Achieve NTLM Authentication with System Credentials in Go HTTP Requests?

NTLM-Authentifizierung mit Systemanmeldeinformationen in Go-HTTP-Anfragen

Als Entwickler stoßen Sie möglicherweise auf Szenarien, in denen Sie HTTP-Anfragen stellen und authentifizieren müssen Verwenden der Systemanmeldeinformationen des Benutzers, der Ihre Anwendung ausführt. In Windows-Umgebungen kann dies mithilfe der NTLM-Authentifizierung (Negotiate Token Level Message) erfolgen. Während Lösungen in C# und Python verfügbar sind, ist die Implementierung in Go weniger einfach.

Lösung mit Go-ole

Nach Recherchen haben wir herausgefunden, dass die Die go-ole-Bibliothek bietet Zugriff auf die WinHTTPRequest-Schnittstelle, die zur Durchführung der NTLM-Authentifizierung mit Systemanmeldeinformationen verwendet werden kann. So erreichen Sie dies:

package main

import (
    "fmt"

    ole "github.com/go-ole/go-ole"
    "github.com/go-ole/go-ole/oleutil"
)

func main() {
    ole.CoInitialize(0)
    defer ole.CoUninitialize()
    unknown, _ := oleutil.CreateObject("WinHTTP.WinHTTPRequest.5.1")
    request, _ := unknown.QueryInterface(ole.IID_IDispatch)
    oleutil.CallMethod(request, "SetAutoLogonPolicy", 0)
    oleutil.CallMethod(request, "Open", "GET", "http://example.com", false)
    oleutil.CallMethod(request, "Send")
    resp := oleutil.MustGetProperty(request, "ResponseText")
    fmt.Println(resp.ToString())
}

Dieser Code initialisiert die Ole-Bibliothek und erstellt eine WinHTTPRequest-Instanz. Die SetAutoLogonPolicy-Methode wird aufgerufen, um die Verwendung von Systemanmeldeinformationen zu ermöglichen. Anschließend wird die Anfrage mit den Methoden Open und Send gesendet. Schließlich wird der Antworttext mithilfe der ResponseText-Eigenschaft abgerufen.

Schlussfolgerung

Mit der Go-Ole-Bibliothek können Sie die WinHTTPRequest-Schnittstelle nutzen, um eine NTLM-Authentifizierung mit dem System durchzuführen Anmeldeinformationen in Go und bietet einen nahtlosen Ansatz für HTTP-Anfragen in Windows-Umgebungen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3