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 サイトの他の関連記事を参照してください。