Maison  >  Article  >  développement back-end  >  Comment obtenir l'authentification NTLM avec les informations d'identification système dans les requêtes HTTP Go ?

Comment obtenir l'authentification NTLM avec les informations d'identification système dans les requêtes HTTP Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 02:43:29990parcourir

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

Authentification NTLM avec informations d'identification système dans les requêtes HTTP Go

En tant que développeur, vous pouvez rencontrer des scénarios dans lesquels vous devez effectuer des requêtes HTTP et vous authentifier en utilisant les informations d'identification système de l'utilisateur exécutant votre application. Dans les environnements Windows, cela peut être effectué à l'aide de l'authentification NTLM (Négociation Token Level Message). Bien qu'il existe des solutions disponibles en C# et Python, l'implémentation dans Go est moins simple.

Solution avec Go-ole

Après des recherches, nous avons constaté que le La bibliothèque go-ole donne accès à l'interface WinHTTPRequest, qui peut être utilisée pour effectuer une authentification NTLM avec les informations d'identification du système. Voici comment y parvenir :

<code class="go">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())
}</code>

Ce code initialise la bibliothèque ole et crée une instance WinHTTPRequest. La méthode SetAutoLogonPolicy est appelée pour activer l'utilisation des informations d'identification du système. Ensuite, la requête est envoyée avec les méthodes Open et Send. Enfin, le texte de la réponse est obtenu à l'aide de la propriété ResponseText.

Conclusion

À l'aide de la bibliothèque go-ole, vous pouvez exploiter l'interface WinHTTPRequest pour effectuer une authentification NTLM avec le système informations d'identification dans Go, offrant une approche transparente pour les requêtes HTTP dans les environnements Windows.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn