{"id":24049,"library":"mlflow-oidc-auth","title":"MLflow OIDC Auth","description":"OIDC authentication plugin for MLflow tracking server. Version 7.0.3, requires Python >=3.10. Provides OAuth2/OIDC integration for MLflow, supports token-based auth, group-based permission filtering, and MLflow's REST API auth middleware. Active development with regular releases.","status":"active","version":"7.0.3","language":"python","source_language":"en","source_url":"https://github.com/perdasilva/mlflow-oidc-auth","tags":["mlflow","oidc","auth","flask","authentication"],"install":[{"cmd":"pip install mlflow-oidc-auth","lang":"bash","label":"Standard installation"}],"dependencies":[],"imports":[{"note":"The class is not exported; use the factory function.","wrong":"from mlflow_oidc_auth import OIDCApp","symbol":"create_oidc_app","correct":"from mlflow_oidc_auth import create_oidc_app"},{"note":"","wrong":"","symbol":"AuthMiddleware","correct":"from mlflow_oidc_auth import AuthMiddleware"}],"quickstart":{"code":"import os\nfrom mlflow_oidc_auth import create_oidc_app\nfrom flask import Flask\n\napp = Flask(__name__)\napp.secret_key = os.environ.get('SECRET_KEY', 'changeme')\n\noidc = create_oidc_app(\n    app,\n    issuer=os.environ.get('OIDC_ISSUER', 'https://example.com/auth/realms/myrealm'),\n    client_id=os.environ.get('OIDC_CLIENT_ID', 'my-client'),\n    client_secret=os.environ.get('OIDC_CLIENT_SECRET', ''),\n    token_endpoint=os.environ.get('OIDC_TOKEN_ENDPOINT', ''),\n    userinfo_endpoint=os.environ.get('OIDC_USERINFO_ENDPOINT', ''),\n)\n\nif __name__ == '__main__':\n    app.run(debug=True)","lang":"python","description":"Basic Flask app with OIDC auth. Requires environment variables for issuer, client ID, and secret."},"warnings":[{"fix":"Use `from mlflow_oidc_auth import create_oidc_app` instead of `from mlflow_oidc_auth.oidc import ...`.","message":"Version 7.x changed the import path from `mlflow_oidc_auth.oidc` to top-level `mlflow_oidc_auth`. Old imports will fail.","severity":"breaking","affected_versions":">=7.0.0"},{"fix":"Omit `token_endpoint` and `userinfo_endpoint` if your issuer supports OIDC discovery (well-known/openid-configuration).","message":"The `token_endpoint` parameter is deprecated and may be removed in future; use the `token_endpoint` from the OIDC discovery document.","severity":"deprecated","affected_versions":">=5.0.0"},{"fix":"Set `app.secret_key` before invoking `create_oidc_app`.","message":"Session secret must be set before `create_oidc_app` is called; otherwise session encryption fails silently.","severity":"gotcha","affected_versions":"all"},{"fix":"Install MLflow with the `auth` extra: `pip install mlflow[auth]`.","message":"The plugin requires MLflow to be installed with extras `[auth]` or in `server` mode. Without MLflow, imports succeed but runtime fails.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Upgrade to 7.0.0+ or import from `mlflow_oidc_auth.oidc` in older versions.","cause":"Using older version (<7.0.0) where the function was not exported.","error":"ImportError: cannot import name 'create_oidc_app' from 'mlflow_oidc_auth'"},{"fix":"Pass the Flask application instance: `create_oidc_app(app, ...)`.","cause":"Calling `create_oidc_app` without passing the Flask app as first argument.","error":"TypeError: create_oidc_app() missing 1 required positional argument: 'app'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}