typeAuthCnfgstruct {// SPSite or SPWeb URL, which is the context target for the API calls SiteURL string`json:"siteUrl"` Username string`json:"username"` Password string`json:"password"`// Following are not required for SPO Domain string`json:"domain"` RelyingParty string`json:"relyingParty"` AdfsURL string`json:"adfsUrl"` AdfsCookie string`json:"adfsCookie"`}
Gosip's ADFS also supports a scenario of ADFS or NTML behind WAP (Web Application Proxy) which adds additional auth flow and EdgeAccessCookie involved into play.
packagemainimport ("log"// "os""github.com/koltyakov/gosip" strategy "github.com/koltyakov/gosip/auth/adfs")funcmain() {// authCnfg := &strategy.AuthCnfg{// SiteURL: os.Getenv("SPAUTH_SITEURL"),// Username: os.Getenv("SPAUTH_USERNAME"),// Password: os.Getenv("SPAUTH_PASSWORD"),// /* other auth props ...*/// }// or using `private.json` creds source authCnfg :=&strategy.AuthCnfg{} configPath :="./config/private.json"if err := authCnfg.ReadConfig(configPath); err !=nil { log.Fatalf("unable to get config: %v", err) } client :=&gosip.SPClient{AuthCnfg: authCnfg}// use client in raw requests or bind it with Fluent API ...}