Alex Coast
Alex Coast

Reputation: 31

Mlflow authorization with spnego

I saw this topic about Kerberos authntication - https://github.com/mlflow/mlflow/issues/2678 . It was in 2020 . Our team trying to do authentication with kerberos by spnego. We did spnego on nginx server and it is fine - and get code 200 when we do curl to mlflow http uri . BUT we can't do it with mlflow environment variable .

The question is - Does mlflow has some feature to make authentication with spnego or not? Or it has just these environment variables for authentication and such methods :

Upvotes: 1

Views: 577

Answers (1)

grawity_u1686
grawity_u1686

Reputation: 16572

I looked at the source code. No, the mlflow.utils.rest_utils.http_request function doesn't support SPNEGO in any way – it can only send HTTP 'Basic' or 'Bearer' authorization headers.

However, it should be relatively easy to change it to generate a 'Negotiate' header using pyspnego, or even to use requests-gssapi given that it already uses Requests internally:

# For Linux:
import requests_gssapi
# For Windows:
#import requests_negotiate_sspi

def http_request(...):
    ...
    if not auth_str:
        # For Linux:
        kwargs["auth"] = requests_gssapi.HTTPSPNEGOAuth()
        # For Windows:
        #kwargs["auth"] = requests_negotiate_sspi.HttpNegotiateAuth()
    ...

Upvotes: 0

Related Questions