Skip to content

Commit 760db81

Browse files
committed
check access token for group membership; fix #43
1 parent e706e86 commit 760db81

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

mlflow_oidc_auth/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __init__(self):
2626
self.OIDC_REDIRECT_URI = os.environ.get("OIDC_REDIRECT_URI", None)
2727
self.OIDC_CLIENT_ID = os.environ.get("OIDC_CLIENT_ID", None)
2828
self.OIDC_CLIENT_SECRET = os.environ.get("OIDC_CLIENT_SECRET", None)
29+
self.OIDC_AUDIENCE = os.environ.get("OIDC_AUDIENCE", None)
2930

3031
# session
3132
self.SESSION_TYPE = os.environ.get("SESSION_TYPE", "cachelib")

mlflow_oidc_auth/views/authentication.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from flask import redirect, session, url_for
44

55
import mlflow_oidc_auth.utils as utils
6-
from mlflow_oidc_auth.auth import get_oauth_instance
6+
from mlflow_oidc_auth.auth import get_oauth_instance, validate_token
77
from mlflow_oidc_auth.app import app
88
from mlflow_oidc_auth.config import config
99
from mlflow_oidc_auth.user import create_user, populate_groups, update_user
@@ -42,7 +42,13 @@ def callback():
4242

4343
user_groups = importlib.import_module(config.OIDC_GROUP_DETECTION_PLUGIN).get_user_groups(token["access_token"])
4444
else:
45-
user_groups = token["userinfo"][config.OIDC_GROUPS_ATTRIBUTE]
45+
group_attr = config.OIDC_GROUPS_ATTRIBUTE
46+
user_info = token["userinfo"]
47+
decoded_access_token = validate_token(token["access_token"])
48+
if group_attr in decoded_access_token:
49+
user_groups = decoded_access_token[group_attr]
50+
if group_attr in user_info:
51+
user_groups = user_info[group_attr]
4652

4753
app.logger.debug(f"User groups: {user_groups}")
4854

0 commit comments

Comments
 (0)