Проверка подлинности 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 - это, вероятно, ваш лучший вариант для передачи идентификаторов между двумя серверами при минимальном взаимодействии с пользователем.