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

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 00:37:02334parcourir

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

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

Dans le monde du développement Web, l'authentification est cruciale pour sécuriser l'accès aux ressources protégées . Un mécanisme d'authentification courant est NTLM, qui implique l'utilisation des informations d'identification Windows de l'utilisateur pour vérifier son identité. Cet article explique comment implémenter l'authentification NTLM dans les requêtes HTTP Go, en utilisant les informations d'identification système de l'utilisateur Windows.

Traditionnellement, l'authentification NTLM nécessite la spécification manuelle d'un nom d'utilisateur et d'un mot de passe, mais notre objectif est d'éviter ce processus fastidieux. En tirant parti des capacités de l'objet COM WinHTTPRequest, nous pouvons exploiter les informations d'identification par défaut du système pour une expérience d'authentification transparente.

Pour y parvenir dans Go, nous utilisons la bibliothèque go-ole, qui fournit une interface pour interagir avec des objets COM. Voici un extrait de code qui illustre l'approche :

<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>

Dans ce code, nous créons une instance WinHTTPRequest, définissons la politique de connexion automatique pour autoriser l'authentification automatique, ouvrons une requête HTTP GET à une URL spécifiée et envoyons la demande. Enfin, nous récupérons le texte de la réponse. Le système récupérera de manière transparente les informations d'identification de l'utilisateur et effectuera l'authentification NTLM, permettant l'accès à la ressource protégée.

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