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