-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kerberos Proxy support #514
Comments
maybe set curl_easy_setopt(curl, CURLOPT_PROXYAUTH, CURLAUTH_ANYSAFE); when proxy authentication is set but username/password is empty? |
Changing the following code in CurlWebSession::Initialize() works fine.
|
Maybe CurlWebSession should check if Kerberos is supported and then don't ask for the password anymore...
|
Maybe it would be helpful to add a checkbox to use the windows proxy settings and set this as default. Then the endusers won't have to configure anything at all in most cases. This should do the trick: Grüße aus Spandau |
Ok, forget about that. This reads the proxy settings from the WINHTTP config, which is not the same as what IE will use. The static proxy configuration can be read from registry, but that will not cover automatic configuration with a PAC file. |
Microsoft seems to have sample code released how to get the proxy settings (MIT license) |
Thank you, but MiKTeX doesn't use the WinHTTP API. We now let Curl pick the right authentication method. This should fix the issue. |
I don't think your change will be enough. I was only able get negotiate/kerberos to work when I set these as well: And about the WinHTTP API - I didn't meant to replace curl. But it could be a nice addition (for the windows build) to automatically get the correct proxy settings. |
Okay, so then you have to enter empty credentials in order to make it work. |
Yes, I just gave it a try. The following code works fine:
But when you don't pass empty credentials you will get an error message. |
No, we will not set empty credentials since this might break basic authentication. Instead, the user, when prompted for credentials, has to provide empty credentials. |
That's a bad idea. How should users know the proxy needs empty credentials? They will enter their Windows Credentials and it will fail. |
Then you should use curl_easy_getinfo with CURLINFO_PROXYAUTH_AVAIL and pass empty credentials when CURLAUTH_NEGOTIATE is available. (And don't ask anymore in this case!) |
Curl honors the standard proxy variables variable. For example:
uses empty credentials. You have to uncheck
|
These variables will cause a lot of trouble as you can't set any exceptions. We cannot use them. i,e. this will break local REST API debugging as Postman will try to send all requests to the proxy as well then. |
How should the change from my previous comment break basic auth? I only set empty username and password when proxySettings.authenticationRequired is false... |
What makes you 100% sure that it does not break basic authentication? I don't want to start a code review of Curl. And since I cannot easily test it, I will stay on the safe side. Sorry. |
Basic auth without password? How should this work at all? |
I made some tests with this patch and McAfee WebGateway proxy:
"Authentication required" checked (and provided valid credentials):
NTLM
Kerberos (expected to fail with credentials, because I didn't allow fallback to Negotiate with NTLM)
"Authentication required" not checked:
Kerberos
|
Thank you. I will consider your patch for a future release. The current release (2.9.7420) is almost out and it should fix the issue with the caveat that the user has to enter empty credentials. |
Configuring empty credentials with :@fqdn does not work. Currently the user has to enable the "Requires Authentication" and click "OK" everytime on the window asking for credentials. This is annoying... |
I cannot connect to any repository because MiKTeX lacks support for kerberos-proxy authentication -
our corporate proxy supports Kerberos authentication only.
Please add kerberos authentication to the Console.
The text was updated successfully, but these errors were encountered: