无法将 IIS Windows 身份验证与自定义流一起使用

Unable to use IIS Windows Auth with Custom flow

背景

我们的产品使用客户拥有的专有单点登录 (SSO) 解决方案,并使用 Identity Server 处理授权。我们的产品使用 Custom 流程并实施 ICustomGrantValidator 以便与专有 SSO 解决方案集成。我们在开发环境中使用了此 SSO 的模拟。

我们希望将我们应用程序的开发版本部署到面向 public 的站点,以便我们的客户能够演示新功能。理想情况下,我们希望使用 Windows 授权仅允许 select 人查看该站点。

问题

当在 IIS 身份服务器上启用 Windows 身份验证时尝试处理它,但未成功,因为它尚未配置为这样做。

我们希望避免重写登录以允许 Identity Server 处理 Windows 身份验证登录并将 Active Directory 用户映射到我们的 SSO 用户。这一点尤其重要,因为添加此功能会极大地改变此任务的范围。

问题

有没有办法配置 Identity Server 以忽略 IIS 发出的 Windows 身份验证请求?当前 Windows 身份验证是在 IIS 级别而非 ASP.NET 级别配置的。存在针对未经身份验证的用户的拒绝规则。

在尝试更改登录流程后,我偶然发现了这个 post:Using a Custom Flow for Authentication #2760

除了将 Custom 流与 ICustomGrantValidator 一起使用外,我还向 PreAuthenticateAsync 添加了一个覆盖,并在那里处理了我们与 SSO 的集成。这缓解了这个问题,目前看起来还不错。