Adfs

無法在 ADFS 2019 上設置 CORSEnabled 和 CORSTrustedOrigins 屬性

  • June 30, 2020

問題:

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-AdfsPropertiescmdlet 的組件上使用 dotPeak,並且發現了一個有趣的結果。沒有實現來設置CORSEnabledandCORSTrustedOrigins並且似乎有方法可以將自定義標頭添加到在 cmdlet 中也沒有實現的響應中。

所以基本上沒有辦法實際使用這些宣傳的功能。除了進入數據庫直接更改 XML。這在我看來有點疏忽。

以防萬一其他人正在尋找它,您可以使用Set-AdfsResponseHeaderspowershell 命令進行設置

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

引用自:https://serverfault.com/questions/947871