问题:
ADFS 2019 中有一些属性表明您可以为 ADFS 登录页面启用 CORS 标头并设置允许的来源。
Get-AdfsProperties
CORSEnabled : False
CORSTrustedOrigins :
但是相应的Set-AdfsProperties
列表没有实际设置这些属性的开关。
所以这就是问题所在。如何设置这些属性?
全面披露:
我设法通过 SSMS 连接到 WID 并从ServiceSettings
表中转储包含属性的 XML,更改适当的属性,然后更新 WID 中的 XML,来实际设置这两个选项。
Get-AdfsProperties
CORSEnabled : True
CORSTrustedOrigins : {https://localhost:5001, https://localhost:8081}
有用。这对于我的测试目的是可以的,但对于我目前正在设置的 CI/CD 环境来说绝对不行,它需要自动添加和删除 CORSTrustedOrigins
属性中的值。
附加信息:
这些属性是 ADFS 2019 中的新属性,ADFS 4.0 不支持 CORS,而使其运行的唯一方法是在其前面放置一个反向代理,以便在响应中放置正确的 CORS 标头。
我目前正在尝试该解决方案,但我也遇到了问题。但这对于这个问题来说不算什么。
编辑1:
因此,因为我是一个好奇的开发人员,所以我开始在Microsoft.IdentityServer.Management
包含Set-AdfsProperties
cmdlet 的组件上使用 dotPeak,并且发现了一个有趣的结果。没有实现来设置CORSEnabled
andCORSTrustedOrigins
并且似乎有方法可以将自定义标头添加到在 cmdlet 中也没有实现的响应中。
所以基本上没有办法实际使用这些宣传的功能。除了进入数据库直接更改 XML。在我看来,这有点疏忽。
以防万一其他人正在寻找它,您可以使用
Set-AdfsResponseHeaders
powershell 命令进行设置