Initial implementation of proxy auth header
This commit is contained in:
parent
6feec69db7
commit
9f2a5cdfbb
|
@ -0,0 +1,7 @@
|
||||||
|
[flake8]
|
||||||
|
exclude = .git,__pycache__,data,old,build,dist
|
||||||
|
max-complexity = 10
|
||||||
|
max-line-length = 88
|
||||||
|
extend-ignore = E203
|
||||||
|
per-file-ignores =
|
||||||
|
*/__init__.py: F401
|
|
@ -0,0 +1,26 @@
|
||||||
|
import base64
|
||||||
|
import os
|
||||||
|
|
||||||
|
from mlflow.tracking.request_auth.abstract_request_auth_provider import (
|
||||||
|
RequestAuthProvider,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ProxyAuthProvider(RequestAuthProvider):
|
||||||
|
def __init__(self):
|
||||||
|
self.username = os.getenv("MLFLOW_TRACKING_USERNAME")
|
||||||
|
self.password = os.getenv("MLFLOW_TRACKING_PASSWORD")
|
||||||
|
|
||||||
|
def get_name(self):
|
||||||
|
return "proxy_auth_provider"
|
||||||
|
|
||||||
|
def get_auth(self):
|
||||||
|
# Add your Authelia Proxy-Authorization logic here
|
||||||
|
credentials = f"{self.username}:{self.password}"
|
||||||
|
encoded_credentials = base64.b64encode(credentials.encode("utf-8")).decode(
|
||||||
|
"utf-8"
|
||||||
|
)
|
||||||
|
proxy_authorization_header = f"Basic {encoded_credentials}"
|
||||||
|
|
||||||
|
# Return a dictionary containing the header for authentication
|
||||||
|
return {"Proxy-Authorization": proxy_authorization_header}
|
|
@ -0,0 +1,11 @@
|
||||||
|
from setuptools import find_packages, setup
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name="mlflow-plugin-proxy-auth",
|
||||||
|
version="0.0.1",
|
||||||
|
packages=find_packages(),
|
||||||
|
install_requires=["mlflow"],
|
||||||
|
entry_points={
|
||||||
|
"mlflow.request_auth_provider": "dummy-backend=mlflow_plugin_proxy_auth.proxy_auth_header_provider:ProxyAuthProvider",
|
||||||
|
},
|
||||||
|
)
|
Loading…
Reference in New Issue