「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > システム資格情報を使用して Go HTTP リクエストで NTLM 認証を実行するにはどうすればよいですか?

システム資格情報を使用して Go HTTP リクエストで NTLM 認証を実行するにはどうすればよいですか?

2024 年 11 月 16 日に公開
ブラウズ:669

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

システム資格情報を使用した Go HTTP リクエストでの NTLM 認証

この質問では、ユーザーは Go HTTP で Windows NTML 認証を実行するためのガイダンスを求めています。呼び出し側ユーザーのシステム資格情報を使用してリクエストを実行します。これらの言語でこれを実現する方法を示す C# と Python の例が提供されています。

解決策は、Go で WinHTTPRequest を使用できるようにする go-ole ライブラリを利用することにあります。 Python の例と同様のアプローチに従うことで、Go でシステム資格情報を使用した NTML 認証を実装することができます。

これを実現する 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())
}

このコードは、WinHTTPRequest オブジェクトを初期化し、現在のユーザーの資格情報を使用するように自動ログオン ポリシーを設定し、指定された URL への GET 要求を開き、要求を送信し、応答テキストを取得します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3