40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# go-ntlmssp
|
|
|
|
[](https://pkg.go.dev/github.com/Azure/go-ntlmssp) [](https://github.com/Azure/go-ntlmssp/actions/workflows/test.yml)
|
|
|
|
Go package that provides NTLM/Negotiate authentication over HTTP
|
|
|
|
* NTLM protocol details from https://msdn.microsoft.com/en-us/library/cc236621.aspx
|
|
* NTLM over HTTP details from https://datatracker.ietf.org/doc/html/rfc4559
|
|
* Implementation hints from http://davenport.sourceforge.net/ntlm.html
|
|
|
|
This package only implements authentication, no key exchange or encryption. It
|
|
only supports Unicode (UTF16LE) encoding of protocol strings, no OEM encoding.
|
|
This package implements NTLMv2.
|
|
|
|
# Installation
|
|
|
|
To install the package, use `go get`:
|
|
|
|
```bash
|
|
go get github.com/Azure/go-ntlmssp
|
|
```
|
|
|
|
# Usage
|
|
|
|
```go
|
|
url, user, password := "http://www.example.com/secrets", "robpike", "pw123"
|
|
client := &http.Client{
|
|
Transport: ntlmssp.Negotiator{
|
|
RoundTripper: &http.Transport{},
|
|
},
|
|
}
|
|
|
|
req, _ := http.NewRequest("GET", url, nil)
|
|
req.SetBasicAuth(user, password)
|
|
res, _ := client.Do(req)
|
|
```
|
|
|
|
-----
|
|
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|