Невозможно пройти аутентификацию с помощью NTLM из Linux с .NET 8C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно пройти аутентификацию с помощью NTLM из Linux с .NET 8

Сообщение Anonymous »

У меня есть приложение ASP.NET Core 8, которое доккеризуется и развертывается в Openshift.
Проблема в том, что я не могу пройти аутентификацию на конечной точке с помощью NTLM.
Из моя машина с Windows, я могу использовать ее вполне нормально, как и ожидалось, учитывая, что на ней оба окна.
Это результат зарегистрированного запроса внутри модуля:
Запрос:
Метод: GET
Цель:
Заголовки запроса:
Ответ:
Код состояния: ServiceUnavailable
Заголовки ответов:
Кэш -Контроль: без кэша
X-XSS-Защита: 1
Соединение: закрыть
Прагма: без кэша
Тип контента: text/html; charset=utf-8
Content-Length: 768
Я могу вызвать конечную точку вручную, используя Curl с флагом --ntlm внутри терминала модулей. Так что проблема с подключением не должна быть проблемой.
Я пробовал использовать стандартный базовый образ aspnet:8.0, а также alpine:latest
Я пробовал установить gss- ntlmssp в базовый образ aspnet, но не могу его установить:

Код: Выделить всё

E: The repository 'http://deb.debian.org/debian bookworm InRelease' is not signed.
E: Failed to fetch http://deb.debian.org/debian/dists/bookworm/InRelease  403  Forbidden
Я пробовал установить krb5-libs при использовании базового образа Alpine (gss-ntlmssp недоступен в Alpine).
И я Я также пробовал установить UseManagedNtlm как в .csproj, так и в Program.cs с:

Код: Выделить всё

AppContext.SetSwitch("System.Net.Security.UseManagedNtlm", true);
как предложено в различных темах GitHub по этой теме.
Это мой HttpClient:

Код: Выделить всё

...
private static HttpClient s_client;

private static void CreateHttpClientWithNtlmAuth(IConfiguration configuration)
{
var aDUser = configuration["SRV_USER"];
var aDPassword = configuration["SRV_PASSWORD"];

HttpClientHandler hand = new HttpClientHandler
{
UseDefaultCredentials = false,
Credentials = new NetworkCredential(aDUser, aDPassword, ""),
PreAuthenticate = true,

};

s_client = new HttpClient(new LoggingHandler(hand));
}

...
Я думаю, что испробовал все возможные варианты запрошенных исправлений, но, похоже, не смог заставить их работать. Значит, должно быть что-то, чего мне не хватает. Ценю любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/790 ... with-net-8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»