bendl
bendl

Reputation: 1630

How can I use SSPI to negotiate requests handled by external libraries?

I'll set expectations with the fact that I've been pushed well outside my area of expertise here. I'm behind a corporate firewall, and it's interfering with a lot of external code I use.

For example, I'm trying to use HuggingFace's from_pretrained method. Behind the scenes, this eventually makes a request similar to this:

import requests
requests.get('https://huggingface.co/distilbert-base-uncased-distilled-squad/resolve/main/tokenizer_config.json')

This requests fails with an error from my proxy telling me my credentials are missing, but it can be fixed with the following using this excellent library:

import requests
from requests_negotiate_sspi import HttpNegotiateAuth

s = requests.Session()
s.auth = HttpNegotiateAuth()
s.get('https://huggingface.co/distilbert-base-uncased-distilled-squad/resolve/main/tokenizer_config.json', verify='/path/to/cert.pem')

Unfortunately though, that request is made behind the scenes in the HuggingFace library. I can set env variables to save the path to the cert, but I can't use the SSPI negotiation unless I control that code directly (so far as I can tell). Is there any way around this problem?

Upvotes: 1

Views: 1100

Answers (0)

Related Questions