Useful functionsο
The module django_pyoidc.utils has some useful functions :
- django_pyoidc.utils.extract_claim_from_tokens(claim: str, tokens: Dict[str, Any], raise_exception: bool = True) Anyο
Given a dictionary of token claims, extract the given claim.
This function searches the
tokensdictionary for the requested data in priority order:info_token_claims
id_token_claims
access_token_claims
If the claim is not found a
ClaimNotFoundErrorexception is raised unless the parameterraise_exceptionhas been set to false.
Viewsο
Note
When instantiating a view from this library (ie through djangoβs βas_view()β) you must set the named argument op_name to point to a valid DJANGO_PYOIDC settings entry.
If you use Providers then this behaviour is automatically implemented.
Here is an example:
from .oidc_providers import my_project_provider
urlpatterns = [
path("auth/callback", OIDCCallbackView.as_view(op_name="keycloak"),),
]
Providersο
Providers classes allows the final user to configure their project without having to understand how to map their Identity Provider configuration settings to this library settings.
Each provider implements the configuration logic and should be used using the provider_class setting.
Tip
Read the tutorial to learn how to use provider class !
Tip
All the named arguments of __init__() can be set by configuring a setting with the same name.
Provider listο
- class django_pyoidc.providers.KeycloakProvider(keycloak_base_uri: str | None = None, keycloak_realm: str | None = None, *args: Any, op_name: str, **kwargs: Any)ο
Provide django settings/urlconf based on keycloak behaviour (latest version).
For older Keycloak versions please check the other Keycloak_* providers.
- class django_pyoidc.providers.Keycloak18Provider(keycloak_base_uri: str | None = None, keycloak_realm: str | None = None, *args: Any, op_name: str, **kwargs: Any)ο
Provide Django settings/urlconf based on keycloak behaviour (v18)
- get_default_config() ProviderConfigο
Get the default configuration settings for this provider.
This configuration defaults are used to provide default values for OIDCSettings. User can override these defaults by playing with OIDCSettings arguments.
- class django_pyoidc.providers.Keycloak17Provider(keycloak_base_uri: str | None = None, keycloak_realm: str | None = None, *args: Any, op_name: str, **kwargs: Any)ο
Provide Django settings/urlconf based on keycloak behaviour (v17)
- class django_pyoidc.providers.Keycloak10Provider(keycloak_base_uri: str | None = None, keycloak_realm: str | None = None, *args: Any, op_name: str, **kwargs: Any)ο
Provide Django settings/urlconf based on keycloak behaviour (v10 to v18)
- __init__(keycloak_base_uri: str | None = None, keycloak_realm: str | None = None, *args: Any, op_name: str, **kwargs: Any)ο
- Parameters:
op_name (str) β the name of the sso provider that you are using
- get_default_config() ProviderConfigο
Get the default configuration settings for this provider.
This configuration defaults are used to provide default values for OIDCSettings. User can override these defaults by playing with OIDCSettings arguments.
- class django_pyoidc.providers.LemonLDAPngProvider(*args: Any, op_name: str, **kwargs: Any)ο
Provide django settings/urlconf based on LemonLDAP-ng behaviour (latest version).
For older LemonLDAPNg versions please check the other Klemonldapng_* providers.
- class django_pyoidc.providers.LemonLDAPng2Provider(*args: Any, op_name: str, **kwargs: Any)ο
Provide Django settings/urlconf based on LemonLDAP-ng behaviour (v2)
- get_default_config() ProviderConfigο
Get the default configuration settings for this provider.
This configuration defaults are used to provide default values for OIDCSettings. User can override these defaults by playing with OIDCSettings arguments.
This is the base Provider class that is used to implement common provider configuration patterns. You should not use this class directly. Instead, you should but subclass it to implement the configuration logic.