Adfs
無法在 ADFS 2019 上設置 CORSEnabled 和 CORSTrustedOrigins 屬性
問題:
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 命令進行設置Set-AdfsResponseHeaders -EnableCORS $true Set-AdfsResponseHeaders -CORSTrustedOrigins http://localhost, https://contoso.com Get-AdfsProperties | select EnableCORS, CORSTrustedOrigins