登录
首页 >  Golang >  Go问答

打开浏览器时如何使用 NTLM 身份验证

来源:stackoverflow

时间:2024-03-07 15:03:27 153浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《打开浏览器时如何使用 NTLM 身份验证》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在尝试模拟浏览器,打开 intranet url 并获取状态代码 401。如何使用 ntl auth 或登录打开 url,通过? 谢谢

package main

import (
    "gopkg.in/headzoo/surf.v1"
        "fmt"
)

func main() {
    bow := surf.NewBrowser()
    bow.AddRequestHeader("Accept", "text/html")
    bow.AddRequestHeader("Accept-Charset", "utf8")
    err := bow.Open(url)
    if err != nil {
        panic(err)
    }

    fmt.Println(bow.StatusCode())
}

解决方案


我假设用户已通过 AD 域进行身份验证。

首先 - NTLM 协议并不像下面这样简单基本身份验证。它是一个涉及一些系统/用户特定数据的多步骤协议。客户端和服务器需要在协商 HTTP 标头中交换一些质询/应答数据。

我建议使用开箱即用的库;例如 go-ntlmsspgokrb5

注意:使用 SPNEGO(NTLM over HTTP)身份验证时,根据 AD 设置,如果用户/服务主体具有太多角色,则协商 HTTP 标头可能会变得非常大。如果您对 HTTP 标头有任何默认限制,您可以注意是否未达到限制。

今天关于《打开浏览器时如何使用 NTLM 身份验证》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>