> ## 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.

# KerberosConfig

<span id="atoti.KerberosConfig" />

> atoti.KerberosConfig(<br />
>     \*,<br />
>     *username\_case\_conversion*: 'upper' | 'lower',<br />
>     *service\_principal*: [str](https://docs.python.org/3/library/stdtypes.html#str),<br />
>     *keytab*: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *krb5\_config*: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
> )

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).

### Attributes

<h4 id="atoti.KerberosConfig.service_principal">
  *service\_principal*
</h4>

The principal that the session will use.

<h4 id="atoti.KerberosConfig.keytab">
  *keytab*
</h4>

The path to the keytab file to use.

<h4 id="atoti.KerberosConfig.username_case_conversion">
  *username\_case\_conversion*
</h4>

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"`.

<h4 id="atoti.KerberosConfig.krb5_config">
  *krb5\_config*
</h4>

The path to the Kerberos config file.

Defaults to the OS-specific default location.
