无法在 ADFS 2019 上设置 CORSEnabled 和 CORSTrustedOrigins 属性

无法在 ADFS 2019 上设置 CORSEnabled 和 CORSTrustedOrigins 属性

问题:

ADFS 2019 中有一些属性表明您可以为 ADFS 登录页面启用 CORS 标头并设置允许的来源。

Get-AdfsProperties

CORSEnabled                                : False
CORSTrustedOrigins                         : 

但相应的Set-AdfsProperties列表中没有实际设置这些属性的开关。

那么问题来了,如何设置这些属性呢?

全面披露:

我设法通过 SSMS 连接到 WID 并转储包含表中属性的 XML ServiceSettings、更改适当的属性,然后更新 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因此,由于我是一名好奇的开发人员,我开始在包含 cmdlet 的组件上使用 dotPeak Set-AdfsProperties,并发现了一个有趣的现象。没有实现来设置CORSEnabledCORSTrustedOrigins,并且似乎有方法可以将自定义标头添加到响应中,但这些方法也没有在 cmdlet 中实现。

因此,基本上没有办法真正使用这些宣传的功能。除非进入数据库直接更改 XML。在我看来,这有点疏忽。

答案1

万一其他人正在寻找它,您可以使用Set-AdfsResponseHeaderspowershell 命令进行设置

Set-AdfsResponseHeaders -EnableCORS $true
Set-AdfsResponseHeaders -CORSTrustedOrigins http://localhost, https://contoso.com
Get-AdfsProperties | select EnableCORS, CORSTrustedOrigins 

相关内容