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

# SecurityConfig

<span id="atoti.SecurityConfig" />

> atoti.SecurityConfig(<br />
>     \*,<br />
>     *basic\_authentication*: [BasicAuthenticationConfig](./atoti.config.security.BasicAuthenticationConfig#atoti.BasicAuthenticationConfig) = `BasicAuthenticationConfig()`,<br />
>     *client\_certificate*: [ClientCertificateConfig](./atoti.config.security.ClientCertificateConfig#atoti.ClientCertificateConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *cors*: [CorsConfig](./atoti.config.security.CorsConfig#atoti.CorsConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *https*: [HttpsConfig](./atoti.config.security.HttpsConfig#atoti.HttpsConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *jwt*: [JwtConfig](./atoti.config.security.JwtConfig#atoti.JwtConfig) = `JwtConfig()`,<br />
>     *login*: [LoginConfig](./atoti.config.security.LoginConfig#atoti.LoginConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *same\_site*: [Literal](https://docs.python.org/3/library/typing.html#typing.Literal)\['lax', 'none', 'strict'] = `'lax'`,<br />
>     *sso*: [KerberosConfig](./atoti.config.security.KerberosConfig#atoti.KerberosConfig) | [LdapConfig](./atoti.config.security.LdapConfig#atoti.LdapConfig) | [OidcConfig](./atoti.config.security.OidcConfig#atoti.OidcConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
> )

The security config.

<Note>
  This feature is not part of the community edition: it needs to be [unlocked](../guides/unlocking_all_features).
</Note>

This configures the parts of the security system that cannot be changed once the session is started.

<Callout icon="link">
  **See also**:
  [`atoti.Session.security`](./atoti.Session.security#atoti.Session.security) and [`atoti.tables.Tables.restrictions`](./atoti.Tables.restrictions#atoti.tables.Tables.restrictions) to continue configuring the security once the session is started.
</Callout>

### Attributes

<h4 id="atoti.SecurityConfig.basic_authentication">
  *basic\_authentication*
</h4>

Always enabled even if [`sso`](#atoti.SecurityConfig.sso) is not `None` to facilitate the authentication of service/technical users.

<Callout icon="link">
  **See also**:
  [`BasicAuthenticationSecurity`](./atoti.security.BasicAuthenticationSecurity#atoti.security.basic_authentication_security.BasicAuthenticationSecurity).
</Callout>

<h4 id="atoti.SecurityConfig.client_certificate">
  *client\_certificate*
</h4>

> [ClientCertificateConfig](./atoti.config.security.ClientCertificateConfig#atoti.ClientCertificateConfig) | [None](https://docs.python.org/3/library/constants.html#None)

<h4 id="atoti.SecurityConfig.cors">
  *cors*
</h4>

> [CorsConfig](./atoti.config.security.CorsConfig#atoti.CorsConfig) | [None](https://docs.python.org/3/library/constants.html#None)

<h4 id="atoti.SecurityConfig.https">
  *https*
</h4>

> [HttpsConfig](./atoti.config.security.HttpsConfig#atoti.HttpsConfig) | [None](https://docs.python.org/3/library/constants.html#None)

<h4 id="atoti.SecurityConfig.jwt">
  *jwt*
</h4>

> [JwtConfig](./atoti.config.security.JwtConfig#atoti.JwtConfig)

<h4 id="atoti.SecurityConfig.login">
  *login*
</h4>

> [LoginConfig](./atoti.config.security.LoginConfig#atoti.LoginConfig) | [None](https://docs.python.org/3/library/constants.html#None)

<h4 id="atoti.SecurityConfig.same_site">
  *same\_site*
</h4>

The value to use for the *SameSite* attribute of the HTTP cookie sent by the session.

See [https://web.dev/samesite-cookies-explained](https://web.dev/samesite-cookies-explained) for more information.

<Note>
  `"none"` requires the session to be served over HTTPS.
</Note>

<h4 id="atoti.SecurityConfig.sso">
  *sso*
</h4>

The config to delegate authentication to a Single Sign-On provider.
