diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index f2fff5cfdf..00b2ef55ae 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -493,7 +493,10 @@ OAUTH_SESSION_TOKEN_ENCRYPTION_KEY = os.environ.get( # SCIM Configuration #################################### -SCIM_ENABLED = os.environ.get("SCIM_ENABLED", "False").lower() == "true" +ENABLE_SCIM = ( + os.environ.get("ENABLE_SCIM", os.environ.get("SCIM_ENABLED", "False")).lower() + == "true" +) SCIM_TOKEN = os.environ.get("SCIM_TOKEN", "") #################################### diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 6682e5e72d..0dc1c34f89 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -460,7 +460,7 @@ from open_webui.env import ( WEBUI_AUTH_TRUSTED_NAME_HEADER, WEBUI_AUTH_SIGNOUT_REDIRECT_URL, # SCIM - SCIM_ENABLED, + ENABLE_SCIM, SCIM_TOKEN, ENABLE_COMPRESSION_MIDDLEWARE, ENABLE_WEBSOCKET_SUPPORT, @@ -716,7 +716,7 @@ app.state.config.ENABLE_DIRECT_CONNECTIONS = ENABLE_DIRECT_CONNECTIONS # ######################################## -app.state.SCIM_ENABLED = SCIM_ENABLED +app.state.ENABLE_SCIM = ENABLE_SCIM app.state.SCIM_TOKEN = SCIM_TOKEN ######################################## @@ -1357,7 +1357,7 @@ app.include_router( app.include_router(utils.router, prefix="/api/v1/utils", tags=["utils"]) # SCIM 2.0 API for identity management -if SCIM_ENABLED: +if ENABLE_SCIM: app.include_router(scim.router, prefix="/api/v1/scim/v2", tags=["scim"]) diff --git a/backend/open_webui/routers/scim.py b/backend/open_webui/routers/scim.py index de1b979c86..ff3d484759 100644 --- a/backend/open_webui/routers/scim.py +++ b/backend/open_webui/routers/scim.py @@ -256,15 +256,16 @@ def get_scim_auth( ) # Check if SCIM is enabled - scim_enabled = getattr(request.app.state, "SCIM_ENABLED", False) + enable_scim = getattr(request.app.state, "ENABLE_SCIM", False) log.info( - f"SCIM auth check - raw SCIM_ENABLED: {scim_enabled}, type: {type(scim_enabled)}" + f"SCIM auth check - raw ENABLE_SCIM: {enable_scim}, type: {type(enable_scim)}" ) + # Handle both PersistentConfig and direct value - if hasattr(scim_enabled, "value"): - scim_enabled = scim_enabled.value - log.info(f"SCIM enabled status after conversion: {scim_enabled}") - if not scim_enabled: + if hasattr(enable_scim, "value"): + enable_scim = enable_scim.value + + if not enable_scim: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail="SCIM is not enabled",