我目前有一个自托管的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 Web服务器运行。
我听说过各种选项,比如Windows 2016和OpenIdConnect中间件可能有效,或者我可以使用在Windows上运行的IdentityServer,但Linux上的应用程序,但我认为需要中间件,我也不清楚是否存在将是一个&#34;认证舞蹈&#34;暗示它可能不像我现在那样无缝。
非常感谢任何建议和/或代码示例。
由于
答案 0 :(得分:5)
在任何平台上都没有直接支持Kestrel中的Windows auth,也没有任何可用的中间件支持Linux上的Windows身份验证。
通过Windows服务器路由登录请求是您唯一的选择。 IdentityServer将是一个很好的起点。 OpenIdConnect可能是您以最少的用户交互在两台服务器之间传递身份的最佳选择。