Documentation
¶
Index ¶
- Constants
- Variables
- func DecodeAlgorithmDigest(encodedDigest string) (digest algorithm.Digest, err error)
- func PBKDF2VariantDefaultIterations(variant string) int
- type AccessControl
- type AccessControlNetwork
- type AccessControlRule
- type AccessControlRuleDomains
- type AccessControlRuleMethods
- type AccessControlRuleQuery
- type AccessControlRuleRegex
- type AccessControlRuleSubjects
- type Address
- func NewAddress(value string) (address *Address, err error)
- func NewAddressDefault(value, schemeDefault, schemeDefaultPath string) (address *Address, err error)
- func NewAddressFromNetworkPathValues(network, host string, port uint16, path string) Address
- func NewAddressFromNetworkValues(network, host string, port uint16) Address
- func NewAddressFromNetworkValuesDefault(value string, port uint16, schemeDefault, schemeDefaultPath string) (address *Address, err error)
- func NewAddressFromURL(u *url.URL) (addr *Address, err error)
- func NewAddressUnix(path string) Address
- func (a *Address) Dial() (net.Conn, error)
- func (a *Address) Host() string
- func (a *Address) Hostname() string
- func (a *Address) IsExplicitlySecure() bool
- func (a *Address) IsFileDescriptor() bool
- func (a *Address) IsTCP() bool
- func (a *Address) IsUDP() bool
- func (a *Address) IsUnixDomainSocket() bool
- func (Address) JSONSchema() *jsonschema.Schema
- func (a *Address) Listener() (ln net.Listener, err error)
- func (a *Address) Network() string
- func (a *Address) NetworkAddress() string
- func (a *Address) Path() string
- func (a *Address) Port() uint16
- func (a *Address) RouterPath() string
- func (a *Address) Scheme() string
- func (a *Address) SetHostname(hostname string)
- func (a *Address) SetPath(path string)
- func (a *Address) SetPort(port uint16)
- func (a *Address) SocketHostname() string
- func (a *Address) String() string
- func (a *Address) Umask() string
- func (a *Address) Valid() bool
- func (a *Address) ValidateHTTP() error
- func (a *Address) ValidateLDAP() error
- func (a *Address) ValidateListener() error
- func (a *Address) ValidateSMTP() error
- func (a *Address) ValidateSQL() error
- type AddressLDAP
- type AddressSMTP
- type AddressTCP
- type AddressUDP
- type AuthenticationBackend
- type AuthenticationBackendExtraAttribute
- type AuthenticationBackendFile
- type AuthenticationBackendFilePassword
- type AuthenticationBackendFilePasswordArgon2
- type AuthenticationBackendFilePasswordBcrypt
- type AuthenticationBackendFilePasswordPBKDF2
- type AuthenticationBackendFilePasswordSHA2Crypt
- type AuthenticationBackendFilePasswordScrypt
- type AuthenticationBackendFileSearch
- type AuthenticationBackendLDAP
- type AuthenticationBackendLDAPAttributes
- type AuthenticationBackendLDAPAttributesAttribute
- type AuthenticationBackendLDAPPooling
- type AuthenticationBackendPasswordChange
- type AuthenticationBackendPasswordReset
- type CSPTemplate
- type Configuration
- type CryptographicKey
- type CryptographicPrivateKey
- type Definitions
- type DuoAPI
- type ErrorContainer
- type IdentityProviders
- type IdentityProvidersOpenIDConnect
- type IdentityProvidersOpenIDConnectCORS
- type IdentityProvidersOpenIDConnectClaimsPolicy
- type IdentityProvidersOpenIDConnectClient
- type IdentityProvidersOpenIDConnectClientURIs
- type IdentityProvidersOpenIDConnectCustomClaim
- type IdentityProvidersOpenIDConnectCustomClaims
- type IdentityProvidersOpenIDConnectDiscovery
- type IdentityProvidersOpenIDConnectLifespan
- type IdentityProvidersOpenIDConnectLifespanGrants
- type IdentityProvidersOpenIDConnectLifespanToken
- type IdentityProvidersOpenIDConnectLifespans
- type IdentityProvidersOpenIDConnectPolicy
- type IdentityProvidersOpenIDConnectPolicyRule
- type IdentityProvidersOpenIDConnectScope
- type IdentityValidation
- type IdentityValidationElevatedSession
- type IdentityValidationResetPassword
- type JWK
- type Log
- type NTP
- type Notifier
- type NotifierFileSystem
- type NotifierSMTP
- type PasswordDigest
- func (d *PasswordDigest) GetPlainTextValue() (value []byte, err error)
- func (d *PasswordDigest) IsPlainText() (is bool)
- func (PasswordDigest) JSONSchema() *jsonschema.Schema
- func (d *PasswordDigest) MarshalYAML() (value any, err error)
- func (d *PasswordDigest) PlainText() (digest *plaintext.Digest, ok bool)
- func (d *PasswordDigest) UnmarshalYAML(value *yaml.Node) (err error)
- func (d *PasswordDigest) Valid() (valid bool)
- type PasswordPolicy
- type PasswordPolicyStandard
- type PasswordPolicyZXCVBN
- type PrivacyPolicy
- type RefreshIntervalDuration
- func (d RefreshIntervalDuration) Always() bool
- func (RefreshIntervalDuration) JSONSchema() *jsonschema.Schema
- func (d RefreshIntervalDuration) Never() bool
- func (d RefreshIntervalDuration) Update() bool
- func (d RefreshIntervalDuration) Valid() bool
- func (d RefreshIntervalDuration) Value() time.Duration
- type Regulation
- type Server
- type ServerBuffers
- type ServerEndpointRateLimit
- type ServerEndpointRateLimitBucket
- type ServerEndpointRateLimits
- type ServerEndpoints
- type ServerEndpointsAuthz
- type ServerEndpointsAuthzAuthnStrategy
- type ServerHeaders
- type ServerTLS
- type ServerTimeouts
- type Session
- type SessionCookie
- type SessionCookieCommon
- type SessionRedis
- type SessionRedisHighAvailability
- type SessionRedisHighAvailabilityNode
- type Storage
- type StorageLocal
- type StorageMySQL
- type StoragePostgreSQL
- type StoragePostgreSQLSSL
- type StoragePostgreSQLServer
- type StorageSQL
- type StructValidator
- func (v *StructValidator) Clear()
- func (v *StructValidator) Errors() []error
- func (v *StructValidator) HasErrors() bool
- func (v *StructValidator) HasWarnings() bool
- func (v *StructValidator) Push(err error)
- func (v *StructValidator) PushWarning(err error)
- func (v *StructValidator) Warnings() []error
- type TLS
- type TLSVersion
- type TOTP
- type Telemetry
- type TelemetryMetrics
- type UserAttribute
- type WebAuthn
- type WebAuthnFiltering
- type WebAuthnMetadata
- type WebAuthnSelectionCriteria
- type X509CertificateChain
- func (c *X509CertificateChain) Certificates() (certificates []*x509.Certificate)
- func (c *X509CertificateChain) CertificatesRaw() (certificates [][]byte)
- func (c *X509CertificateChain) EncodePEM() (encoded []byte, err error)
- func (c *X509CertificateChain) Equal(other *x509.Certificate) (equal bool)
- func (c *X509CertificateChain) EqualKey(other any) (equal bool)
- func (c *X509CertificateChain) HasCertificates() (has bool)
- func (X509CertificateChain) JSONSchema() *jsonschema.Schema
- func (c *X509CertificateChain) Leaf() (leaf *x509.Certificate)
- func (c *X509CertificateChain) Thumbprint(hash crypto.Hash) []byte
- func (c *X509CertificateChain) Validate() (err error)
Constants ¶
const ( SHA1Lower = "sha1" SHA224Lower = "sha224" SHA256Lower = "sha256" SHA384Lower = "sha384" SHA512Lower = "sha512" )
const ( // TLSVersion13 is the textual representation of TLS 1.3. TLSVersion13 = "TLS1.3" // TLSVersion12 is the textual representation of TLS 1.2. TLSVersion12 = "TLS1.2" // TLSVersion11 is the textual representation of TLS 1.1. TLSVersion11 = "TLS1.1" // TLSVersion10 is the textual representation of TLS 1.0. TLSVersion10 = "TLS1.0" // SSLVersion30 is the textual representation of SSL 3.0. SSLVersion30 = "SSL3.0" // Version13 is the textual representation of version 1.3. Version13 = "1.3" // Version12 is the textual representation of version 1.2. Version12 = "1.2" // Version11 is the textual representation of version 1.1. Version11 = "1.1" // Version10 is the textual representation of version 1.0. Version10 = "1.0" )
const ( // ProfileRefreshAlways represents a value for refresh_interval that's the same as 0ms. ProfileRefreshAlways = "always" // ProfileRefreshDisabled represents a Value for refresh_interval that disables the check entirely. ProfileRefreshDisabled = "disable" // RefreshIntervalDefault represents the default value of refresh_interval. RefreshIntervalDefault = time.Minute * 5 )
const ( // LDAPImplementationCustom is the string for the custom LDAP implementation. LDAPImplementationCustom = "custom" // LDAPImplementationActiveDirectory is the string for the Active Directory LDAP implementation. LDAPImplementationActiveDirectory = "activedirectory" // LDAPImplementationRFC2307bis is the string for the RFC2307bis LDAP implementation. LDAPImplementationRFC2307bis = "rfc2307bis" // LDAPImplementationFreeIPA is the string for the FreeIPA LDAP implementation. LDAPImplementationFreeIPA = "freeipa" // LDAPImplementationLLDAP is the string for the lldap LDAP implementation. LDAPImplementationLLDAP = "lldap" // LDAPImplementationGLAuth is the string for the GLAuth LDAP implementation. LDAPImplementationGLAuth = "glauth" )
const ( // LDAPGroupSearchModeFilter is the string for the filter group search mode. LDAPGroupSearchModeFilter = "filter" // LDAPGroupSearchModeMemberOf is the string for the memberOf group search mode. LDAPGroupSearchModeMemberOf = "memberof" )
const ( TOTPAlgorithmSHA1 = "SHA1" TOTPAlgorithmSHA256 = "SHA256" TOTPAlgorithmSHA512 = "SHA512" )
TOTP Algorithm.
const ( // TOTPSecretSizeDefault is the default secret size. TOTPSecretSizeDefault = 32 // TOTPSecretSizeMinimum is the minimum secret size. TOTPSecretSizeMinimum = 20 )
const ( SchemeBasic = "basic" SchemeBearer = "bearer" )
Authorization Schemes.
const ( AuthzEndpointNameLegacy = "legacy" AuthzEndpointNameAuthRequest = "auth-request" AuthzEndpointNameExtAuthz = "ext-authz" AuthzEndpointNameForwardAuth = "forward-auth" AuthzImplementationLegacy = "Legacy" AuthzImplementationAuthRequest = "AuthRequest" AuthzImplementationExtAuthz = "ExtAuthz" AuthzImplementationForwardAuth = "ForwardAuth" AuthzStrategyHeaderCookieSession = "CookieSession" AuthzStrategyHeaderAuthorization = "HeaderAuthorization" AuthzStrategyHeaderProxyAuthorization = "HeaderProxyAuthorization" AuthzStrategyHeaderAuthRequestProxyAuthorization = "HeaderAuthRequestProxyAuthorization" AuthzStrategyHeaderLegacy = "HeaderLegacy" )
Authz values.
const ( AddressSchemeTCP = "tcp" AddressSchemeTCP4 = "tcp4" AddressSchemeTCP6 = "tcp6" AddressSchemeUDP = "udp" AddressSchemeUDP4 = "udp4" AddressSchemeUDP6 = "udp6" AddressSchemeUnix = "unix" AddressSchemeLDAP = "ldap" AddressSchemeLDAPS = "ldaps" AddressSchemeLDAPI = "ldapi" AddressSchemeSMTP = "smtp" AddressSchemeSUBMISSION = "submission" AddressSchemeSUBMISSIONS = "submissions" AddressSchemeFileDescriptor = "fd" )
Address Schemes.
const ( // RememberMeDisabled represents the duration for a disabled remember me session configuration. RememberMeDisabled = time.Second * -1 )
Variables ¶
var DefaultACLRule = []AccessControlRule{ { Domains: []string{"public.example.com"}, Policy: "bypass", }, { Domains: []string{"singlefactor.example.com"}, Policy: "one_factor", }, { Domains: []string{"secure.example.com"}, Policy: policyTwoFactor, }, }
DefaultACLRule represents the default configuration related to access control rule configuration.
var DefaultCIPasswordConfig = AuthenticationBackendFilePassword{ Algorithm: argon2, Argon2: AuthenticationBackendFilePasswordArgon2{ Iterations: 3, Memory: 64, Parallelism: 4, KeyLength: 32, SaltLength: 16, }, SHA2Crypt: AuthenticationBackendFilePasswordSHA2Crypt{ Variant: SHA512Lower, Iterations: 50000, SaltLength: 16, }, }
DefaultCIPasswordConfig represents the default configuration related to Argon2id hashing for CI.
var DefaultIdentityValidation = IdentityValidation{ ResetPassword: IdentityValidationResetPassword{ JWTExpiration: time.Minute * 5, JWTAlgorithm: "HS256", }, ElevatedSession: IdentityValidationElevatedSession{ CodeLifespan: time.Minute * 5, ElevationLifespan: time.Minute * 10, Characters: 8, }, }
DefaultIdentityValidation has the default values for the IdentityValidation configuration.
var DefaultLDAPAuthenticationBackendConfigurationImplementationActiveDirectory = AuthenticationBackendLDAP{ UsersFilter: "(&(|({username_attribute}={input})({mail_attribute}={input}))(sAMAccountType=805306368)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(pwdLastSet=0))(|(!(accountExpires=*))(accountExpires=0)(accountExpires>={date-time:microsoft-nt})))", GroupsFilter: "(&(member={dn})(|(sAMAccountType=268435456)(sAMAccountType=536870912)))", GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ DistinguishedName: ldapAttrDistinguishedName, Username: ldapAttrSAMAccountName, DisplayName: ldapAttrDisplayName, FamilyName: ldapAttrSurname, GivenName: ldapAttrGivenName, MiddleName: ldapAttrMiddleName, Website: "wWWHomePage", Mail: ldapAttrMail, PhoneNumber: "telephoneNumber", StreetAddress: "streetAddress", Locality: "l", Region: "st", PostalCode: "postalCode", Country: "c", MemberOf: ldapAttrMemberOf, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 5, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationActiveDirectory represents the default LDAP config for the LDAPImplementationActiveDirectory Implementation.
var DefaultLDAPAuthenticationBackendConfigurationImplementationCustom = AuthenticationBackendLDAP{ GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ Username: ldapAttrUserID, DisplayName: ldapAttrDisplayName, Mail: ldapAttrMail, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 20, Pooling: AuthenticationBackendLDAPPooling{ Count: 5, Retries: 2, Timeout: time.Second * 10, }, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationCustom represents the default LDAP config.
var DefaultLDAPAuthenticationBackendConfigurationImplementationFreeIPA = AuthenticationBackendLDAP{ UsersFilter: "(&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=person)(!(nsAccountLock=TRUE))(krbPasswordExpiration>={date-time:generalized})(|(!(krbPrincipalExpiration=*))(krbPrincipalExpiration>={date-time:generalized})))", GroupsFilter: "(&(member={dn})(objectClass=groupOfNames))", GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ Username: ldapAttrUserID, DisplayName: ldapAttrDisplayName, Mail: ldapAttrMail, MemberOf: ldapAttrMemberOf, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 5, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationFreeIPA represents the default LDAP config for the LDAPImplementationFreeIPA Implementation.
var DefaultLDAPAuthenticationBackendConfigurationImplementationGLAuth = AuthenticationBackendLDAP{ UsersFilter: "(&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=posixAccount)(!(accountStatus=inactive)))", GroupsFilter: "(&(uniqueMember={dn})(objectClass=posixGroup))", GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ Username: ldapAttrCommonName, DisplayName: ldapAttrDescription, Mail: ldapAttrMail, MemberOf: ldapAttrMemberOf, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 5, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationGLAuth represents the default LDAP config for the LDAPImplementationGLAuth Implementation.
var DefaultLDAPAuthenticationBackendConfigurationImplementationLLDAP = AuthenticationBackendLDAP{ AdditionalUsersDN: "OU=people", AdditionalGroupsDN: "OU=groups", UsersFilter: "(&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=person))", GroupsFilter: "(&(member={dn})(objectClass=groupOfUniqueNames))", GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ Username: ldapAttrUserID, DisplayName: ldapAttrCommonName, Mail: ldapAttrMail, MemberOf: ldapAttrMemberOf, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 5, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationLLDAP represents the default LDAP config for the LDAPImplementationLLDAP Implementation.
var DefaultLDAPAuthenticationBackendConfigurationImplementationRFC2307bis = AuthenticationBackendLDAP{ UsersFilter: "(&(|({username_attribute}={input})({mail_attribute}={input}))(|(objectClass=inetOrgPerson)(objectClass=organizationalPerson)))", GroupsFilter: "(&(|(member={dn})(uniqueMember={dn}))(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames)(objectClass=groupOfMembers))(!(pwdReset=TRUE)))", GroupSearchMode: ldapGroupSearchModeFilter, Attributes: AuthenticationBackendLDAPAttributes{ Username: ldapAttrUserID, DisplayName: ldapAttrDisplayName, Mail: ldapAttrMail, MemberOf: ldapAttrMemberOf, GroupName: ldapAttrCommonName, }, Timeout: time.Second * 5, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultLDAPAuthenticationBackendConfigurationImplementationRFC2307bis represents the default LDAP config for the LDAPImplementationRFC2307bis Implementation.
var DefaultLoggingConfiguration = Log{
Level: "info",
Format: "text",
}
DefaultLoggingConfiguration is the default logging configuration.
var DefaultMySQLStorageConfiguration = StorageMySQL{ StorageSQL: StorageSQL{ Address: &AddressTCP{Address{true, false, -1, 3306, nil, &url.URL{Scheme: AddressSchemeTCP, Host: "localhost:3306"}}}, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }, }
DefaultMySQLStorageConfiguration represents the default MySQL configuration.
var DefaultNTPConfiguration = NTP{ Address: &AddressUDP{Address{valid: true, socket: false, port: 123, url: &url.URL{Scheme: AddressSchemeUDP, Host: "time.cloudflare.com:123"}}}, Version: 4, MaximumDesync: time.Second * 3, }
DefaultNTPConfiguration represents default configuration parameters for the NTP server.
var DefaultOpenIDConnectClientConfiguration = IdentityProvidersOpenIDConnectClient{ AuthorizationPolicy: policyTwoFactor, Scopes: []string{"openid", "groups", "profile", "email"}, ResponseTypes: []string{"code"}, ResponseModes: []string{"form_post"}, AuthorizationSignedResponseAlg: "RS256", IDTokenSignedResponseAlg: "RS256", AccessTokenSignedResponseAlg: "none", UserinfoSignedResponseAlg: "none", IntrospectionSignedResponseAlg: "none", RequestedAudienceMode: "explicit", ConsentMode: "auto", ConsentPreConfiguredDuration: &defaultOIDCClientConsentPreConfiguredDuration, }
DefaultOpenIDConnectClientConfiguration contains defaults for OIDC Clients.
var DefaultOpenIDConnectConfiguration = IdentityProvidersOpenIDConnect{ Lifespans: IdentityProvidersOpenIDConnectLifespans{ IdentityProvidersOpenIDConnectLifespanToken: IdentityProvidersOpenIDConnectLifespanToken{ AccessToken: time.Hour, AuthorizeCode: time.Minute, IDToken: time.Hour, RefreshToken: time.Minute * 90, }, DeviceCode: time.Minute * 10, }, EnforcePKCE: "public_clients_only", }
DefaultOpenIDConnectConfiguration contains defaults for OIDC.
var DefaultOpenIDConnectPolicyConfiguration = IdentityProvidersOpenIDConnectPolicy{
DefaultPolicy: policyTwoFactor,
}
var DefaultPasswordConfig = AuthenticationBackendFilePassword{ Algorithm: argon2, Argon2: AuthenticationBackendFilePasswordArgon2{ Variant: argon2id, Iterations: 3, Memory: 64 * 1024, Parallelism: 4, KeyLength: 32, SaltLength: 16, }, SHA2Crypt: AuthenticationBackendFilePasswordSHA2Crypt{ Variant: SHA512Lower, Iterations: 50000, SaltLength: 16, }, PBKDF2: AuthenticationBackendFilePasswordPBKDF2{ Variant: SHA512Lower, Iterations: defaultIterationsPBKDF2SHA512, SaltLength: 16, }, Bcrypt: AuthenticationBackendFilePasswordBcrypt{ Variant: "standard", Cost: 12, }, Scrypt: AuthenticationBackendFilePasswordScrypt{ Variant: "scrypt", Iterations: 16, BlockSize: 8, Parallelism: 1, KeyLength: 32, SaltLength: 16, }, }
DefaultPasswordConfig represents the default configuration related to Argon2id hashing.
var DefaultPasswordPolicyConfiguration = PasswordPolicy{ Standard: PasswordPolicyStandard{ MinLength: 8, MaxLength: 0, }, ZXCVBN: PasswordPolicyZXCVBN{ MinScore: 3, }, }
DefaultPasswordPolicyConfiguration is the default password policy configuration.
var DefaultPostgreSQLStorageConfiguration = StoragePostgreSQL{ StorageSQL: StorageSQL{ Address: &AddressTCP{Address{true, false, -1, 5432, nil, &url.URL{Scheme: AddressSchemeTCP, Host: "localhost:5432"}}}, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }, Servers: []StoragePostgreSQLServer{ { Address: &AddressTCP{Address{true, false, -1, 5432, nil, &url.URL{Scheme: AddressSchemeTCP, Host: "localhost:5432"}}}, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }, }, Schema: "public", SSL: &StoragePostgreSQLSSL{ Mode: "disable", }, }
DefaultPostgreSQLStorageConfiguration represents the default PostgreSQL configuration.
var DefaultRedisConfiguration = SessionRedis{ Port: 6379, Timeout: time.Second * 5, MaxRetries: 0, MaximumActiveConnections: 8, TLS: &TLS{ MinimumVersion: TLSVersion{Value: tls.VersionTLS12}, }, }
DefaultRedisConfiguration is the default redis configuration.
var DefaultRedisHighAvailabilityConfiguration = SessionRedis{ Port: 26379, Timeout: time.Second * 5, MaxRetries: 0, MaximumActiveConnections: 8, TLS: &TLS{ MinimumVersion: TLSVersion{Value: tls.VersionTLS12}, }, }
DefaultRedisHighAvailabilityConfiguration is the default redis configuration.
var DefaultRegulationConfiguration = Regulation{ Modes: []string{"user"}, MaxRetries: 3, FindTime: time.Minute * 2, BanTime: time.Minute * 5, }
DefaultRegulationConfiguration represents default configuration parameters for the regulator.
var DefaultSMTPNotifierConfiguration = NotifierSMTP{ Address: &AddressSMTP{Address{true, false, -1, 25, nil, &url.URL{Scheme: AddressSchemeSMTP, Host: "localhost:25"}}}, Timeout: time.Second * 5, Subject: "[Authelia] {title}", Identifier: "localhost", StartupCheckAddress: mail.Address{Name: "Authelia Test", Address: "test@authelia.com"}, TLS: &TLS{ MinimumVersion: TLSVersion{tls.VersionTLS12}, }, }
DefaultSMTPNotifierConfiguration represents default configuration parameters for the SMTP notifier.
var DefaultSQLStorageConfiguration = StorageSQL{ Timeout: 5 * time.Second, }
DefaultSQLStorageConfiguration represents the default SQL configuration.
var DefaultServerConfiguration = Server{ Address: &AddressTCP{Address{true, false, -1, 9091, nil, &url.URL{Scheme: AddressSchemeTCP, Host: ":9091", Path: "/"}}}, Buffers: ServerBuffers{ Read: 4096, Write: 4096, }, Timeouts: ServerTimeouts{ Read: time.Second * 6, Write: time.Second * 6, Idle: time.Second * 30, }, Endpoints: ServerEndpoints{ Authz: map[string]ServerEndpointsAuthz{ AuthzEndpointNameLegacy: { Implementation: AuthzImplementationLegacy, AuthnStrategies: []ServerEndpointsAuthzAuthnStrategy{ { Name: AuthzStrategyHeaderLegacy, }, { Name: AuthzStrategyHeaderCookieSession, }, }, }, AuthzEndpointNameAuthRequest: { Implementation: AuthzImplementationAuthRequest, AuthnStrategies: []ServerEndpointsAuthzAuthnStrategy{ { Name: AuthzStrategyHeaderAuthorization, Schemes: []string{SchemeBasic}, }, { Name: AuthzStrategyHeaderCookieSession, }, }, }, AuthzEndpointNameExtAuthz: { Implementation: AuthzImplementationExtAuthz, AuthnStrategies: []ServerEndpointsAuthzAuthnStrategy{ { Name: AuthzStrategyHeaderAuthorization, Schemes: []string{SchemeBasic}, }, { Name: AuthzStrategyHeaderCookieSession, }, }, }, AuthzEndpointNameForwardAuth: { Implementation: AuthzImplementationForwardAuth, AuthnStrategies: []ServerEndpointsAuthzAuthnStrategy{ { Name: AuthzStrategyHeaderAuthorization, Schemes: []string{SchemeBasic}, }, { Name: AuthzStrategyHeaderCookieSession, }, }, }, }, RateLimits: ServerEndpointRateLimits{ ResetPasswordStart: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 10 * time.Minute, Requests: 5}, {Period: 15 * time.Minute, Requests: 10}, {Period: 30 * time.Minute, Requests: 15}, }, }, ResetPasswordFinish: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 1 * time.Minute, Requests: 10}, {Period: 2 * time.Minute, Requests: 15}, }, }, SecondFactorTOTP: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 1 * time.Minute, Requests: 30}, {Period: 2 * time.Minute, Requests: 40}, {Period: 10 * time.Minute, Requests: 50}, }, }, SecondFactorDuo: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 1 * time.Minute, Requests: 10}, {Period: 2 * time.Minute, Requests: 15}, }, }, SessionElevationStart: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 1, Requests: 3}, {Period: 2, Requests: 5}, {Period: 12, Requests: 15}, }, }, SessionElevationFinish: ServerEndpointRateLimit{ Buckets: []ServerEndpointRateLimitBucket{ {Period: 1, Requests: 3}, {Period: 2, Requests: 5}, {Period: 6, Requests: 15}, }, }, }, }, }
DefaultServerConfiguration represents the default values of the Server.
var DefaultSessionConfiguration = Session{ SessionCookieCommon: SessionCookieCommon{ Name: "authelia_session", Expiration: time.Hour, Inactivity: time.Minute * 5, RememberMe: time.Hour * 24 * 30, SameSite: "lax", }, }
DefaultSessionConfiguration is the default session configuration.
var DefaultTOTPConfiguration = TOTP{ Issuer: "Authelia", DefaultAlgorithm: TOTPAlgorithmSHA1, DefaultDigits: 6, DefaultPeriod: 30, Skew: &defaultTOTPSkew, SecretSize: TOTPSecretSizeDefault, AllowedAlgorithms: []string{TOTPAlgorithmSHA1}, AllowedDigits: []int{6}, AllowedPeriods: []int{30}, }
DefaultTOTPConfiguration represents default configuration parameters for TOTP generation.
var DefaultTelemetryConfig = Telemetry{ Metrics: TelemetryMetrics{ Address: &AddressTCP{Address{true, false, -1, 9959, nil, &url.URL{Scheme: AddressSchemeTCP, Host: ":9959", Path: "/metrics"}}}, Buffers: ServerBuffers{ Read: 4096, Write: 4096, }, Timeouts: ServerTimeouts{ Read: time.Second * 6, Write: time.Second * 6, Idle: time.Second * 30, }, }, }
DefaultTelemetryConfig is the default telemetry configuration.
var DefaultWebAuthnConfiguration = WebAuthn{ DisplayName: "Authelia", Timeout: time.Second * 60, ConveyancePreference: protocol.PreferIndirectAttestation, Metadata: WebAuthnMetadata{ Enabled: false, ValidateTrustAnchor: true, ValidateEntry: true, ValidateEntryPermitZeroAAGUID: false, ValidateStatus: true, ValidateStatusPermitted: []metadata.AuthenticatorStatus{}, ValidateStatusProhibited: []metadata.AuthenticatorStatus{ metadata.AttestationKeyCompromise, metadata.UserVerificationBypass, metadata.UserKeyRemoteCompromise, metadata.UserKeyPhysicalCompromise, metadata.Revoked, }, }, }
DefaultWebAuthnConfiguration describes the default values for the WebAuthn.
var ErrTLSVersionNotSupported = errors.New("supplied tls version isn't supported")
ErrTLSVersionNotSupported returned when an unknown TLS version supplied.
var Keys = []string{}/* 484 elements not displayed */
Keys is a list of valid schema keys detected by reflecting over a schema.Configuration struct.
var ( // TOTPPossibleAlgorithms is a list of valid TOTP Algorithms. TOTPPossibleAlgorithms = []string{TOTPAlgorithmSHA1, TOTPAlgorithmSHA256, TOTPAlgorithmSHA512} )
Functions ¶
func DecodeAlgorithmDigest ¶ added in v4.38.0
DecodeAlgorithmDigest returns a new algorithm.Digest if it can be decoded.
func PBKDF2VariantDefaultIterations ¶ added in v4.39.5
Types ¶
type AccessControl ¶ added in v4.38.0
type AccessControl struct { // The default policy if no other policy matches the request. DefaultPolicy string `` /* 336-byte string literal not displayed */ // Represents a list of named network groups. Networks []AccessControlNetwork `` /* 217-byte string literal not displayed */ // The ACL rules list. Rules []AccessControlRule `` /* 186-byte string literal not displayed */ }
AccessControl represents the configuration related to ACLs.
type AccessControlNetwork ¶ added in v4.38.0
type AccessControlNetwork struct { Name string `` /* 226-byte string literal not displayed */ Networks []*net.IPNet `` /* 234-byte string literal not displayed */ }
AccessControlNetwork represents one ACL network group entry.
type AccessControlRule ¶ added in v4.38.0
type AccessControlRule struct { Domains AccessControlRuleDomains `` /* 255-byte string literal not displayed */ DomainsRegex AccessControlRuleRegex `` /* 278-byte string literal not displayed */ Policy string `` /* 259-byte string literal not displayed */ Subjects AccessControlRuleSubjects `` /* 207-byte string literal not displayed */ Networks []*net.IPNet `` /* 252-byte string literal not displayed */ Resources AccessControlRuleRegex `` /* 235-byte string literal not displayed */ Methods AccessControlRuleMethods `` /* 358-byte string literal not displayed */ Query [][]AccessControlRuleQuery `` /* 194-byte string literal not displayed */ }
AccessControlRule represents one ACL rule entry.
type AccessControlRuleDomains ¶ added in v4.38.0
type AccessControlRuleDomains []string
func (AccessControlRuleDomains) JSONSchema ¶ added in v4.38.0
func (AccessControlRuleDomains) JSONSchema() *jsonschema.Schema
type AccessControlRuleMethods ¶ added in v4.38.0
type AccessControlRuleMethods []string
func (AccessControlRuleMethods) JSONSchema ¶ added in v4.38.0
func (AccessControlRuleMethods) JSONSchema() *jsonschema.Schema
type AccessControlRuleQuery ¶ added in v4.38.0
type AccessControlRuleQuery struct { Operator string `` /* 284-byte string literal not displayed */ Key string `` /* 177-byte string literal not displayed */ Value any `` /* 173-byte string literal not displayed */ }
AccessControlRuleQuery represents the ACL query criteria.
type AccessControlRuleRegex ¶ added in v4.38.0
AccessControlRuleRegex represents the ACL AccessControlRuleSubjects type.
func (AccessControlRuleRegex) JSONSchema ¶ added in v4.38.0
func (AccessControlRuleRegex) JSONSchema() *jsonschema.Schema
type AccessControlRuleSubjects ¶ added in v4.38.0
type AccessControlRuleSubjects [][]string
AccessControlRuleSubjects represents the ACL AccessControlRuleSubjects type.
func (AccessControlRuleSubjects) JSONSchema ¶ added in v4.38.0
func (AccessControlRuleSubjects) JSONSchema() *jsonschema.Schema
type Address ¶ added in v4.36.0
type Address struct {
// contains filtered or unexported fields
}
Address represents an address.
func NewAddress ¶ added in v4.36.0
NewAddress returns an *Address and error depending on the ability to parse the string as an Address. It also assumes any value without a scheme which looks like a path is the 'unix' scheme, and everything else without a scheme is the 'tcp' scheme.
func NewAddressDefault ¶ added in v4.38.0
func NewAddressDefault(value, schemeDefault, schemeDefaultPath string) (address *Address, err error)
NewAddressDefault returns an *Address and error depending on the ability to parse the string as an Address. It also assumes any value without a scheme which looks like a path is the schemeDefaultPath scheme, and everything else without a scheme is the schemeDefault scheme.
func NewAddressFromNetworkPathValues ¶ added in v4.38.0
NewAddressFromNetworkPathValues returns an *Address from network values and a path.
func NewAddressFromNetworkValues ¶ added in v4.38.0
NewAddressFromNetworkValues returns an *Address from network values.
func NewAddressFromNetworkValuesDefault ¶ added in v4.38.0
func NewAddressFromNetworkValuesDefault(value string, port uint16, schemeDefault, schemeDefaultPath string) (address *Address, err error)
NewAddressFromNetworkValuesDefault returns an *Address and error depending on the ability to parse the string as an Address. It also assumes any value without a scheme which looks like a path is the schemeDefaultPath scheme, and everything else without a scheme is the schemeDefault scheme.
func NewAddressFromURL ¶ added in v4.36.2
NewAddressFromURL returns an *Address and error depending on the ability to parse the *url.URL as an Address.
func NewAddressUnix ¶ added in v4.38.0
NewAddressUnix returns an *Address from a path value.
func (*Address) Hostname ¶ added in v4.38.0
Hostname returns the output of the *url.URL Hostname func.
func (*Address) IsExplicitlySecure ¶ added in v4.38.0
IsExplicitlySecure returns true if the address is an explicitly secure.
func (*Address) IsFileDescriptor ¶ added in v4.39.0
IsFileDescriptor returns true if the address has been determined to be a File Descriptor.
func (*Address) IsTCP ¶ added in v4.38.0
IsTCP returns true if the address is one of the TCP schemes (not including application schemes that use TCP).
func (*Address) IsUDP ¶ added in v4.38.0
IsUDP returns true if the address is one of the UDP schemes (not including application schemes that use UDP).
func (*Address) IsUnixDomainSocket ¶ added in v4.38.0
IsUnixDomainSocket returns true if the address has been determined to be a Unix Domain Socket.
func (Address) JSONSchema ¶ added in v4.38.0
func (Address) JSONSchema() *jsonschema.Schema
JSONSchema returns the appropriate *jsonschema.Schema for this type.
func (*Address) Network ¶ added in v4.38.0
Network returns the Scheme() if it's appropriate for the net packages network arguments otherwise it returns tcp.
func (*Address) NetworkAddress ¶ added in v4.38.0
NetworkAddress returns a string representation of the Address with just the host and port.
func (*Address) RouterPath ¶ added in v4.38.0
RouterPath returns the path the server router uses for serving up requests. Should be the same as Path unless the path query parameter has been set.
func (*Address) SetHostname ¶ added in v4.38.0
SetHostname sets the hostname preserving the port.
func (*Address) SocketHostname ¶ added in v4.38.0
SocketHostname returns the correct hostname for a socket connection.
func (*Address) ValidateHTTP ¶ added in v4.38.0
ValidateHTTP returns true if the Address is valid for a HTTP connection listener.
func (*Address) ValidateLDAP ¶ added in v4.38.0
ValidateLDAP returns true if the Address has a value Scheme for an LDAP connection opener.
func (*Address) ValidateListener ¶ added in v4.38.0
ValidateListener returns true if the Address is valid for a connection listener.
func (*Address) ValidateSMTP ¶ added in v4.38.0
ValidateSMTP returns true if the Address is valid for a remote SMTP connection opener.
func (*Address) ValidateSQL ¶ added in v4.38.0
ValidateSQL returns true if the Address is valid for a remote SQL connection opener.
type AddressLDAP ¶ added in v4.38.0
type AddressLDAP struct {
Address
}
AddressLDAP is just a type with an underlying type of Address.
func (AddressLDAP) JSONSchema ¶ added in v4.38.0
func (AddressLDAP) JSONSchema() *jsonschema.Schema
JSONSchema returns the appropriate *jsonschema.Schema for this type.
type AddressSMTP ¶ added in v4.38.0
type AddressSMTP struct {
Address
}
AddressSMTP is just a type with an underlying type of Address.
func NewSMTPAddress ¶ added in v4.38.0
func NewSMTPAddress(scheme, host string, port uint16) *AddressSMTP
NewSMTPAddress returns an *AddressSMTP from SMTP values.
func (AddressSMTP) JSONSchema ¶ added in v4.38.0
func (AddressSMTP) JSONSchema() *jsonschema.Schema
JSONSchema returns the appropriate *jsonschema.Schema for this type.
type AddressTCP ¶ added in v4.38.0
type AddressTCP struct {
Address
}
AddressTCP is just a type with an underlying type of Address.
func (AddressTCP) JSONSchema ¶ added in v4.38.0
func (AddressTCP) JSONSchema() *jsonschema.Schema
JSONSchema returns the appropriate *jsonschema.Schema for this type.
type AddressUDP ¶ added in v4.38.0
type AddressUDP struct {
Address
}
AddressUDP is just a type with an underlying type of Address.
func (AddressUDP) JSONSchema ¶ added in v4.38.0
func (AddressUDP) JSONSchema() *jsonschema.Schema
JSONSchema returns the appropriate *jsonschema.Schema for this type.
type AuthenticationBackend ¶ added in v4.37.0
type AuthenticationBackend struct { PasswordReset AuthenticationBackendPasswordReset `` /* 231-byte string literal not displayed */ PasswordChange AuthenticationBackendPasswordChange `` /* 235-byte string literal not displayed */ RefreshInterval RefreshIntervalDuration `` /* 269-byte string literal not displayed */ // The file authentication backend configuration. File *AuthenticationBackendFile `` /* 182-byte string literal not displayed */ LDAP *AuthenticationBackendLDAP `` /* 182-byte string literal not displayed */ }
AuthenticationBackend represents the configuration related to the authentication backend.
type AuthenticationBackendExtraAttribute ¶ added in v4.39.0
type AuthenticationBackendExtraAttribute struct { MultiValued bool `` /* 176-byte string literal not displayed */ ValueType string `` /* 237-byte string literal not displayed */ }
func (AuthenticationBackendExtraAttribute) GetValueType ¶ added in v4.39.0
func (a AuthenticationBackendExtraAttribute) GetValueType() (vtype string)
func (AuthenticationBackendExtraAttribute) IsMultiValued ¶ added in v4.39.0
func (a AuthenticationBackendExtraAttribute) IsMultiValued() (multi bool)
type AuthenticationBackendFile ¶ added in v4.38.0
type AuthenticationBackendFile struct { Path string `` /* 163-byte string literal not displayed */ Watch bool `` /* 203-byte string literal not displayed */ Password AuthenticationBackendFilePassword `` /* 266-byte string literal not displayed */ Search AuthenticationBackendFileSearch `` /* 178-byte string literal not displayed */ ExtraAttributes map[string]AuthenticationBackendExtraAttribute `` /* 273-byte string literal not displayed */ }
AuthenticationBackendFile represents the configuration related to file-based backend.
type AuthenticationBackendFilePassword ¶ added in v4.38.0
type AuthenticationBackendFilePassword struct { Algorithm string `` /* 269-byte string literal not displayed */ Argon2 AuthenticationBackendFilePasswordArgon2 `` /* 187-byte string literal not displayed */ SHA2Crypt AuthenticationBackendFilePasswordSHA2Crypt `` /* 205-byte string literal not displayed */ PBKDF2 AuthenticationBackendFilePasswordPBKDF2 `` /* 187-byte string literal not displayed */ Bcrypt AuthenticationBackendFilePasswordBcrypt `` /* 187-byte string literal not displayed */ Scrypt AuthenticationBackendFilePasswordScrypt `` /* 187-byte string literal not displayed */ // Deprecated: Use individual password options instead. Iterations int `koanf:"iterations" yaml:"iterations" toml:"iterations" json:"iterations" jsonschema:"deprecated,title=Iterations"` // Deprecated: Use individual password options instead. Memory int `koanf:"memory" yaml:"memory" toml:"memory" json:"memory" jsonschema:"deprecated,title=Memory"` // Deprecated: Use individual password options instead. Parallelism int `koanf:"parallelism" yaml:"parallelism" toml:"parallelism" json:"parallelism" jsonschema:"deprecated,title=Parallelism"` // Deprecated: Use individual password options instead. KeyLength int `koanf:"key_length" yaml:"key_length" toml:"key_length" json:"key_length" jsonschema:"deprecated,title=Key Length"` // Deprecated: Use individual password options instead. SaltLength int `koanf:"salt_length" yaml:"salt_length" toml:"salt_length" json:"salt_length" jsonschema:"deprecated,title=Salt Length"` }
AuthenticationBackendFilePassword represents the configuration related to password hashing.
type AuthenticationBackendFilePasswordArgon2 ¶ added in v4.38.0
type AuthenticationBackendFilePasswordArgon2 struct { Variant string `` /* 230-byte string literal not displayed */ Iterations int `` /* 195-byte string literal not displayed */ Memory int `` /* 217-byte string literal not displayed */ Parallelism int `` /* 228-byte string literal not displayed */ KeyLength int `` /* 197-byte string literal not displayed */ SaltLength int `` /* 196-byte string literal not displayed */ }
AuthenticationBackendFilePasswordArgon2 represents the argon2 hashing settings.
type AuthenticationBackendFilePasswordBcrypt ¶ added in v4.39.2
type AuthenticationBackendFilePasswordBcrypt struct { Variant string `` /* 216-byte string literal not displayed */ Cost int `` /* 158-byte string literal not displayed */ }
AuthenticationBackendFilePasswordBcrypt represents the bcrypt hashing settings.
type AuthenticationBackendFilePasswordPBKDF2 ¶ added in v4.38.0
type AuthenticationBackendFilePasswordPBKDF2 struct { Variant string `` /* 246-byte string literal not displayed */ Iterations int `` /* 210-byte string literal not displayed */ SaltLength int `` /* 207-byte string literal not displayed */ }
AuthenticationBackendFilePasswordPBKDF2 represents the PBKDF2 hashing settings.
type AuthenticationBackendFilePasswordSHA2Crypt ¶ added in v4.38.0
type AuthenticationBackendFilePasswordSHA2Crypt struct { Variant string `` /* 215-byte string literal not displayed */ Iterations int `` /* 228-byte string literal not displayed */ SaltLength int `` /* 202-byte string literal not displayed */ }
AuthenticationBackendFilePasswordSHA2Crypt represents the sha2crypt hashing settings.
type AuthenticationBackendFilePasswordScrypt ¶ added in v4.39.2
type AuthenticationBackendFilePasswordScrypt struct { Variant string `` /* 213-byte string literal not displayed */ Iterations int `` /* 193-byte string literal not displayed */ BlockSize int `` /* 207-byte string literal not displayed */ Parallelism int `` /* 212-byte string literal not displayed */ KeyLength int `` /* 203-byte string literal not displayed */ SaltLength int `` /* 201-byte string literal not displayed */ }
AuthenticationBackendFilePasswordScrypt represents the scrypt hashing settings.
type AuthenticationBackendFileSearch ¶ added in v4.38.0
type AuthenticationBackendFileSearch struct { Email bool `` /* 209-byte string literal not displayed */ CaseInsensitive bool `` /* 232-byte string literal not displayed */ }
AuthenticationBackendFileSearch represents the configuration related to file-based backend searching.
type AuthenticationBackendLDAP ¶ added in v4.38.0
type AuthenticationBackendLDAP struct { Address *AddressLDAP `` /* 184-byte string literal not displayed */ Implementation string `` /* 337-byte string literal not displayed */ Timeout time.Duration `` /* 207-byte string literal not displayed */ StartTLS bool `` /* 164-byte string literal not displayed */ TLS *TLS `` /* 175-byte string literal not displayed */ Pooling AuthenticationBackendLDAPPooling `` /* 182-byte string literal not displayed */ BaseDN string `` /* 188-byte string literal not displayed */ AdditionalUsersDN string `` /* 286-byte string literal not displayed */ UsersFilter string `` /* 216-byte string literal not displayed */ AdditionalGroupsDN string `` /* 292-byte string literal not displayed */ GroupsFilter string `` /* 222-byte string literal not displayed */ GroupSearchMode string `` /* 296-byte string literal not displayed */ Attributes AuthenticationBackendLDAPAttributes `koanf:"attributes" yaml:"attributes,omitempty" toml:"attributes,omitempty" json:"attributes,omitempty"` PermitReferrals bool `` /* 203-byte string literal not displayed */ PermitUnauthenticatedBind bool `` /* 295-byte string literal not displayed */ PermitFeatureDetectionFailure bool `` /* 336-byte string literal not displayed */ User string `` /* 173-byte string literal not displayed */ Password string `` /* 192-byte string literal not displayed */ }
AuthenticationBackendLDAP represents the configuration related to LDAP server.
type AuthenticationBackendLDAPAttributes ¶ added in v4.38.0
type AuthenticationBackendLDAPAttributes struct { DistinguishedName string `` /* 294-byte string literal not displayed */ Username string `` /* 237-byte string literal not displayed */ DisplayName string `` /* 261-byte string literal not displayed */ FamilyName string `` /* 250-byte string literal not displayed */ GivenName string `` /* 244-byte string literal not displayed */ MiddleName string `` /* 250-byte string literal not displayed */ Nickname string `` /* 232-byte string literal not displayed */ Gender string `` /* 220-byte string literal not displayed */ Birthdate string `` /* 238-byte string literal not displayed */ Website string `` /* 230-byte string literal not displayed */ Profile string `` /* 230-byte string literal not displayed */ Picture string `` /* 230-byte string literal not displayed */ ZoneInfo string `` /* 253-byte string literal not displayed */ Locale string `` /* 232-byte string literal not displayed */ PhoneNumber string `` /* 256-byte string literal not displayed */ PhoneExtension string `` /* 274-byte string literal not displayed */ StreetAddress string `` /* 268-byte string literal not displayed */ Locality string `` /* 232-byte string literal not displayed */ Region string `` /* 220-byte string literal not displayed */ PostalCode string `` /* 250-byte string literal not displayed */ Country string `` /* 226-byte string literal not displayed */ Mail string `` /* 232-byte string literal not displayed */ MemberOf string `` /* 252-byte string literal not displayed */ GroupName string `` /* 245-byte string literal not displayed */ Extra map[string]AuthenticationBackendLDAPAttributesAttribute `` /* 229-byte string literal not displayed */ }
AuthenticationBackendLDAPAttributes represents the configuration related to LDAP server attributes.
type AuthenticationBackendLDAPAttributesAttribute ¶ added in v4.39.0
type AuthenticationBackendLDAPAttributesAttribute struct { Name string `` /* 235-byte string literal not displayed */ AuthenticationBackendExtraAttribute `koanf:",squash"` }
type AuthenticationBackendLDAPPooling ¶ added in v4.39.0
type AuthenticationBackendPasswordChange ¶ added in v4.39.0
type AuthenticationBackendPasswordChange struct {
Disable bool `` /* 163-byte string literal not displayed */
}
AuthenticationBackendPasswordChange represents the configuration related to password reset functionality.
type AuthenticationBackendPasswordReset ¶ added in v4.38.0
type AuthenticationBackendPasswordReset struct { Disable bool `` /* 162-byte string literal not displayed */ CustomURL url.URL `` /* 252-byte string literal not displayed */ }
AuthenticationBackendPasswordReset represents the configuration related to password reset functionality.
type CSPTemplate ¶ added in v4.38.0
type CSPTemplate string
type Configuration ¶
type Configuration struct { Theme string `` /* 248-byte string literal not displayed */ CertificatesDirectory string `` /* 308-byte string literal not displayed */ Default2FAMethod string `` /* 321-byte string literal not displayed */ Log Log `` /* 145-byte string literal not displayed */ IdentityProviders IdentityProviders `` /* 231-byte string literal not displayed */ AuthenticationBackend AuthenticationBackend `` /* 255-byte string literal not displayed */ Session Session `` /* 165-byte string literal not displayed */ TOTP TOTP `` /* 171-byte string literal not displayed */ DuoAPI DuoAPI `` /* 165-byte string literal not displayed */ AccessControl AccessControl `` /* 207-byte string literal not displayed */ NTP NTP `` /* 159-byte string literal not displayed */ Regulation Regulation `` /* 183-byte string literal not displayed */ Storage Storage `` /* 165-byte string literal not displayed */ Notifier Notifier `` /* 171-byte string literal not displayed */ Server Server `` /* 159-byte string literal not displayed */ Telemetry Telemetry `` /* 177-byte string literal not displayed */ WebAuthn WebAuthn `` /* 171-byte string literal not displayed */ PasswordPolicy PasswordPolicy `` /* 213-byte string literal not displayed */ PrivacyPolicy PrivacyPolicy `` /* 207-byte string literal not displayed */ IdentityValidation IdentityValidation `` /* 237-byte string literal not displayed */ Definitions Definitions `` /* 223-byte string literal not displayed */ // Deprecated: Use the session cookies option with the same name instead. DefaultRedirectionURL *url.URL `` /* 223-byte string literal not displayed */ }
Configuration object extracted from YAML configuration file.
type CryptographicKey ¶ added in v4.38.0
type CryptographicKey any
CryptographicKey represents an artificial cryptographic public or private key.
type CryptographicPrivateKey ¶ added in v4.37.0
type CryptographicPrivateKey interface { Public() crypto.PublicKey Equal(x crypto.PrivateKey) bool }
CryptographicPrivateKey represents the actual crypto.PrivateKey interface.
type Definitions ¶ added in v4.39.0
type Definitions struct { Network map[string][]*net.IPNet `` /* 228-byte string literal not displayed */ UserAttributes map[string]UserAttribute `` /* 229-byte string literal not displayed */ }
type DuoAPI ¶ added in v4.38.0
type DuoAPI struct { Disable bool `` /* 159-byte string literal not displayed */ Hostname string `` /* 212-byte string literal not displayed */ IntegrationKey string `` /* 238-byte string literal not displayed */ SecretKey string `` /* 208-byte string literal not displayed */ EnableSelfEnrollment bool `` /* 234-byte string literal not displayed */ }
DuoAPI represents the configuration related to Duo API.
type ErrorContainer ¶
type ErrorContainer interface { Push(err error) PushWarning(err error) HasErrors() bool HasWarnings() bool Errors() []error Warnings() []error }
ErrorContainer represents a container where we can add errors and retrieve them.
type IdentityProviders ¶ added in v4.38.0
type IdentityProviders struct {
OIDC *IdentityProvidersOpenIDConnect `koanf:"oidc" yaml:"oidc,omitempty" toml:"oidc,omitempty" json:"oidc,omitempty"`
}
IdentityProviders represents the Identity Providers configuration for Authelia.
type IdentityProvidersOpenIDConnect ¶ added in v4.38.0
type IdentityProvidersOpenIDConnect struct { HMACSecret string `` /* 206-byte string literal not displayed */ JSONWebKeys []JWK `` /* 214-byte string literal not displayed */ EnableClientDebugMessages bool `` /* 278-byte string literal not displayed */ MinimumParameterEntropy int `` /* 267-byte string literal not displayed */ EnforcePKCE string `` /* 322-byte string literal not displayed */ EnablePKCEPlainChallenge bool `` /* 303-byte string literal not displayed */ EnableJWTAccessTokenStatelessIntrospection bool `` /* 401-byte string literal not displayed */ DiscoverySignedResponseAlg string `` /* 475-byte string literal not displayed */ DiscoverySignedResponseKeyID string `` /* 401-byte string literal not displayed */ RequirePushedAuthorizationRequests bool `` /* 334-byte string literal not displayed */ CORS IdentityProvidersOpenIDConnectCORS `` /* 183-byte string literal not displayed */ Clients []IdentityProvidersOpenIDConnectClient `` /* 179-byte string literal not displayed */ AuthorizationPolicies map[string]IdentityProvidersOpenIDConnectPolicy `` /* 255-byte string literal not displayed */ Lifespans IdentityProvidersOpenIDConnectLifespans `` /* 183-byte string literal not displayed */ ClaimsPolicies map[string]IdentityProvidersOpenIDConnectClaimsPolicy `` /* 249-byte string literal not displayed */ Scopes map[string]IdentityProvidersOpenIDConnectScope `` /* 160-byte string literal not displayed */ Discovery IdentityProvidersOpenIDConnectDiscovery `json:"-"` // MetaData value. Not configurable by users. IssuerCertificateChain X509CertificateChain `` /* 314-byte string literal not displayed */ IssuerPrivateKey *rsa.PrivateKey `` /* 279-byte string literal not displayed */ }
IdentityProvidersOpenIDConnect represents the configuration for OpenID Connect 1.0.
type IdentityProvidersOpenIDConnectCORS ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectCORS struct { Endpoints []string `` /* 350-byte string literal not displayed */ AllowedOrigins []*url.URL `` /* 246-byte string literal not displayed */ AllowedOriginsFromClientRedirectURIs bool `` /* 365-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectCORS represents an OpenID Connect 1.0 CORS config.
type IdentityProvidersOpenIDConnectClaimsPolicy ¶ added in v4.39.0
type IdentityProvidersOpenIDConnectClaimsPolicy struct { IDToken []string `` /* 250-byte string literal not displayed */ AccessToken []string `` /* 278-byte string literal not displayed */ IDTokenAudienceMode string `` /* 364-byte string literal not displayed */ CustomClaims IdentityProvidersOpenIDConnectCustomClaims `` /* 251-byte string literal not displayed */ }
type IdentityProvidersOpenIDConnectClient ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectClient struct { ID string `` /* 158-byte string literal not displayed */ Name string `` /* 192-byte string literal not displayed */ Secret *PasswordDigest `` /* 207-byte string literal not displayed */ SectorIdentifierURI *url.URL `` /* 285-byte string literal not displayed */ Public bool `` /* 153-byte string literal not displayed */ RedirectURIs IdentityProvidersOpenIDConnectClientURIs `` /* 197-byte string literal not displayed */ RequestURIs IdentityProvidersOpenIDConnectClientURIs `` /* 191-byte string literal not displayed */ Audience []string `` /* 179-byte string literal not displayed */ Scopes []string `` /* 325-byte string literal not displayed */ GrantTypes []string `` /* 370-byte string literal not displayed */ ResponseTypes []string `` /* 350-byte string literal not displayed */ ResponseModes []string `` /* 334-byte string literal not displayed */ AuthorizationPolicy string `` /* 247-byte string literal not displayed */ Lifespan string `` /* 202-byte string literal not displayed */ ClaimsPolicy string `` /* 205-byte string literal not displayed */ RequestedAudienceMode string `` /* 292-byte string literal not displayed */ ConsentMode string `` /* 256-byte string literal not displayed */ ConsentPreConfiguredDuration *time.Duration `` /* 360-byte string literal not displayed */ RequirePushedAuthorizationRequests bool `` /* 380-byte string literal not displayed */ RequirePKCE bool `` /* 234-byte string literal not displayed */ PKCEChallengeMethod string `` /* 280-byte string literal not displayed */ AuthorizationSignedResponseAlg string `` /* 559-byte string literal not displayed */ AuthorizationSignedResponseKeyID string `` /* 484-byte string literal not displayed */ AuthorizationEncryptedResponseAlg string `` /* 746-byte string literal not displayed */ AuthorizationEncryptedResponseEnc string `` /* 570-byte string literal not displayed */ AuthorizationEncryptedResponseKeyID string `` /* 548-byte string literal not displayed */ IDTokenSignedResponseAlg string `` /* 529-byte string literal not displayed */ IDTokenSignedResponseKeyID string `` /* 449-byte string literal not displayed */ IDTokenEncryptedResponseAlg string `` /* 716-byte string literal not displayed */ IDTokenEncryptedResponseEnc string `` /* 540-byte string literal not displayed */ IDTokenEncryptedResponseKeyID string `` /* 508-byte string literal not displayed */ AccessTokenSignedResponseAlg string `` /* 562-byte string literal not displayed */ AccessTokenSignedResponseKeyID string `` /* 477-byte string literal not displayed */ AccessTokenEncryptedResponseAlg string `` /* 740-byte string literal not displayed */ AccessTokenEncryptedResponseEnc string `` /* 564-byte string literal not displayed */ AccessTokenEncryptedResponseKeyID string `` /* 540-byte string literal not displayed */ UserinfoSignedResponseAlg string `` /* 538-byte string literal not displayed */ UserinfoSignedResponseKeyID string `` /* 449-byte string literal not displayed */ UserinfoEncryptedResponseAlg string `` /* 716-byte string literal not displayed */ UserinfoEncryptedResponseEnc string `` /* 540-byte string literal not displayed */ UserinfoEncryptedResponseKeyID string `` /* 508-byte string literal not displayed */ IntrospectionSignedResponseAlg string `` /* 568-byte string literal not displayed */ IntrospectionSignedResponseKeyID string `` /* 484-byte string literal not displayed */ IntrospectionEncryptedResponseAlg string `` /* 746-byte string literal not displayed */ IntrospectionEncryptedResponseEnc string `` /* 570-byte string literal not displayed */ IntrospectionEncryptedResponseKeyID string `` /* 548-byte string literal not displayed */ RequestObjectSigningAlg string `` /* 466-byte string literal not displayed */ RequestObjectEncryptionAlg string `` /* 681-byte string literal not displayed */ RequestObjectEncryptionEnc string `` /* 504-byte string literal not displayed */ TokenEndpointAuthMethod string `` /* 437-byte string literal not displayed */ TokenEndpointAuthSigningAlg string `` /* 476-byte string literal not displayed */ RevocationEndpointAuthMethod string `` /* 467-byte string literal not displayed */ RevocationEndpointAuthSigningAlg string `` /* 506-byte string literal not displayed */ IntrospectionEndpointAuthMethod string `` /* 485-byte string literal not displayed */ IntrospectionEndpointAuthSigningAlg string `` /* 524-byte string literal not displayed */ PushedAuthorizationRequestEndpointAuthMethod string `` /* 575-byte string literal not displayed */ PushedAuthorizationRequestAuthSigningAlg string `` /* 614-byte string literal not displayed */ AllowMultipleAuthenticationMethods bool `` /* 410-byte string literal not displayed */ JSONWebKeysURI *url.URL `` /* 307-byte string literal not displayed */ JSONWebKeys []JWK `` /* 261-byte string literal not displayed */ Discovery IdentityProvidersOpenIDConnectDiscovery `yaml:"-" json:"-"` // MetaData value. Not configurable by users. }
IdentityProvidersOpenIDConnectClient represents a configuration for an OpenID Connect 1.0 client.
type IdentityProvidersOpenIDConnectClientURIs ¶ added in v4.38.7
type IdentityProvidersOpenIDConnectClientURIs []string
func (IdentityProvidersOpenIDConnectClientURIs) JSONSchema ¶ added in v4.38.7
func (IdentityProvidersOpenIDConnectClientURIs) JSONSchema() *jsonschema.Schema
type IdentityProvidersOpenIDConnectCustomClaim ¶ added in v4.39.0
type IdentityProvidersOpenIDConnectCustomClaims ¶ added in v4.39.5
type IdentityProvidersOpenIDConnectCustomClaims map[string]IdentityProvidersOpenIDConnectCustomClaim
func (IdentityProvidersOpenIDConnectCustomClaims) GetCustomClaimByName ¶ added in v4.39.5
func (c IdentityProvidersOpenIDConnectCustomClaims) GetCustomClaimByName(name string) IdentityProvidersOpenIDConnectCustomClaim
type IdentityProvidersOpenIDConnectDiscovery ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectDiscovery struct { Claims []string Scopes []string AuthorizationPolicies []string Lifespans []string DefaultSigKeyIDs map[string]string DefaultEncKeyIDs map[string]string DefaultKeyID string ResponseObjectSigningKeyIDs []string ResponseObjectEncryptionKeyIDs []string ResponseObjectSigningAlgs []string ResponseObjectEncryptionAlgs []string RequestObjectSigningAlgs []string JWTResponseAccessTokens bool BearerAuthorization bool ClientSecretPlainText bool ResponseObjectSymmetricSigEncAlg bool RequestObjectSymmetricSigEncAlg bool }
IdentityProvidersOpenIDConnectDiscovery is information discovered during validation reused for the discovery handlers.
type IdentityProvidersOpenIDConnectLifespan ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectLifespan struct { IdentityProvidersOpenIDConnectLifespanToken `koanf:",squash"` DeviceCode time.Duration `` /* 232-byte string literal not displayed */ Grants IdentityProvidersOpenIDConnectLifespanGrants `` /* 204-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectLifespan allows tuning the lifespans for OpenID Connect 1.0 issued tokens.
type IdentityProvidersOpenIDConnectLifespanGrants ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectLifespanGrants struct { AuthorizeCode IdentityProvidersOpenIDConnectLifespanToken `` /* 247-byte string literal not displayed */ DeviceCode IdentityProvidersOpenIDConnectLifespanToken `` /* 229-byte string literal not displayed */ Implicit IdentityProvidersOpenIDConnectLifespanToken `` /* 220-byte string literal not displayed */ ClientCredentials IdentityProvidersOpenIDConnectLifespanToken `` /* 271-byte string literal not displayed */ RefreshToken IdentityProvidersOpenIDConnectLifespanToken `` /* 241-byte string literal not displayed */ JWTBearer IdentityProvidersOpenIDConnectLifespanToken `` /* 223-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectLifespanGrants allows tuning the lifespans for each grant type.
type IdentityProvidersOpenIDConnectLifespanToken ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectLifespanToken struct { AccessToken time.Duration `` /* 238-byte string literal not displayed */ RefreshToken time.Duration `` /* 243-byte string literal not displayed */ IDToken time.Duration `` /* 214-byte string literal not displayed */ AuthorizeCode time.Duration `` /* 252-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectLifespanToken allows tuning the lifespans for each token type.
type IdentityProvidersOpenIDConnectLifespans ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectLifespans struct { IdentityProvidersOpenIDConnectLifespanToken `koanf:",squash"` DeviceCode time.Duration `` /* 232-byte string literal not displayed */ JWTSecuredAuthorization time.Duration `` /* 319-byte string literal not displayed */ Custom map[string]IdentityProvidersOpenIDConnectLifespan `` /* 214-byte string literal not displayed */ }
type IdentityProvidersOpenIDConnectPolicy ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectPolicy struct { DefaultPolicy string `` /* 262-byte string literal not displayed */ Rules []IdentityProvidersOpenIDConnectPolicyRule `` /* 167-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectPolicy configuration for OpenID Connect 1.0 authorization policies.
type IdentityProvidersOpenIDConnectPolicyRule ¶ added in v4.38.0
type IdentityProvidersOpenIDConnectPolicyRule struct { Policy string `` /* 213-byte string literal not displayed */ Subjects AccessControlRuleSubjects `` /* 209-byte string literal not displayed */ Networks []*net.IPNet `` /* 215-byte string literal not displayed */ }
IdentityProvidersOpenIDConnectPolicyRule configuration for OpenID Connect 1.0 authorization policies rules.
type IdentityProvidersOpenIDConnectScope ¶ added in v4.39.0
type IdentityProvidersOpenIDConnectScope struct {
Claims []string `` /* 269-byte string literal not displayed */
}
type IdentityValidation ¶ added in v4.38.0
type IdentityValidation struct { ResetPassword IdentityValidationResetPassword `` /* 234-byte string literal not displayed */ ElevatedSession IdentityValidationElevatedSession `` /* 300-byte string literal not displayed */ }
IdentityValidation represents the configuration for identity verification actions/flows.
type IdentityValidationElevatedSession ¶ added in v4.38.0
type IdentityValidationElevatedSession struct { CodeLifespan time.Duration `` /* 280-byte string literal not displayed */ ElevationLifespan time.Duration `` /* 310-byte string literal not displayed */ Characters int `` /* 211-byte string literal not displayed */ RequireSecondFactor bool `` /* 280-byte string literal not displayed */ SkipSecondFactor bool `` /* 281-byte string literal not displayed */ }
IdentityValidationElevatedSession represents the tunable aspects of the credential control identity verification action/flow.
type IdentityValidationResetPassword ¶ added in v4.38.0
type IdentityValidationResetPassword struct { JWTExpiration time.Duration `` /* 288-byte string literal not displayed */ JWTAlgorithm string `` /* 309-byte string literal not displayed */ JWTSecret string `` /* 227-byte string literal not displayed */ }
IdentityValidationResetPassword represents the tunable aspects of the reset password identity verification action/flow.
type JWK ¶ added in v4.38.0
type JWK struct { KeyID string `` /* 171-byte string literal not displayed */ Use string `` /* 164-byte string literal not displayed */ Algorithm string `` /* 311-byte string literal not displayed */ Key CryptographicKey `` /* 165-byte string literal not displayed */ CertificateChain X509CertificateChain `` /* 283-byte string literal not displayed */ }
JWK represents a JWK.
type Log ¶ added in v4.38.0
type Log struct { Level string `` /* 255-byte string literal not displayed */ Format string `` /* 185-byte string literal not displayed */ FilePath string `` /* 308-byte string literal not displayed */ KeepStdout bool `` /* 202-byte string literal not displayed */ }
Log represents the logging configuration.
type NTP ¶ added in v4.38.0
type NTP struct { Address *AddressUDP `` /* 184-byte string literal not displayed */ Version int `` /* 154-byte string literal not displayed */ MaximumDesync time.Duration `` /* 242-byte string literal not displayed */ DisableStartupCheck bool `` /* 237-byte string literal not displayed */ DisableFailure bool `` /* 253-byte string literal not displayed */ }
NTP represents the configuration related to ntp server.
type Notifier ¶ added in v4.38.0
type Notifier struct { DisableStartupCheck bool `` /* 234-byte string literal not displayed */ FileSystem *NotifierFileSystem `` /* 184-byte string literal not displayed */ SMTP *NotifierSMTP `` /* 146-byte string literal not displayed */ TemplatePath string `` /* 214-byte string literal not displayed */ }
Notifier represents the configuration of the notifier to use when sending notifications to users.
type NotifierFileSystem ¶ added in v4.38.0
type NotifierFileSystem struct {
Filename string `` /* 183-byte string literal not displayed */
}
NotifierFileSystem represents the configuration of the notifier writing emails in a file.
type NotifierSMTP ¶ added in v4.38.0
type NotifierSMTP struct { Address *AddressSMTP `` /* 195-byte string literal not displayed */ Timeout time.Duration `` /* 196-byte string literal not displayed */ Username string `` /* 185-byte string literal not displayed */ Password string `` /* 185-byte string literal not displayed */ Identifier string `` /* 225-byte string literal not displayed */ Sender mail.Address `` /* 163-byte string literal not displayed */ Subject string `` /* 194-byte string literal not displayed */ StartupCheckAddress mail.Address `` /* 311-byte string literal not displayed */ DisableRequireTLS bool `` /* 424-byte string literal not displayed */ DisableHTMLEmails bool `` /* 266-byte string literal not displayed */ DisableStartTLS bool `` /* 320-byte string literal not displayed */ TLS *TLS `` /* 165-byte string literal not displayed */ // Deprecated: use address instead. Host string `koanf:"host" yaml:"host,omitempty" toml:"host,omitempty" json:"host,omitempty" jsonschema:"deprecated"` // Deprecated: use address instead. Port int `koanf:"port" yaml:"port" toml:"port" json:"port" jsonschema:"deprecated"` }
NotifierSMTP represents the configuration of the SMTP server to send emails with.
type PasswordDigest ¶ added in v4.37.0
PasswordDigest is a configuration type for the crypt.Digest.
func DecodePasswordDigest ¶ added in v4.37.3
func DecodePasswordDigest(encodedDigest string) (digest *PasswordDigest, err error)
DecodePasswordDigest returns a new PasswordDigest if it can be decoded.
func NewPasswordDigest ¶ added in v4.37.0
func NewPasswordDigest(digest algorithm.Digest) *PasswordDigest
NewPasswordDigest returns a new *PasswordDigest from an algorithm.Digest.
func (*PasswordDigest) GetPlainTextValue ¶ added in v4.38.0
func (d *PasswordDigest) GetPlainTextValue() (value []byte, err error)
GetPlainTextValue returns a *plaintext.Digest's byte value from Key() and an error. If the PasswordDigest is not a plaintext.Digest then it returns nil and an error, otherwise it returns the value and nil.
func (*PasswordDigest) IsPlainText ¶ added in v4.38.0
func (d *PasswordDigest) IsPlainText() (is bool)
IsPlainText returns true if the underlying algorithm.Digest is a *plaintext.Digest.
func (PasswordDigest) JSONSchema ¶ added in v4.38.0
func (PasswordDigest) JSONSchema() *jsonschema.Schema
JSONSchema returns the JSON Schema information for the PasswordDigest type.
func (*PasswordDigest) MarshalYAML ¶ added in v4.39.2
func (d *PasswordDigest) MarshalYAML() (value any, err error)
func (*PasswordDigest) PlainText ¶ added in v4.38.0
func (d *PasswordDigest) PlainText() (digest *plaintext.Digest, ok bool)
PlainText returns a *plaintext.Digest and boolean. If the PasswordDigest is not a plaintext.Digest then it returns nil, false, otherwise it returns the value and true.
func (*PasswordDigest) UnmarshalYAML ¶ added in v4.38.0
func (d *PasswordDigest) UnmarshalYAML(value *yaml.Node) (err error)
func (*PasswordDigest) Valid ¶ added in v4.38.8
func (d *PasswordDigest) Valid() (valid bool)
Valid returns true if this digest has a value.
type PasswordPolicy ¶ added in v4.38.0
type PasswordPolicy struct { Standard PasswordPolicyStandard `` /* 184-byte string literal not displayed */ ZXCVBN PasswordPolicyZXCVBN `` /* 172-byte string literal not displayed */ }
PasswordPolicy represents the configuration related to password policy.
type PasswordPolicyStandard ¶ added in v4.38.0
type PasswordPolicyStandard struct { Enabled bool `` /* 171-byte string literal not displayed */ MinLength int `` /* 156-byte string literal not displayed */ MaxLength int `` /* 166-byte string literal not displayed */ RequireUppercase bool `` /* 206-byte string literal not displayed */ RequireLowercase bool `` /* 206-byte string literal not displayed */ RequireNumber bool `` /* 189-byte string literal not displayed */ RequireSpecial bool `` /* 195-byte string literal not displayed */ }
PasswordPolicyStandard represents the configuration related to standard parameters of password policy.
type PasswordPolicyZXCVBN ¶ added in v4.38.0
type PasswordPolicyZXCVBN struct { Enabled bool `` /* 169-byte string literal not displayed */ MinScore int `` /* 170-byte string literal not displayed */ }
PasswordPolicyZXCVBN represents the configuration related to ZXCVBN parameters of password policy.
type PrivacyPolicy ¶ added in v4.38.0
type PrivacyPolicy struct { Enabled bool `` /* 168-byte string literal not displayed */ RequireUserAcceptance bool `` /* 262-byte string literal not displayed */ PolicyURL *url.URL `` /* 188-byte string literal not displayed */ }
PrivacyPolicy is the privacy policy configuration.
type RefreshIntervalDuration ¶ added in v4.38.0
type RefreshIntervalDuration struct {
// contains filtered or unexported fields
}
RefreshIntervalDuration is a special time.Duration for the refresh interval.
func NewRefreshIntervalDuration ¶ added in v4.38.0
func NewRefreshIntervalDuration(value time.Duration) RefreshIntervalDuration
NewRefreshIntervalDuration returns a RefreshIntervalDuration given a time.Duration.
func NewRefreshIntervalDurationAlways ¶ added in v4.38.0
func NewRefreshIntervalDurationAlways() RefreshIntervalDuration
NewRefreshIntervalDurationAlways returns a RefreshIntervalDuration with an always value.
func NewRefreshIntervalDurationNever ¶ added in v4.38.0
func NewRefreshIntervalDurationNever() RefreshIntervalDuration
NewRefreshIntervalDurationNever returns a RefreshIntervalDuration with a never value.
func (RefreshIntervalDuration) Always ¶ added in v4.38.0
func (d RefreshIntervalDuration) Always() bool
Always returns true if the interval is always.
func (RefreshIntervalDuration) JSONSchema ¶ added in v4.38.0
func (RefreshIntervalDuration) JSONSchema() *jsonschema.Schema
JSONSchema provides the json-schema formatting.
func (RefreshIntervalDuration) Never ¶ added in v4.38.0
func (d RefreshIntervalDuration) Never() bool
Never returns true if the interval is never.
func (RefreshIntervalDuration) Update ¶ added in v4.38.0
func (d RefreshIntervalDuration) Update() bool
Update returns true if the session could require updates.
func (RefreshIntervalDuration) Valid ¶ added in v4.38.0
func (d RefreshIntervalDuration) Valid() bool
Valid returns true if the value was correctly newed up.
func (RefreshIntervalDuration) Value ¶ added in v4.38.0
func (d RefreshIntervalDuration) Value() time.Duration
Value returns the time.Duration.
type Regulation ¶ added in v4.38.0
type Regulation struct { Modes []string `` /* 207-byte string literal not displayed */ MaxRetries int `` /* 217-byte string literal not displayed */ FindTime time.Duration `` /* 249-byte string literal not displayed */ BanTime time.Duration `` /* 264-byte string literal not displayed */ }
Regulation represents the configuration related to regulation.
type Server ¶ added in v4.38.0
type Server struct { Address *AddressTCP `` /* 189-byte string literal not displayed */ AssetPath string `` /* 212-byte string literal not displayed */ DisableHealthcheck bool `` /* 226-byte string literal not displayed */ TLS ServerTLS `` /* 152-byte string literal not displayed */ Headers ServerHeaders `` /* 176-byte string literal not displayed */ Endpoints ServerEndpoints `` /* 188-byte string literal not displayed */ Buffers ServerBuffers `` /* 176-byte string literal not displayed */ Timeouts ServerTimeouts `` /* 182-byte string literal not displayed */ }
Server represents the configuration of the http server.
type ServerBuffers ¶ added in v4.36.4
type ServerBuffers struct { Read int `` /* 132-byte string literal not displayed */ Write int `` /* 138-byte string literal not displayed */ }
ServerBuffers represents server buffer configurations.
type ServerEndpointRateLimit ¶ added in v4.39.0
type ServerEndpointRateLimit struct { Enable bool `koanf:"enable" yaml:"enable" toml:"enable" json:"enable"` Buckets []ServerEndpointRateLimitBucket `koanf:"buckets" yaml:"buckets,omitempty" toml:"buckets,omitempty" json:"buckets,omitempty"` }
type ServerEndpointRateLimitBucket ¶ added in v4.39.0
type ServerEndpointRateLimits ¶ added in v4.39.0
type ServerEndpointRateLimits struct { ResetPasswordStart ServerEndpointRateLimit `` /* 142-byte string literal not displayed */ ResetPasswordFinish ServerEndpointRateLimit `` /* 146-byte string literal not displayed */ SecondFactorTOTP ServerEndpointRateLimit `` /* 134-byte string literal not displayed */ SecondFactorDuo ServerEndpointRateLimit `` /* 130-byte string literal not displayed */ SessionElevationStart ServerEndpointRateLimit `` /* 154-byte string literal not displayed */ SessionElevationFinish ServerEndpointRateLimit `` /* 158-byte string literal not displayed */ }
type ServerEndpoints ¶ added in v4.38.0
type ServerEndpoints struct { EnablePprof bool `` /* 275-byte string literal not displayed */ EnableExpvars bool `` /* 287-byte string literal not displayed */ RateLimits ServerEndpointRateLimits `koanf:"rate_limits" yaml:"rate_limits,omitempty" toml:"rate_limits,omitempty" json:"rate_limits,omitempty"` Authz map[string]ServerEndpointsAuthz `` /* 172-byte string literal not displayed */ }
ServerEndpoints is the endpoints configuration for the HTTP server.
type ServerEndpointsAuthz ¶ added in v4.38.0
type ServerEndpointsAuthz struct { Implementation string `` /* 305-byte string literal not displayed */ AuthnStrategies []ServerEndpointsAuthzAuthnStrategy `` /* 251-byte string literal not displayed */ }
ServerEndpointsAuthz is the Authz endpoints configuration for the HTTP server.
type ServerEndpointsAuthzAuthnStrategy ¶ added in v4.38.0
type ServerEndpointsAuthzAuthnStrategy struct { Name string `` /* 307-byte string literal not displayed */ Schemes []string `` /* 268-byte string literal not displayed */ SchemeBasicCacheLifespan time.Duration `` /* 313-byte string literal not displayed */ }
ServerEndpointsAuthzAuthnStrategy is the Authz endpoints configuration for the HTTP server.
type ServerHeaders ¶ added in v4.38.0
type ServerHeaders struct {
CSPTemplate CSPTemplate `` /* 205-byte string literal not displayed */
}
ServerHeaders represents the customization of the http server headers.
type ServerTLS ¶ added in v4.38.0
type ServerTLS struct { Certificate string `` /* 187-byte string literal not displayed */ Key string `` /* 147-byte string literal not displayed */ ClientCertificates []string `` /* 265-byte string literal not displayed */ }
ServerTLS represents the configuration of the http servers TLS options.
type ServerTimeouts ¶ added in v4.36.4
type ServerTimeouts struct { Read time.Duration `` /* 163-byte string literal not displayed */ Write time.Duration `` /* 169-byte string literal not displayed */ Idle time.Duration `` /* 164-byte string literal not displayed */ }
ServerTimeouts represents server timeout configurations.
type Session ¶ added in v4.38.0
type Session struct { SessionCookieCommon `koanf:",squash"` Secret string `` /* 178-byte string literal not displayed */ Cookies []SessionCookie `` /* 180-byte string literal not displayed */ Redis *SessionRedis `` /* 170-byte string literal not displayed */ // Deprecated: Use the session cookies option with the same name instead. Domain string `koanf:"domain" yaml:"domain,omitempty" toml:"domain,omitempty" json:"domain,omitempty" jsonschema:"deprecated,title=Domain"` }
Session represents the configuration related to user sessions.
type SessionCookie ¶ added in v4.38.0
type SessionCookie struct { SessionCookieCommon `koanf:",squash"` Domain string `` /* 203-byte string literal not displayed */ AutheliaURL *url.URL `` /* 260-byte string literal not displayed */ DefaultRedirectionURL *url.URL `` /* 300-byte string literal not displayed */ Legacy bool `json:"-"` }
SessionCookie represents the configuration for a cookie domain.
type SessionCookieCommon ¶ added in v4.38.0
type SessionCookieCommon struct { Name string `` /* 166-byte string literal not displayed */ SameSite string `` /* 215-byte string literal not displayed */ Expiration time.Duration `` /* 218-byte string literal not displayed */ Inactivity time.Duration `` /* 190-byte string literal not displayed */ RememberMe time.Duration `` /* 219-byte string literal not displayed */ DisableRememberMe bool `json:"-"` }
type SessionRedis ¶ added in v4.38.0
type SessionRedis struct { Host string `` /* 150-byte string literal not displayed */ Port int `` /* 133-byte string literal not displayed */ Timeout time.Duration `` /* 197-byte string literal not displayed */ MaxRetries int `` /* 197-byte string literal not displayed */ Username string `` /* 167-byte string literal not displayed */ Password string `` /* 167-byte string literal not displayed */ DatabaseIndex int `` /* 183-byte string literal not displayed */ MaximumActiveConnections int `` /* 280-byte string literal not displayed */ MinimumIdleConnections int `` /* 256-byte string literal not displayed */ TLS *TLS `koanf:"tls" yaml:"tls,omitempty" toml:"tls,omitempty" json:"tls,omitempty"` HighAvailability *SessionRedisHighAvailability `` /* 130-byte string literal not displayed */ }
SessionRedis represents the configuration related to redis session store.
type SessionRedisHighAvailability ¶ added in v4.38.0
type SessionRedisHighAvailability struct { SentinelName string `` /* 207-byte string literal not displayed */ SentinelUsername string `` /* 232-byte string literal not displayed */ SentinelPassword string `` /* 232-byte string literal not displayed */ RouteByLatency bool `` /* 203-byte string literal not displayed */ RouteRandomly bool `` /* 191-byte string literal not displayed */ Nodes []SessionRedisHighAvailabilityNode `` /* 191-byte string literal not displayed */ }
SessionRedisHighAvailability holds configuration variables for Redis Cluster/Sentinel.
type SessionRedisHighAvailabilityNode ¶ added in v4.38.0
type SessionRedisHighAvailabilityNode struct { Host string `` /* 157-byte string literal not displayed */ Port int `` /* 141-byte string literal not displayed */ }
SessionRedisHighAvailabilityNode Represents a Node.
type Storage ¶ added in v4.38.0
type Storage struct { Local *StorageLocal `` /* 182-byte string literal not displayed */ MySQL *StorageMySQL `` /* 182-byte string literal not displayed */ PostgreSQL *StoragePostgreSQL `` /* 196-byte string literal not displayed */ EncryptionKey string `` /* 268-byte string literal not displayed */ }
Storage represents the configuration of the storage backend.
type StorageLocal ¶ added in v4.38.0
type StorageLocal struct {
Path string `` /* 167-byte string literal not displayed */
}
StorageLocal represents the configuration when using local storage.
type StorageMySQL ¶ added in v4.38.0
type StorageMySQL struct {
StorageSQL `koanf:",squash"`
}
StorageMySQL represents the configuration of a MySQL database.
type StoragePostgreSQL ¶ added in v4.38.0
type StoragePostgreSQL struct { StorageSQL `koanf:",squash"` Schema string `` /* 184-byte string literal not displayed */ Servers []StoragePostgreSQLServer `` /* 234-byte string literal not displayed */ // Deprecated: Use the TLS configuration instead. SSL *StoragePostgreSQLSSL `koanf:"ssl" yaml:"ssl,omitempty" toml:"ssl,omitempty" json:"ssl,omitempty" jsonschema:"deprecated,title=SSL"` }
StoragePostgreSQL represents the configuration of a PostgreSQL database.
type StoragePostgreSQLSSL ¶ added in v4.38.0
type StoragePostgreSQLSSL struct { Mode string `` /* 263-byte string literal not displayed */ RootCertificate string `` /* 281-byte string literal not displayed */ Certificate string `` /* 251-byte string literal not displayed */ Key string `` /* 211-byte string literal not displayed */ }
StoragePostgreSQLSSL represents the SSL configuration of a PostgreSQL database.
type StoragePostgreSQLServer ¶ added in v4.39.0
type StoragePostgreSQLServer struct { Address *AddressTCP `` /* 180-byte string literal not displayed */ TLS *TLS `koanf:"tls" yaml:"tls,omitempty" toml:"tls,omitempty" json:"tls,omitempty"` }
type StorageSQL ¶ added in v4.38.0
type StorageSQL struct { Address *AddressTCP `` /* 173-byte string literal not displayed */ Database string `` /* 202-byte string literal not displayed */ Username string `` /* 184-byte string literal not displayed */ Password string `` /* 184-byte string literal not displayed */ Timeout time.Duration `` /* 201-byte string literal not displayed */ TLS *TLS `koanf:"tls" yaml:"tls,omitempty" toml:"tls,omitempty" json:"tls,omitempty"` }
StorageSQL represents the configuration of the SQL database.
type StructValidator ¶
type StructValidator struct {
// contains filtered or unexported fields
}
StructValidator is a validator for structs.
func NewStructValidator ¶
func NewStructValidator() *StructValidator
NewStructValidator is a constructor of struct validator.
func (*StructValidator) Errors ¶
func (v *StructValidator) Errors() []error
Errors returns the errors.
func (*StructValidator) HasErrors ¶
func (v *StructValidator) HasErrors() bool
HasErrors checks whether the validator contains errors.
func (*StructValidator) HasWarnings ¶
func (v *StructValidator) HasWarnings() bool
HasWarnings checks whether the validator contains warning errors.
func (*StructValidator) Push ¶
func (v *StructValidator) Push(err error)
Push an error to the validator.
func (*StructValidator) PushWarning ¶
func (v *StructValidator) PushWarning(err error)
PushWarning error to the validator.
func (*StructValidator) Warnings ¶
func (v *StructValidator) Warnings() []error
Warnings returns the warnings.
type TLS ¶ added in v4.38.0
type TLS struct { MinimumVersion TLSVersion `` /* 231-byte string literal not displayed */ MaximumVersion TLSVersion `` /* 231-byte string literal not displayed */ SkipVerify bool `` /* 194-byte string literal not displayed */ ServerName string `` /* 237-byte string literal not displayed */ PrivateKey CryptographicPrivateKey `` /* 179-byte string literal not displayed */ CertificateChain X509CertificateChain `` /* 215-byte string literal not displayed */ }
TLS is a representation of the TLS configuration.
type TLSVersion ¶ added in v4.37.0
type TLSVersion struct {
Value uint16
}
TLSVersion is a struct which handles tls.Config versions.
func NewTLSVersion ¶ added in v4.37.0
func NewTLSVersion(input string) (version *TLSVersion, err error)
NewTLSVersion returns a new TLSVersion given a string.
func (TLSVersion) JSONSchema ¶ added in v4.38.0
func (TLSVersion) JSONSchema() *jsonschema.Schema
JSONSchema returns the JSON Schema information for the TLSVersion type.
func (TLSVersion) MarshalYAML ¶ added in v4.39.2
func (v TLSVersion) MarshalYAML() (any, error)
func (*TLSVersion) MaxVersion ¶ added in v4.37.0
func (v *TLSVersion) MaxVersion() uint16
MaxVersion returns the value of this as a MaxVersion value.
func (*TLSVersion) MinVersion ¶ added in v4.37.0
func (v *TLSVersion) MinVersion() uint16
MinVersion returns the value of this as a MinVersion value.
func (*TLSVersion) String ¶ added in v4.37.0
func (v *TLSVersion) String() string
String provides the Stringer.
type TOTP ¶ added in v4.38.0
type TOTP struct { Disable bool `` /* 163-byte string literal not displayed */ Issuer string `` /* 196-byte string literal not displayed */ DefaultAlgorithm string `` /* 244-byte string literal not displayed */ DefaultDigits int `` /* 173-byte string literal not displayed */ DefaultPeriod int `` /* 160-byte string literal not displayed */ Skew *int `` /* 181-byte string literal not displayed */ SecretSize int `` /* 195-byte string literal not displayed */ AllowedAlgorithms []string `` /* 321-byte string literal not displayed */ AllowedDigits []int `` /* 274-byte string literal not displayed */ AllowedPeriods []int `` /* 267-byte string literal not displayed */ DisableReuseSecurityPolicy bool `` /* 301-byte string literal not displayed */ }
TOTP represents the configuration related to TOTP options.
type Telemetry ¶ added in v4.38.0
type Telemetry struct {
Metrics TelemetryMetrics `` /* 186-byte string literal not displayed */
}
Telemetry represents the telemetry config.
type TelemetryMetrics ¶ added in v4.38.0
type TelemetryMetrics struct { Enabled bool `` /* 154-byte string literal not displayed */ Address *AddressTCP `` /* 212-byte string literal not displayed */ Buffers ServerBuffers `` /* 199-byte string literal not displayed */ Timeouts ServerTimeouts `` /* 205-byte string literal not displayed */ }
TelemetryMetrics represents the telemetry metrics config.
type UserAttribute ¶ added in v4.39.0
type UserAttribute struct {
Expression string `` /* 244-byte string literal not displayed */
}
type WebAuthn ¶ added in v4.38.0
type WebAuthn struct { Disable bool `` /* 167-byte string literal not displayed */ EnablePasskeyLogin bool `` /* 230-byte string literal not displayed */ EnablePasskey2FA bool `` /* 500-byte string literal not displayed */ EnablePasskeyUpgrade bool `` /* 481-byte string literal not displayed */ DisplayName string `` /* 243-byte string literal not displayed */ ConveyancePreference protocol.ConveyancePreference `` /* 377-byte string literal not displayed */ Timeout time.Duration `` /* 210-byte string literal not displayed */ Filtering WebAuthnFiltering `` /* 195-byte string literal not displayed */ SelectionCriteria WebAuthnSelectionCriteria `` /* 211-byte string literal not displayed */ Metadata WebAuthnMetadata `` /* 155-byte string literal not displayed */ }
WebAuthn represents the webauthn config.
type WebAuthnFiltering ¶ added in v4.39.0
type WebAuthnMetadata ¶ added in v4.39.0
type WebAuthnMetadata struct { Enabled bool `` /* 176-byte string literal not displayed */ CachePolicy string `` /* 223-byte string literal not displayed */ ValidateTrustAnchor bool `` /* 258-byte string literal not displayed */ ValidateEntry bool `` /* 259-byte string literal not displayed */ ValidateEntryPermitZeroAAGUID bool `` /* 311-byte string literal not displayed */ ValidateStatus bool `` /* 207-byte string literal not displayed */ ValidateStatusPermitted []metadata.AuthenticatorStatus `` /* 748-byte string literal not displayed */ ValidateStatusProhibited []metadata.AuthenticatorStatus `` /* 763-byte string literal not displayed */ }
type WebAuthnSelectionCriteria ¶ added in v4.39.0
type WebAuthnSelectionCriteria struct { Attachment protocol.AuthenticatorAttachment `` /* 252-byte string literal not displayed */ Discoverability protocol.ResidentKeyRequirement `` /* 331-byte string literal not displayed */ UserVerification protocol.UserVerificationRequirement `` /* 327-byte string literal not displayed */ }
type X509CertificateChain ¶ added in v4.37.0
type X509CertificateChain struct {
// contains filtered or unexported fields
}
X509CertificateChain is a helper struct that holds a list of *x509.Certificate's.
func NewX509CertificateChain ¶ added in v4.37.0
func NewX509CertificateChain(in string) (chain *X509CertificateChain, err error)
NewX509CertificateChain creates a new *X509CertificateChain from a given string, parsing each PEM block one by one.
func NewX509CertificateChainFromCerts ¶ added in v4.38.0
func NewX509CertificateChainFromCerts(in []*x509.Certificate) (chain X509CertificateChain)
NewX509CertificateChainFromCerts returns a chain from a given list of certificates without validation.
func (*X509CertificateChain) Certificates ¶ added in v4.37.0
func (c *X509CertificateChain) Certificates() (certificates []*x509.Certificate)
Certificates for this X509CertificateChain.
func (*X509CertificateChain) CertificatesRaw ¶ added in v4.37.0
func (c *X509CertificateChain) CertificatesRaw() (certificates [][]byte)
CertificatesRaw for this X509CertificateChain.
func (*X509CertificateChain) EncodePEM ¶ added in v4.38.0
func (c *X509CertificateChain) EncodePEM() (encoded []byte, err error)
EncodePEM encodes the entire chain as PEM bytes.
func (*X509CertificateChain) Equal ¶ added in v4.37.0
func (c *X509CertificateChain) Equal(other *x509.Certificate) (equal bool)
Equal checks if the provided *x509.Certificate is equal to the first *x509.Certificate in the chain.
func (*X509CertificateChain) EqualKey ¶ added in v4.37.0
func (c *X509CertificateChain) EqualKey(other any) (equal bool)
EqualKey checks if the provided key (public or private) has a public key equal to the first public key in this chain.
func (*X509CertificateChain) HasCertificates ¶ added in v4.37.0
func (c *X509CertificateChain) HasCertificates() (has bool)
HasCertificates returns true if the chain has any certificates.
func (X509CertificateChain) JSONSchema ¶ added in v4.38.0
func (X509CertificateChain) JSONSchema() *jsonschema.Schema
JSONSchema returns the JSON Schema information for the X509CertificateChain type.
func (*X509CertificateChain) Leaf ¶ added in v4.37.0
func (c *X509CertificateChain) Leaf() (leaf *x509.Certificate)
Leaf returns the first certificate if available for use with tls.Certificate.
func (*X509CertificateChain) Thumbprint ¶ added in v4.37.0
func (c *X509CertificateChain) Thumbprint(hash crypto.Hash) []byte
Thumbprint returns the Thumbprint for the first certificate.
func (*X509CertificateChain) Validate ¶ added in v4.37.0
func (c *X509CertificateChain) Validate() (err error)
Validate the X509CertificateChain ensuring the certificates were provided in the correct order (with nth being signed by the nth+1), and that all of the certificates are valid based on the current time.
Source Files
¶
- access_control.go
- authentication.go
- configuration.go
- const.go
- definitions.go
- duo.go
- identity_providers.go
- identity_validation.go
- keys.go
- log.go
- notifier.go
- ntp.go
- password_policy.go
- privacy_policy.go
- regulation.go
- server.go
- session.go
- shared.go
- storage.go
- telemetry.go
- totp.go
- types.go
- types_address.go
- types_addresses_nix.go
- util.go
- validator.go
- webauthn.go