首頁 > 後端開發 > Golang > 主體

如何在 Go HTTP 請求中使用 Windows 系統憑證執行 NTLM 驗證?

Susan Sarandon
發布: 2024-10-25 00:37:02
原創
260 人瀏覽過

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

使用Windows 系統憑證的Go HTTP 請求中的NTLM 驗證

在Web 開發領域,驗證對於保護對受保護資源的訪問至關重要。 NTLM 是一種常見的驗證機制,它涉及使用使用者的 Windows 憑證來驗證其身分。本文探討如何利用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!