Нужно ли использовать служебную программу федерации удостоверений Windows для создания веб-приложения asp.net с поддержкой утверждений? - PullRequest
0 голосов
/ 17 мая 2018

Я создал приложение mvc asp.net с поддержкой утверждений, выполнив действия, описанные на этой странице: https://docs.microsoft.com/en-us/dotnet/framework/security/how-to-build-claims-aware-aspnet-mvc-web-app-using-wif. В примере на странице используется STS на локальном хосте, но в моем приложении я указываю наполнофункциональная AD FS на другом сервере.

Я использую Framework 4.7 и Windows Server 2016 для размещения AD FS и веб-приложения.

После развертывания приложения язапустил служебную программу Windows Identity Federation Utility (потому что я думал, что она мне нужна, чтобы добавить приложение в качестве доверяющей стороны в AD FS).Эта утилита вставляет в тег web.config множество тегов, которые ссылаются на пространство имен Microsoft.IdentityModel.

Затем я добавил приложение в качестве доверия проверяющей стороны в AD FS и перешел к приложению, поддерживающему утверждения,Страница потерпела неудачу, потому что в примере кода приведено утверждение, возвращенное STS как System.Security.Claims.Claim.Когда я изменил его на Microsoft.IdentityModel.Claims.Claim, он работал нормально.

В приведенном ниже примере не упоминается служебная программа федерации удостоверений Windows.Мне нужно это использовать?Или это сработало бы без него?

Когда я пытаюсь отменить изменения в файле web.config, когда утилита вставила сайт, происходит сбой с ошибкой 401 (доступ запрещен из-за неверных учетных данных), поэтому очевидно, что материал, вставленный утилитойнеобходим для аутентификации в AD FS.Это потому, что я запустил Утилиту на веб-сайте перед тем, как добавить ее в качестве доверяющей стороны в доверие к ADFS?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Сразу отметим, что более «современным способом» является использование библиотеки OWIN WS-Federation .

Этот пример предназначен для Azure AD, но вы просто указываете на метаданные, а код вычисляет все остальное для себя.

0 голосов
/ 21 мая 2018

Ответ здесь таков: не запускайте служебную программу федерации удостоверений Windows, если вы используете ADFS Server 2016, так как она вызывает использование библиотек Microsoft.Identity, которые устарели.Я ошибочно подумал, что эта утилита нужна для создания файла FederationMetadata.xml.

Я вручную создал файл FederationMetadata.xml и вернул свой файл web.config к тому состоянию, в котором он был до запуска утилиты.Это вернуло меня к использованию библиотек System.Identity, которые были добавлены в платформу 4.5 вместо устаревших библиотек Microsoft.Identity.

...