Alternative NTLM

NTLM handshake authentication

The default NTLM authentication uses go-ntlmssp - the great package by Azure team. However, we found rare environments where it fails for some reason. Fortunately, there is an alternative.

Usage sample

package main
import (
strategy ""
func main() {
authCnfg := &strategy.AuthCnfg{
SiteURL: os.Getenv("SPAUTH_SITEURL"),
Username: os.Getenv("SPAUTH_USERNAME"),
Domain: os.Getenv("SPAUTH_DOMAIN"),
Password: os.Getenv("SPAUTH_PASSWORD"),
client := &gosip.SPClient{AuthCnfg: authCnfg}
sp := api.NewSP(client)
res, err := sp.Web().Select("Title").Get()
if err != nil {
fmt.Printf("Site title: %s\n", res.Data().Title)

Use the alternative only as a fallback method if go-ntlmssp doesn't work and don't forget to post an issue to help making Open Source tools better.

Edit on GitHub