File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ def __init__(self):
26
26
self .OIDC_REDIRECT_URI = os .environ .get ("OIDC_REDIRECT_URI" , None )
27
27
self .OIDC_CLIENT_ID = os .environ .get ("OIDC_CLIENT_ID" , None )
28
28
self .OIDC_CLIENT_SECRET = os .environ .get ("OIDC_CLIENT_SECRET" , None )
29
+ self .OIDC_AUDIENCE = os .environ .get ("OIDC_AUDIENCE" , None )
29
30
30
31
# session
31
32
self .SESSION_TYPE = os .environ .get ("SESSION_TYPE" , "cachelib" )
Original file line number Diff line number Diff line change 1
1
import secrets
2
2
3
3
from flask import redirect , session , url_for
4
+ import jwt
4
5
5
6
import mlflow_oidc_auth .utils as utils
6
7
from mlflow_oidc_auth .auth import get_oauth_instance
@@ -42,7 +43,13 @@ def callback():
42
43
43
44
user_groups = importlib .import_module (config .OIDC_GROUP_DETECTION_PLUGIN ).get_user_groups (token ["access_token" ])
44
45
else :
45
- user_groups = token ["userinfo" ][config .OIDC_GROUPS_ATTRIBUTE ]
46
+ group_attr = config .OIDC_GROUPS_ATTRIBUTE
47
+ user_info = token ["userinfo" ]
48
+ decoded_access_token = jwt .decode (token ["access_token" ], audience = config .OIDC_AUDIENCE , options = {"verify_signature" : False })
49
+ if group_attr in decoded_access_token :
50
+ user_groups = decoded_access_token [group_attr ]
51
+ if group_attr in user_info :
52
+ user_groups = user_info [group_attr ]
46
53
47
54
app .logger .debug (f"User groups: { user_groups } " )
48
55
You can’t perform that action at this time.
0 commit comments