ホームページ  >  記事  >  バックエンド開発  >  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 認証

Web 開発の世界では、保護されたリソースへのアクセスを保護するために認証が重要です。一般的な認証メカニズムの 1 つは NTLM です。これには、ユーザーの Windows 資格情報を使用して ID を確認することが含まれます。この記事では、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。