Authelia · Schema

Authelia Configuration.Schema

AuthenticationAuthorizationLDAPMFAOpen-SourceOpenID ConnectSelf-HostedSSO
View JSON Schema on GitHub

JSON Schema

authelia-configuration.schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.authelia.com/schemas/v4.39/json-schema/configuration.json",
  "$ref": "#/$defs/Configuration",
  "$defs": {
    "AccessControl": {
      "properties": {
        "default_policy": {
          "type": "string",
          "enum": [
            "deny",
            "one_factor",
            "two_factor"
          ],
          "title": "Default Authorization Policy",
          "description": "The default policy applied to all authorization requests unrelated to OpenID Connect 1.0.",
          "default": "deny"
        },
        "networks": {
          "items": {
            "$ref": "#/$defs/AccessControlNetwork"
          },
          "type": "array",
          "title": "Named Networks",
          "description": "The list of named networks which can be reused in any ACL rule."
        },
        "rules": {
          "items": {
            "$ref": "#/$defs/AccessControlRule"
          },
          "type": "array",
          "title": "Rules List",
          "description": "The list of ACL rules to enumerate for requests."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AccessControl represents the configuration related to ACLs."
    },
    "AccessControlNetwork": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Network Name",
          "description": "The name of this network to be used in the networks section of the rules section."
        },
        "networks": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "title": "Networks",
          "description": "The remote IP's or network ranges in CIDR notation that this rule applies to."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "networks"
      ],
      "description": "AccessControlNetwork represents one ACL network group entry."
    },
    "AccessControlRule": {
      "oneOf": [
        {
          "required": [
            "domain"
          ],
          "title": "Domain"
        },
        {
          "required": [
            "domain_regex"
          ],
          "title": "Domain Regex"
        }
      ],
      "properties": {
        "domain": {
          "$ref": "#/$defs/AccessControlRuleDomains",
          "title": "Domain Literals",
          "description": "The literal domains to match the domain against that this rule applies to."
        },
        "domain_regex": {
          "$ref": "#/$defs/AccessControlRuleRegexCI",
          "title": "Domain Regex Patterns",
          "description": "The regex patterns to match the domain against that this rule applies to."
        },
        "policy": {
          "type": "string",
          "enum": [
            "bypass",
            "deny",
            "one_factor",
            "two_factor"
          ],
          "title": "Rule Policy",
          "description": "The policy this rule applies when all criteria match."
        },
        "subject": {
          "$ref": "#/$defs/AccessControlRuleSubjects",
          "title": "AccessControlRuleSubjects",
          "description": "The users or groups that this rule applies to."
        },
        "networks": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "title": "Networks",
          "description": "The remote IP's, network ranges in CIDR notation, or network definition names that this rule applies to."
        },
        "resources": {
          "$ref": "#/$defs/AccessControlRuleRegex",
          "title": "Resources or Paths",
          "description": "The regex patterns to match the resource paths that this rule applies to."
        },
        "methods": {
          "$ref": "#/$defs/AccessControlRuleMethods",
          "title": "Methods",
          "description": "The list of request methods this rule applies to."
        },
        "query": {
          "items": {
            "items": {
              "$ref": "#/$defs/AccessControlRuleQuery"
            },
            "type": "array"
          },
          "type": "array",
          "title": "Query Rules",
          "description": "The list of query parameter rules this rule applies to."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "policy"
      ],
      "description": "AccessControlRule represents one ACL rule entry."
    },
    "AccessControlRuleDomains": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "AccessControlRuleMethods": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "GET",
            "HEAD",
            "POST",
            "PUT",
            "PATCH",
            "DELETE",
            "TRACE",
            "CONNECT",
            "OPTIONS",
            "COPY",
            "LOCK",
            "MKCOL",
            "MOVE",
            "PROPFIND",
            "PROPPATCH",
            "UNLOCK"
          ]
        },
        {
          "items": {
            "type": "string",
            "enum": [
              "GET",
              "HEAD",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "TRACE",
              "CONNECT",
              "OPTIONS",
              "COPY",
              "LOCK",
              "MKCOL",
              "MOVE",
              "PROPFIND",
              "PROPPATCH",
              "UNLOCK"
            ]
          },
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "AccessControlRuleQuery": {
      "properties": {
        "operator": {
          "type": "string",
          "enum": [
            "equal",
            "not equal",
            "present",
            "absent",
            "pattern",
            "not pattern"
          ],
          "title": "Operator",
          "description": "The list of query parameter rules this rule applies to."
        },
        "key": {
          "type": "string",
          "title": "Key",
          "description": "The Query Parameter key this rule applies to."
        },
        "value": {
          "title": "Value",
          "description": "The Query Parameter value for this rule."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "key"
      ],
      "description": "AccessControlRuleQuery represents the ACL query criteria."
    },
    "AccessControlRuleRegex": {
      "oneOf": [
        {
          "type": "string",
          "format": "regex"
        },
        {
          "items": {
            "type": "string",
            "format": "regex"
          },
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "AccessControlRuleRegexCI": {
      "oneOf": [
        {
          "type": "string",
          "format": "regex"
        },
        {
          "items": {
            "type": "string",
            "format": "regex"
          },
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "AccessControlRuleSubjects": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^(user|group|oauth2:client):.+$"
        },
        {
          "items": {
            "type": "string",
            "pattern": "^(user|group|oauth2:client):.+$"
          },
          "type": "array"
        },
        {
          "items": {
            "items": {
              "type": "string",
              "pattern": "^(user|group|oauth2:client):.+$"
            },
            "type": "array"
          },
          "type": "array",
          "uniqueItems": true
        }
      ]
    },
    "AddressLDAP": {
      "type": "string",
      "pattern": "^((ldaps?:\\/\\/)?([^:\\/]*(:\\d+)|[^:\\/]+(:\\d+)?)?|ldapi:\\/\\/(\\/[^?\\n]+)?)$",
      "format": "uri"
    },
    "AddressSMTP": {
      "type": "string",
      "pattern": "^((smtp|submissions?):\\/\\/)?([^:\\/]*(:\\d+)|[^:\\/]+(:\\d+)?)?$",
      "format": "uri"
    },
    "AddressTCP": {
      "type": "string",
      "pattern": "^((tcp[46]?:\\/\\/)?([^:\\/]*(:\\d+)|[^:\\/]+(:\\d+)?)(\\/.*)?|unix:\\/\\/\\/[^?\\n]+(\\?(umask=[0-7]{3,4}|path=[a-z]+)(\u0026(umask=[0-7]{3,4}|path=[a-zA-Z0-9.~_-]+))?)?)$",
      "format": "uri"
    },
    "AddressUDP": {
      "type": "string",
      "pattern": "^(udp[46]?:\\/\\/)?([^:\\/]*(:\\d+)|[^:\\/]+(:\\d+)?)(\\/.*)?$",
      "format": "uri"
    },
    "AuthenticationBackend": {
      "properties": {
        "password_reset": {
          "$ref": "#/$defs/AuthenticationBackendPasswordReset",
          "title": "Password Reset",
          "description": "Allows configuration of the password reset behavior."
        },
        "password_change": {
          "$ref": "#/$defs/AuthenticationBackendPasswordChange",
          "title": "Password Change",
          "description": "Allows configuration of the password change behavior."
        },
        "refresh_interval": {
          "$ref": "#/$defs/RefreshIntervalDuration",
          "title": "Refresh Interval",
          "description": "How frequently the user details are refreshed from the backend."
        },
        "file": {
          "$ref": "#/$defs/AuthenticationBackendFile",
          "title": "File Backend",
          "description": "The file authentication backend configuration."
        },
        "ldap": {
          "$ref": "#/$defs/AuthenticationBackendLDAP",
          "title": "LDAP Backend",
          "description": "The LDAP authentication backend configuration."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackend represents the configuration related to the authentication backend."
    },
    "AuthenticationBackendExtraAttribute": {
      "properties": {
        "multi_valued": {
          "type": "boolean",
          "title": "Multi-Valued",
          "description": "Defines the attribute as multi-valued."
        },
        "value_type": {
          "type": "string",
          "enum": [
            "boolean",
            "integer",
            "string"
          ],
          "title": "Value Type",
          "description": "Defines the value type for the attribute."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendExtraAttribute represents the configuration of an extra user attribute."
    },
    "AuthenticationBackendFile": {
      "properties": {
        "path": {
          "type": "string",
          "title": "Path",
          "description": "The file path to the user database."
        },
        "watch": {
          "type": "boolean",
          "title": "Watch",
          "description": "Enables watching the file for external changes and dynamically reloading the database.",
          "default": false
        },
        "password": {
          "$ref": "#/$defs/AuthenticationBackendFilePassword",
          "title": "Password Options",
          "description": "Allows configuration of the password hashing options when the user passwords are changed directly by Authelia."
        },
        "search": {
          "$ref": "#/$defs/AuthenticationBackendFileSearch",
          "title": "Search",
          "description": "Configures the user searching behavior."
        },
        "extra_attributes": {
          "patternProperties": {
            ".*": {
              "$ref": "#/$defs/AuthenticationBackendExtraAttribute"
            }
          },
          "type": "object",
          "title": "Extra Attributes",
          "description": "Configures the extra attributes available in expressions and other areas of Authelia."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFile represents the configuration related to file-based backend."
    },
    "AuthenticationBackendFilePassword": {
      "properties": {
        "algorithm": {
          "type": "string",
          "enum": [
            "argon2",
            "sha2crypt",
            "pbkdf2",
            "bcrypt",
            "scrypt"
          ],
          "title": "Algorithm",
          "description": "The password hashing algorithm to use.",
          "default": "argon2"
        },
        "argon2": {
          "$ref": "#/$defs/AuthenticationBackendFilePasswordArgon2",
          "title": "Argon2",
          "description": "Configure the Argon2 password hashing parameters."
        },
        "sha2crypt": {
          "$ref": "#/$defs/AuthenticationBackendFilePasswordSHA2Crypt",
          "title": "SHA2Crypt",
          "description": "Configure the SHA2Crypt password hashing parameters."
        },
        "pbkdf2": {
          "$ref": "#/$defs/AuthenticationBackendFilePasswordPBKDF2",
          "title": "PBKDF2",
          "description": "Configure the PBKDF2 password hashing parameters."
        },
        "bcrypt": {
          "$ref": "#/$defs/AuthenticationBackendFilePasswordBcrypt",
          "title": "Bcrypt",
          "description": "Configure the Bcrypt password hashing parameters."
        },
        "scrypt": {
          "$ref": "#/$defs/AuthenticationBackendFilePasswordScrypt",
          "title": "Scrypt",
          "description": "Configure the Scrypt password hashing parameters."
        },
        "iterations": {
          "type": "integer",
          "title": "Iterations",
          "description": "Deprecated: Use individual password options instead.",
          "deprecated": true
        },
        "memory": {
          "type": "integer",
          "title": "Memory",
          "description": "Deprecated: Use individual password options instead.",
          "deprecated": true
        },
        "parallelism": {
          "type": "integer",
          "title": "Parallelism",
          "description": "Deprecated: Use individual password options instead.",
          "deprecated": true
        },
        "key_length": {
          "type": "integer",
          "title": "Key Length",
          "description": "Deprecated: Use individual password options instead.",
          "deprecated": true
        },
        "salt_length": {
          "type": "integer",
          "title": "Salt Length",
          "description": "Deprecated: Use individual password options instead.",
          "deprecated": true
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePassword represents the configuration related to password hashing."
    },
    "AuthenticationBackendFilePasswordArgon2": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "argon2id",
            "argon2i",
            "argon2d"
          ],
          "title": "Variant",
          "description": "The Argon2 variant to be used.",
          "default": "argon2id"
        },
        "iterations": {
          "type": "integer",
          "title": "Iterations",
          "description": "The number of Argon2 iterations (parameter t) to be used.",
          "default": 3
        },
        "memory": {
          "type": "integer",
          "maximum": 4294967295,
          "minimum": 8,
          "title": "Memory",
          "description": "The Argon2 amount of memory in kibibytes (parameter m) to be used.",
          "default": 65536
        },
        "parallelism": {
          "type": "integer",
          "maximum": 16777215,
          "minimum": 1,
          "title": "Parallelism",
          "description": "The Argon2 degree of parallelism (parameter p) to be used.",
          "default": 4
        },
        "key_length": {
          "type": "integer",
          "maximum": 2147483647,
          "minimum": 4,
          "title": "Key Length",
          "description": "The Argon2 key output length.",
          "default": 32
        },
        "salt_length": {
          "type": "integer",
          "maximum": 2147483647,
          "minimum": 1,
          "title": "Salt Length",
          "description": "The Argon2 salt length.",
          "default": 16
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePasswordArgon2 represents the argon2 hashing settings."
    },
    "AuthenticationBackendFilePasswordBcrypt": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "standard",
            "sha256"
          ],
          "title": "Variant",
          "description": "The Bcrypt variant to be used.",
          "default": "standard"
        },
        "cost": {
          "type": "integer",
          "maximum": 31,
          "minimum": 10,
          "title": "Cost",
          "description": "The Bcrypt cost to be used.",
          "default": 12
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePasswordBcrypt represents the bcrypt hashing settings."
    },
    "AuthenticationBackendFilePasswordPBKDF2": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "sha1",
            "sha224",
            "sha256",
            "sha384",
            "sha512"
          ],
          "title": "Variant",
          "description": "The PBKDF2 variant to be used.",
          "default": "sha512"
        },
        "iterations": {
          "type": "integer",
          "maximum": 2147483647,
          "minimum": 100000,
          "title": "Iterations",
          "description": "The PBKDF2 iterations to be used.",
          "default": 310000
        },
        "salt_length": {
          "type": "integer",
          "maximum": 2147483647,
          "minimum": 8,
          "title": "Salt Length",
          "description": "The PBKDF2 salt length to be used.",
          "default": 16
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePasswordPBKDF2 represents the PBKDF2 hashing settings."
    },
    "AuthenticationBackendFilePasswordSHA2Crypt": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "sha256",
            "sha512"
          ],
          "title": "Variant",
          "description": "The SHA2Crypt variant to be used.",
          "default": "sha512"
        },
        "iterations": {
          "type": "integer",
          "maximum": 999999999,
          "minimum": 1000,
          "title": "Iterations",
          "description": "The SHA2Crypt iterations (parameter rounds) to be used.",
          "default": 50000
        },
        "salt_length": {
          "type": "integer",
          "maximum": 16,
          "minimum": 1,
          "title": "Salt Length",
          "description": "The SHA2Crypt salt length to be used.",
          "default": 16
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePasswordSHA2Crypt represents the sha2crypt hashing settings."
    },
    "AuthenticationBackendFilePasswordScrypt": {
      "properties": {
        "variant": {
          "type": "string",
          "enum": [
            "scrypt",
            "yescrypt"
          ],
          "title": "Variant",
          "description": "The Scrypt variant to be used.",
          "default": "scrypt"
        },
        "iterations": {
          "type": "integer",
          "maximum": 58,
          "minimum": 1,
          "title": "Iterations",
          "description": "The Scrypt iterations to be used.",
          "default": 16
        },
        "block_size": {
          "type": "integer",
          "maximum": 36028797018963967,
          "minimum": 1,
          "title": "Block Size",
          "description": "The Scrypt block size to be used.",
          "default": 8
        },
        "parallelism": {
          "type": "integer",
          "maximum": 1073741823,
          "minimum": 1,
          "title": "Parallelism",
          "description": "The Scrypt parallelism factor to be used.",
          "default": 1
        },
        "key_length": {
          "type": "integer",
          "maximum": 137438953440,
          "minimum": 1,
          "title": "Key Length",
          "description": "The Scrypt key length to be used.",
          "default": 32
        },
        "salt_length": {
          "type": "integer",
          "maximum": 1024,
          "minimum": 8,
          "title": "Salt Length",
          "description": "The Scrypt salt length to be used.",
          "default": 16
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFilePasswordScrypt represents the scrypt hashing settings."
    },
    "AuthenticationBackendFileSearch": {
      "properties": {
        "email": {
          "type": "boolean",
          "title": "Email Searching",
          "description": "Allows users to either use their username or their configured email as a username.",
          "default": false
        },
        "case_insensitive": {
          "type": "boolean",
          "title": "Case Insensitive Searching",
          "description": "Allows usernames to be any case during the search.",
          "default": false
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendFileSearch represents the configuration related to file-based backend searching."
    },
    "AuthenticationBackendLDAP": {
      "properties": {
        "address": {
          "$ref": "#/$defs/AddressLDAP",
          "title": "Address",
          "description": "The address of the LDAP directory server."
        },
        "implementation": {
          "type": "string",
          "enum": [
            "custom",
            "activedirectory",
            "rfc2307bis",
            "freeipa",
            "lldap",
            "glauth"
          ],
          "title": "Implementation",
          "description": "The implementation which mostly decides the default values.",
          "default": "custom"
        },
        "timeout": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^\\d+\\s*(y|M|w|d|h|m|s|ms|((year|month|week|day|hour|minute|second|millisecond)s?))(\\s*(\\s+and\\s+)?\\d+\\s*(y|M|w|d|h|m|s|ms|((year|month|week|day|hour|minute|second|millisecond)s?)))*$"
            },
            {
              "type": "integer",
              "description": "The duration in seconds"
            }
          ],
          "title": "Timeout",
          "description": "The LDAP directory server connection timeout."
        },
        "start_tls": {
          "type": "boolean",
          "title": "StartTLS",
          "description": "Enables the use of StartTLS.",
          "default": false
        },
        "tls": {
          "$ref": "#/$defs/TLS",
          "title": "TLS",
          "description": "The LDAP directory server TLS connection properties."
        },
        "pooling": {
          "$ref": "#/$defs/AuthenticationBackendLDAPPooling",
          "title": "Pooling",
          "description": "The LDAP Connection Pooling properties."
        },
        "base_dn": {
          "type": "string",
          "title": "Base DN",
          "description": "The base for all directory server operations."
        },
        "additional_users_dn": {
          "type": "string",
          "title": "Additional User Base",
          "description": "The base in addition to the Base DN for all directory server operations for users."
        },
        "users_filter": {
          "type": "string",
          "title": "Users Filter",
          "description": "The LDAP filter used to search for user objects."
        },
        "additional_groups_dn": {
          "type": "string",
          "title": "Additional Group Base",
          "description": "The base in addition to the Base DN for all directory server operations for groups."
        },
        "groups_filter": {
          "type": "string",
          "title": "Groups Filter",
          "description": "The LDAP filter used to search for group objects."
        },
        "group_search_mode": {
          "type": "string",
          "enum": [
            "filter",
            "memberof"
          ],
          "title": "Groups Search Modes",
          "description": "The LDAP group search mode used to search for group objects.",
          "default": "filter"
        },
        "attributes": {
          "$ref": "#/$defs/AuthenticationBackendLDAPAttributes",
          "title": "Attributes",
          "description": "The LDAP directory server attributes."
        },
        "permit_referrals": {
          "type": "boolean",
          "title": "Permit Referrals",
          "description": "Enables chasing LDAP referrals.",
          "default": false
        },
        "permit_unauthenticated_bind": {
          "type": "boolean",
          "title": "Permit Unauthenticated Bind",
          "description": "Enables omission of the password to perform an unauthenticated bind.",
          "default": false
        },
        "user": {
          "type": "string",
          "title": "User",
          "description": "The user distinguished name for LDAP binding."
        },
        "password": {
          "type": "string",
          "title": "Password",
          "description": "The password for LDAP authenticated binding."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendLDAP represents the configuration related to LDAP server."
    },
    "AuthenticationBackendLDAPAttributes": {
      "properties": {
        "distinguished_name": {
          "type": "string",
          "title": "Attribute: Distinguished Name",
          "description": "The directory server attribute which contains the distinguished name for all objects."
        },
        "username": {
          "type": "string",
          "title": "Attribute: User Username",
          "description": "The directory server attribute which contains the username for all users."
        },
        "display_name": {
          "type": "string",
          "title": "Attribute: User Display Name",
          "description": "The directory server attribute which contains the display name for all users."
        },
        "family_name": {
          "type": "string",
          "title": "Attribute: Family Name",
          "description": "The directory server attribute which contains the family name for all users."
        },
        "given_name": {
          "type": "string",
          "title": "Attribute: Given Name",
          "description": "The directory server attribute which contains the given name for all users."
        },
        "middle_name": {
          "type": "string",
          "title": "Attribute: Middle Name",
          "description": "The directory server attribute which contains the middle name for all users."
        },
        "nickname": {
          "type": "string",
          "title": "Attribute: Nickname",
          "description": "The directory server attribute which contains the nickname for all users."
        },
        "gender": {
          "type": "string",
          "title": "Attribute: Gender",
          "description": "The directory server attribute which contains the gender for all users."
        },
        "birthdate": {
          "type": "string",
          "title": "Attribute: Birthdate",
          "description": "The directory server attribute which contains the birthdate for all users."
        },
        "website": {
          "type": "string",
          "title": "Attribute: Website",
          "description": "The directory server attribute which contains the website URL for all users."
        },
        "profile": {
          "type": "string",
          "title": "Attribute: Profile",
          "description": "The directory server attribute which contains the profile URL for all users."
        },
        "picture": {
          "type": "string",
          "title": "Attribute: Picture",
          "description": "The directory server attribute which contains the picture URL for all users."
        },
        "zoneinfo": {
          "type": "string",
          "title": "Attribute: Zone Information",
          "description": "The directory server attribute which contains the time zone information for all users."
        },
        "locale": {
          "type": "string",
          "title": "Attribute: Locale",
          "description": "The directory server attribute which contains the locale information for all users."
        },
        "phone_number": {
          "type": "string",
          "title": "Attribute: Phone Number",
          "description": "The directory server attribute which contains the phone number for all users."
        },
        "phone_extension": {
          "type": "string",
          "title": "Attribute: Phone Extension",
          "description": "The directory server attribute which contains the phone extension for all users."
        },
        "street_address": {
          "type": "string",
          "title": "Attribute: Street Address",
          "description": "The directory server attribute which contains the street address for all users."
        },
        "locality": {
          "type": "string",
          "title": "Attribute: Locality",
          "description": "The directory server attribute which contains the locality for all users."
        },
        "region": {
          "type": "string",
          "title": "Attribute: Region",
          "description": "The directory server attribute which contains the region for all users."
        },
        "postal_code": {
          "type": "string",
          "title": "Attribute: Postal Code",
          "description": "The directory server attribute which contains the postal code for all users."
        },
        "country": {
          "type": "string",
          "title": "Attribute: Country",
          "description": "The directory server attribute which contains the country for all users."
        },
        "mail": {
          "type": "string",
          "title": "Attribute: User Mail",
          "description": "The directory server attribute which contains the mail address for all users and groups."
        },
        "member_of": {
          "type": "string",
          "title": "Attribute: Member Of",
          "description": "The directory server attribute which contains the objects that an object is a member of."
        },
        "group_name": {
          "type": "string",
          "title": "Attribute: Group Name",
          "description": "The directory server attribute which contains the group name for all groups."
        },
        "extra": {
          "patternProperties": {
            ".*": {
              "$ref": "#/$defs/AuthenticationBackendLDAPAttributesAttribute"
            }
          },
          "type": "object",
          "title": "Extra Attributes",
          "description": "Configures the extra attributes available in expressions and other areas of Authelia."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendLDAPAttributes represents the configuration related to LDAP server attributes."
    },
    "AuthenticationBackendLDAPAttributesAttribute": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "description": "The name of the attribute within Authelia. This does not adjust the attribute queried from the LDAP server."
        },
        "multi_valued": {
          "type": "boolean",
          "title": "Multi-Valued",
          "description": "Defines the attribute as multi-valued."
        },
        "value_type": {
          "type": "string",
          "enum": [
            "boolean",
            "integer",
            "string"
          ],
          "title": "Value Type",
          "description": "Defines the value type for the attribute."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "description": "AuthenticationBackendLDAPAttrib

# --- truncated at 32 KB (162 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/authelia/refs/heads/main/json-schema/authelia-configuration.schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/authelia-configuration.schema"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.