asp.net - 无法将 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 级别配置的。未经身份验证的用户有拒绝规则。
解决方案
经过几次不同的尝试更改我们的登录流程后,我偶然发现了这篇文章:Using a Custom Flow for Authentication #2760
除了使用带有 a 的Custom
流之外,ICustomGrantValidator
我还添加了一个覆盖PreAuthenticateAsync
并处理了我们与 SSO 的集成。这缓解了这个问题,到目前为止看起来不错。
推荐阅读
- ms-access - SQL 视图中的 CHECK 语法在 MS Access 中失败
- cpanel - cpanel 托管的 public_html 目录中有很多 0kb 文件
- python - 什么时候 await 将暂停 python 中等待对象的执行?
- makefile - makefile 中的多选菜单
- reactjs - React + Jest:测试 setTimeOut 没有被调用
- javascript - 如何使用js关闭浏览器窗口中的当前选项卡?
- avfoundation - 在 WKInterfaceInlineMovie 中进行身份验证的 AVURLAsset?
- react-native - 如何根据在本机反应中呈现的项目数量来设置项目的宽度
- json - Django:有没有办法有效地批量 get_or_create()
- eclipse - 我安装了 eclipse 并做了一些工作,但是当我尝试再次启动 eclipse 时。我收到了这个错误