22
33from oidcservice import sanitize
44from oidcmsg .oidc import Claims
5- from oidcmsg .oidc import scope2claims
65
76from oidcendpoint .exception import FailedAuthentication
7+ from oidcendpoint .user_info import scope2claims
88
99logger = logging .getLogger (__name__ )
1010
@@ -102,7 +102,8 @@ def by_schema(cls, **kwa):
102102 return dict ([(key , val ) for key , val in kwa .items () if key in cls .c_param ])
103103
104104
105- def collect_user_info (endpoint_context , session , userinfo_claims = None ):
105+ def collect_user_info (endpoint_context , session , userinfo_claims = None ,
106+ scope_to_claims = None ):
106107 """
107108 Collect information about a user.
108109 This can happen in two cases, either when constructing an IdToken or
@@ -115,7 +116,7 @@ def collect_user_info(endpoint_context, session, userinfo_claims=None):
115116 authn_req = session ["authn_req" ]
116117
117118 if userinfo_claims is None :
118- uic = scope2claims (authn_req ["scope" ])
119+ uic = scope2claims (authn_req ["scope" ], map = scope_to_claims )
119120
120121 # Get only keys allowed by user and update the dict if such info
121122 # is stored in session
@@ -155,7 +156,8 @@ def collect_user_info(endpoint_context, session, userinfo_claims=None):
155156 return info
156157
157158
158- def userinfo_in_id_token_claims (endpoint_context , session , def_itc = None ):
159+ def userinfo_in_id_token_claims (endpoint_context , session , def_itc = None ,
160+ scope_to_claims = None ):
159161 """
160162 Collect user info claims that are to be placed in the id token.
161163
@@ -177,6 +179,7 @@ def userinfo_in_id_token_claims(endpoint_context, session, def_itc=None):
177179 _claims = by_schema (endpoint_context .id_token_schema , ** itc )
178180
179181 if _claims :
180- return collect_user_info (endpoint_context , session , _claims )
182+ return collect_user_info (endpoint_context , session , _claims ,
183+ scope_to_claims = scope_to_claims )
181184 else :
182185 return None
0 commit comments