1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright 2014-2018 Grafana Labs
- // Released under the Apache 2.0 license
-
- // Modification notice:
- // 1. All field names were changed from toml and snake case to yaml and kebab case,
- // matching the Oragono project conventions
- // 2. Four fields were added:
- // 2.1 `Enabled`
- // 2.2 `Autocreate`
- // 2.3 `Timeout`
- // 2.4 `RequireGroups`
-
- // XXX: none of AttributeMap does anything in oragono, except MemberOf,
- // which can be used to retrieve group memberships
-
- package ldap
-
- import (
- "time"
- )
-
- type ServerConfig struct {
- Enabled bool
- Autocreate bool
-
- Host string
- Port int
- Timeout time.Duration
- UseSSL bool `yaml:"use-ssl"`
- StartTLS bool `yaml:"start-tls"`
- SkipVerifySSL bool `yaml:"ssl-skip-verify"`
- RootCACert string `yaml:"root-ca-cert"`
- ClientCert string `yaml:"client-cert"`
- ClientKey string `yaml:"client-key"`
-
- BindDN string `yaml:"bind-dn"`
- BindPassword string `yaml:"bind-password"`
- SearchFilter string `yaml:"search-filter"`
- SearchBaseDNs []string `yaml:"search-base-dns"`
-
- // user validation: require them to be in any one of these groups
- RequireGroups []string `yaml:"require-groups"`
-
- // two ways of testing group membership:
- // either by searching for groups that match the user's DN
- // and testing their names:
- GroupSearchFilter string `yaml:"group-search-filter"`
- GroupSearchFilterUserAttribute string `yaml:"group-search-filter-user-attribute"`
- GroupSearchBaseDNs []string `yaml:"group-search-base-dns"`
-
- // or by an attribute on the user's DN, typically named 'memberOf', but customizable:
- Attr AttributeMap `yaml:"attributes"`
- }
-
- // AttributeMap is a struct representation for LDAP "attributes" setting
- type AttributeMap struct {
- Username string
- Name string
- Surname string
- Email string
- MemberOf string `yaml:"member-of"`
- }
|