> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# atoti.KerberosConfig

### *final class* atoti.KerberosConfig

The config to delegate authentication to [Kerberos](https://web.mit.edu/kerberos/).

The user’s roles can be defined using [`atoti.security.Security.kerberos`](./atoti.security.Security.kerberos#atoti.security.Security.kerberos) and [`individual_roles`](./atoti.security.Security.individual_roles#atoti.security.Security.individual_roles).

#### keytab *: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The path to the keytab file to use.

#### krb5\_config *: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The path to the Kerberos config file.

Defaults to the OS-specific default location.

#### service\_principal *: [str](https://docs.python.org/3/library/stdtypes.html#str)*

The principal that the session will use.

#### username\_case\_conversion *: 'upper' | 'lower'*

The case conversion to apply to the username.

This authentication provider is generally case insensitive: the same user Jane could log in with the usernames `"jane"`, `"Jane"`, `"JANE"`, etc.
This attribute allows reducing all the possible cases to a single one to be compatible with [`individual_roles`](./atoti.security.Security.individual_roles#atoti.security.Security.individual_roles) and other case sensitive mappings.

For instance, if `session.security.individual_roles == {"jane": {"ROLE_USER"}}`, [`username_case_conversion`](#atoti.KerberosConfig.username_case_conversion) should be set to `"lower"`.
