>  기사  >  백엔드 개발  >  Go HTTP 요청에서 Windows 시스템 자격 증명으로 NTLM 인증을 수행하는 방법은 무엇입니까?

Go HTTP 요청에서 Windows 시스템 자격 증명으로 NTLM 인증을 수행하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 00:37:02252검색

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

Windows 시스템 자격 증명을 사용하여 Go HTTP 요청의 NTLM 인증

웹 개발 세계에서 인증은 보호된 리소스에 대한 액세스를 보호하는 데 매우 중요합니다. . 일반적인 인증 메커니즘 중 하나는 사용자의 Windows 자격 증명을 사용하여 신원을 확인하는 NTLM입니다. 이 문서에서는 Windows 사용자의 시스템 자격 증명을 활용하여 Go HTTP 요청에서 NTLM 인증을 구현하는 방법을 살펴봅니다.

일반적으로 NTLM 인증에서는 사용자 이름과 비밀번호를 수동으로 지정해야 하지만 우리의 목표는 이러한 번거로운 프로세스를 피하는 것입니다. WinHTTPRequest COM 개체의 기능을 활용하여 원활한 인증 경험을 위해 시스템의 기본 자격 증명을 활용할 수 있습니다.

Go에서 이를 달성하기 위해 상호 작용할 수 있는 인터페이스를 제공하는 go-ole 라이브러리를 사용합니다. COM 개체와 함께. 다음은 접근 방식을 보여주는 코드 조각입니다.

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

이 코드에서는 WinHTTPRequest 인스턴스를 생성하고 자동 인증을 허용하도록 자동 로그온 정책을 설정한 다음 지정된 URL에 대한 HTTP GET 요청을 열고 전송합니다. 요청. 마지막으로 응답 텍스트를 검색합니다. 시스템은 사용자의 자격 증명을 원활하게 가져오고 NTLM 인증을 수행하여 보호된 리소스에 대한 액세스를 허용합니다.

위 내용은 Go HTTP 요청에서 Windows 시스템 자격 증명으로 NTLM 인증을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.