// NewAuthorizerFromFile creates an Authorizer configured from a configuration file. func NewAuthorizerFromFile(baseURI string) (autorest.Authorizer, error) { fileLocation := os.Getenv("AZURE_AUTH_LOCATION") if fileLocation == "" { return nil, errors.New("auth file not found. Environment variable AZURE_AUTH_LOCATION is not set") } contents, err := ioutil.ReadFile(fileLocation) if err != nil { return nil, err } // Auth file might be encoded decoded, err := decode(contents) if err != nil { return nil, err } file := file{} err = json.Unmarshal(decoded, &file) if err != nil { return nil, err } resource, err := getResourceForToken(file, baseURI) if err != nil { return nil, err } config, err := adal.NewOAuthConfig(file.ActiveDirectoryEndpoint, file.TenantID) if err != nil { return nil, err } spToken, err := adal.NewServicePrincipalToken(*config, file.ClientID, file.ClientSecret, resource) if err != nil { return nil, err } return autorest.NewBearerAuthorizer(spToken), nil }