Работает ли .NET CORE 3.0 с аутентификацией Windows в Docker на Linux? - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь включить проверку подлинности Windows с помощью прикладного решения .NET CORE 3.0 в Visual Studio 2019 в докере контейнер Linux с использованием mcr.microsoft.com/dotnet/core/aspnet:3.0 изображения. Я могу выполнить эту настройку в контейнере Windows IIS без проблем, используя учетную запись gMSA, но когда дело доходит до контейнера linux и aspnet: 3.0 Я не могу получить запрос учетных данных, если я использую атрибут [Authorize], а User.Identity.Name незаселение. Я получаю смешанные сигналы из Интернета, если это вообще возможно, и пока не могу найти краткого ответа. Просто пробую разные вещи с регистрацией сервисов JWT / IISDefaults / HttpSysDefaults / Oauth, app.UseAuthentication, Изменение параметров запуска и настроек приложения. Json без удачи. Любая помощь будет оценена.

1 Ответ

1 голос
/ 07 ноября 2019

У меня была эта проблема в проекте, и мне удалось получить приглашение для ввода учетных данных в ASP.NET, например: Над контроллером, к которому необходимо разрешить доступ, поместите атрибут Authorize следующим образом:

[Authorize(Policy = "SomeExampleGroup")]
[Route("/some-example")]
public class SomeExampleController : Controller {...}

В методе ConfigureServices в Startup.cs:

services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
services.AddAuthentication(o => o.DefaultAuthenticateScheme = NegotiateDefaults.AuthenticationScheme);

services.AddAuthorization(options =>
{
    options.AddPolicy("SomeExampleGroup",
                        policy => policy.RequireAssertion(/*some assertion here for example*/));
});

А в методе Configure обязательно укажите

app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();

в этом порядке. В любом случае, мне удалось получить приглашение для ввода учетных данных в Docker в таком контейнере Linux, как этот, но учетные данные все равно не будут работать, поэтому я надеюсь, что это поможет.

...