(backend) add option to configure list of required OIDC claims

We want to be able to refuse connection for users who have missing
claims from a list of required keys.
This commit is contained in:
Samuel Paccoud - DINUM
2024-12-21 08:55:26 +01:00
committed by Samuel Paccoud
parent 02a4740c66
commit c879f82114
4 changed files with 100 additions and 0 deletions

View File

@@ -57,6 +57,18 @@ class OIDCAuthenticationBackend(MozillaOIDCAuthenticationBackend):
_("Invalid response format or token verification failed")
) from e
# Validate required claims
missing_claims = [
claim
for claim in settings.USER_OIDC_REQUIRED_CLAIMS
if claim not in userinfo
]
if missing_claims:
raise SuspiciousOperation(
_("Missing required claims in user info: %(claims)s")
% {"claims": ", ".join(missing_claims)}
)
return userinfo
def get_or_create_user(self, access_token, id_token, payload):