atoti.config.authentication.oidc module¶
- class atoti.config.authentication.oidc.OidcConfig(provider_id, issuer_url, client_id, client_secret, use_client_secret_as_certificate=False, name_claim=None, paths_to_authorities=None, roles_claims=(), scopes=(), role_mapping=None)¶
The configuration to connect to an OpenID Connect authentication provider (Auth0, Google, Keycloak, etc.).
The user’s roles are defined using
OidcSecurity
.Example
>>> config = { ... "authentication": { ... "oidc": { ... "provider_id": "auth0", ... "issuer_url": "https://example.auth0.com", ... "client_id": "some client ID", ... "client_secret": "some client secret", ... "name_claim": "email", ... "scopes": ["email", "profile"], ... "roles_claims": [ ... "https://example:com/roles", ... ["other", "path", "to", "roles"], ... ], ... } ... } ... }
- issuer_url: str¶
The issuer URL parameter from the provider’s OpenID Connect configuration endpoint.
- name_claim: Optional[str] = None¶
The name of the claim in the ID token to use as the name of the user.
- paths_to_authorities: Optional[Iterable[str]] = None¶
The path to the authorities to use in atoti in the returned access token or ID token.
Warning
This configuration option is deprecated. Use
roles_claims
instead.
- provider_id: str¶
The name of the provider.
It is used to build the redirect URL:
f"{session_url}/login/oauth2/code/{provider_id}"
.
- role_mapping: Optional[Mapping[str, Iterable[str]]] = None¶
The mapping between the roles returned by the authentication provider and the roles to grant in atoti.
Users without the role ROLE_USER will not have access to the application.
Warning
This configuration option is deprecated. Use
atoti_plus.security.OidcSecurity.role_mapping
instead.
- roles_claims: Iterable[Union[str, Iterable[str]]] = ()¶
The claims of the ID token from which to extract roles to use as keys in the
role_mapping
.When the elements of the sequence are also sequences, the inner elements will be used as a path pointing to a nested value in the token.
- use_client_secret_as_certificate: bool = False¶
If
True
, the passedclient_secret
must be a client certificate instead of a random secret. This client certificate will be passed in theX-Cert
header of the request made to the OIDC provider to retrieve an access token.