From 881732fa42d0580a93970ebbecfc37ebd77afa35 Mon Sep 17 00:00:00 2001 From: prichier <pascoualito@gmail.com> Date: Sat, 9 May 2020 00:59:51 +0200 Subject: [PATCH] Add: ignore_scopes QUIRKS, user_id+username claims --- hiboo/application/sso.py | 3 ++- hiboo/sso/oidc.py | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hiboo/application/sso.py b/hiboo/application/sso.py index 9f7feebb..bc10bb8d 100644 --- a/hiboo/application/sso.py +++ b/hiboo/application/sso.py @@ -36,7 +36,8 @@ class GenericOIDCApplication(base.OIDCApplication): special_mappings = fields.SelectMultipleField( _('Enabled special claim mappings'), choices=[ ("mask_sub_uuid", _("Mask the profile uuid")), - ("original_email", _("Return the actual user email")) + ("original_email", _("Return the actual user email")), + ("ignore_scopes", _("Return all claims independently of asked scopes")) ] ) submit = fields.SubmitField(_('Submit')) diff --git a/hiboo/sso/oidc.py b/hiboo/sso/oidc.py index f075f302..89f69ab0 100644 --- a/hiboo/sso/oidc.py +++ b/hiboo/sso/oidc.py @@ -125,14 +125,16 @@ class Client(sqla_oauth2.OAuth2ClientMixin): """ special_mappings = self.service.config.get("special_mappings", []) claims = dict() - if "profile" in scope: + if "profile" in scope or "ignore_scopes" in special_mappings: claims.update( sub=profile.username if "mask_sub_uuid" in special_mappings else profile.uuid, name=profile.username, preferred_username=profile.username, - login=profile.username + login=profile.username, + user_id=None if "mask_sub_uuid" in special_mappings else profile.uuid, + username=profile.username ) - if "email" in scope: + if "email" in scope or "ignore_scopes" in special_mappings: user_email = profile.user.contact.get("email") if profile.user.contact else None claims.update( email=user_email if "original_email" in special_mappings else profile.email -- GitLab