В ADFS 2019 есть свойства, указывающие, что вы можете включить заголовки CORS для страницы входа в ADFS и установить разрешенные источники.
Get-AdfsProperties
CORSEnabled : False
CORSTrustedOrigins :
Но соответствующие Set-AdfsProperties
не содержит переключателей для фактической установки этих свойств.
Итак, вот вопрос. Как удается установить эти свойства?
Мне удалось установить эти два параметра, подключившись к WID через SSMS и выгрузив XML, содержащий свойства из ServiceSettings
table, изменив соответствующие свойства, а затем обновив XML в WID.
Get-AdfsProperties
CORSEnabled : True
CORSTrustedOrigins : {https://localhost:5001, https://localhost:8081}
Оно работает. Это нормально для моих целей тестирования, но никоим образом не подходит для среды CI / CD, которую я сейчас настраиваю, которая должна автоматически добавлять и удалять значения из CORSTrustedOrigins
свойство.
Эти свойства являются новыми в ADFS 2019, ADFS 4.0 не поддерживает CORS, и единственный способ запустить это - поставить перед ним обратный прокси-сервер, чтобы поместить в ответ правильные заголовки CORS.
В настоящее время я пробую это решение, но у меня тоже возникают проблемы. Но это не вопрос.
Так как я любознательный разработчик, я начал использовать dotPeak на Microsoft.IdentityServer.Management
компоненты, содержащие Set-AdfsProperties
cmdlet и я сделал интересную находку. Нет реализации для установки CORSEnabled
и CORSTrustedOrigins
а также, похоже, существуют методы для добавления пользовательских заголовков к ответам, которые также не реализованы в командлете.
Таким образом, фактически нет способа использовать эти рекламируемые функции. За исключением прямого входа в базу данных для изменения XML. Что мне кажется некоторой оплошностью.
На всякий случай, если кто-то еще его ищет, вы можете установить его с помощью Set-AdfsResponseHeaders
команда powershell
Set-AdfsResponseHeaders -EnableCORS $true
Set-AdfsResponseHeaders -CORSTrustedOrigins http://localhost, https://contoso.com
Get-AdfsProperties | select EnableCORS, CORSTrustedOrigins