首页 > 解决方案 > 无法将 IIS Windows Auth 与自定义流一起使用

问题描述

背景

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

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

问题

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

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

问题

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

标签: asp.netiisidentityserver3

解决方案


经过几次不同的尝试更改我们的登录流程后,我偶然发现了这篇文章:Using a Custom Flow for Authentication #2760

除了使用带有 a 的Custom流之外,ICustomGrantValidator我还添加了一个覆盖PreAuthenticateAsync并处理了我们与 SSO 的集成。这缓解了这个问题,到目前为止看起来不错。


推荐阅读