Проверка подлинности Windows во время размещения в Linux с ASPNet Core

В настоящее время у меня есть собственное приложение Owin, которое запускается в Windows примерно так:

public class Program
{
    private static void Main(string[] args)
    {
        using (WebApp.Start<Startup>("http://localhost:9000"))
        {
            Console.WriteLine("Press Enter to quit.");
            Console.ReadKey();
        }
    }
}

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var listener = (HttpListener) app.Properties["System.Net.HttpListener"];
        listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;

        app.UseNancy();
    }

Когда приходит запрос, пользователь проверяется с использованием своих учетных данных домена Windows.

Для ASPNetCore мне было интересно, есть ли подобная установка, которую можно использовать, но приложение запускается в Linux с использованием веб-сервера Kestrel.

Я слышал, что могут работать различные опции, такие как Windows 2016 и промежуточное ПО OpenIdConnect, или я могу использовать IdentityServer, работающий в Windows, но приложение в Linux, но я полагаю, что промежуточное ПО потребуется, мне также неясно, будет ли "танец аутентификации" подразумевая, что это может быть не так просто, как у меня сейчас.

Любые советы и / или примеры кода будут с благодарностью.

Спасибо

1 ответ

Нет прямой поддержки аутентификации Windows в Kestrel ни на одной платформе, и нет доступного промежуточного программного обеспечения, которое будет поддерживать аутентификацию Windows в Linux.

Маршрутизация запросов на вход через сервер Windows - ваш единственный выбор. IdentityServer будет хорошим местом для начала. OpenIdConnect - это, вероятно, ваш лучший вариант для передачи идентификаторов между двумя серверами при минимальном взаимодействии с пользователем.

Другие вопросы по тегам