首先,我有一个Angular应用程序,它使用angular-auth-oidc-client库启动Idenity Server4身份验证(使用PKCE的授权码流),使用Facebook en Microsoft帐户提供商。这一切都运行得很好,在IIS Express下本地运行。
现在,我还想添加windows身份验证。所以我把这个添加到了启动设置中:
"iisSettings": {
"windowsAuthentication": true,
}IdentityServer启动中的...and:
services.Configure<IISOptions>(iis => {
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = true;
});如果我触发了Windows身份验证,ExternalController的挑战方法就会被执行,在我自动收到的windows用户的回调中,它没有要求输入凭据(在Windows10下工作),所以这也很好用。
现在,当我尝试在IIS下执行相同的操作时(并且在IIS中启用了Windows身份验证),而不是以我的windows用户自动登录,我得到一个弹出窗口:

因此,在IIS下,Windows身份验证的工作方式似乎有所不同,因为它要求我提供凭据,而不是使用登录的windows用户提供的凭据。
如果我阅读the docs,我发现应该使用Kestrel或WebListener。是否真的需要使用Kestrel或WebListener才能在IIS中使用Windows Authentication?或者我还漏掉了什么?
编辑:我正在我的Windows10笔记本电脑上本地尝试,而且我不在域中。
发布于 2020-01-31 17:38:01
同时,我已经在一个域笔记本电脑上部署了我的组件(使用IIS),以查看它的行为是否不同;实际上,有一种方法是进行静默SSO,而不是请求凭据。因此,这意味着在我的非域笔记本电脑上,它要求提供凭据,因为我不在域中。
https://stackoverflow.com/questions/59944568
复制相似问题