dotnet / Docker.DotNet

:whale: .NET (C#) Client Library for Docker API
https://www.nuget.org/packages/Docker.DotNet/
MIT License
2.23k stars 381 forks source link

How to perform ntlm authentication when using alpine as base image? #642

Open smartaquarius10 opened 1 year ago

smartaquarius10 commented 1 year ago

Hello,

We are trying to make ntlm authentication call to rest api but error is coming. We have followed the steps mentioned here but, nothing is working. Our application is hosted in Azure AKS. Any suggestions please

Code

               var cred= new CredentialCache();
                cred.Add(new Uri("url"), "NTLM", new NetworkCredential("user", "pwd", "***.com"));

                var hwd= new HttpClientHandler() { Credentials = credentialsCache, PreAuthenticate = true };

                hwd.ClientCertificateOptions = ClientCertificateOption.Manual;
                hwd.ServerCertificateCustomValidationCallback =
                    (httpRequestMessage, cert, cetChain, policyErrors) => true;
                hwd.UseDefaultCredentials = false;

                var client = new FlurlClient(new HttpClient(hwd) { Timeout = new TimeSpan(0, 0, 30) };);
                 var response = await request
                    .AllowHttpStatus(HttpStatusCode.NotFound)
                    .WithHeader("Accept", "application/json")
                    .WithClient(client)
                    .WithHeader("Content-Type", "application/json; charset=utf-8")
                    .GetAsync();

Exception

Flurl.Http.FlurlHttpException: Call failed. NTLM authentication is not possible with default credentials on this platform: 
System.PlatformNotSupportedException: NTLM authentication is not possible with default credentials on this platform. at

POD base image


NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.16.3
PRETTY_NAME="Alpine Linux v3.16"

dotnet version:- 6.0.14

smartaquarius10 commented 1 year ago

Hey @Maoni0 @richlander, sorry for tagging you directly. If possible could you please help us here. Our production environment is impacted because of this issue. Would be grateful for help and support.

Maoni0 commented 1 year ago

@mangod9 do you know who might be able to help with this?

mangod9 commented 1 year ago

Looks to be related to this issue: https://github.com/dotnet/runtime/issues/66633. Might make sense to discuss on that issue.

smartaquarius10 commented 1 year ago

Thank you so much @Maoni0 @mangod9

We entered into a war room yesterday for 7 hours but unable to figure out anything. As a backup plan we can only change the base image from alpine to someone else. But, it requires approvals and lots of changes in our ci/cd pipelines.

Once you have any updates please let me know. Really appreciate. Have a great weekend.