У меня ADFS на Server 2012 R2, настроенный с хранилищем пользовательских атрибутов.Это заставляет ADFS вызывать службу WCF, размещенную в службе Windows.При отладке Microsoft.IdentityServer.ServiceHost.exe
следующий код выдает CommunicationException
:
var channel = trustChannelFactory.CreateChannel();
rawToken = channel.Issue(rst, out rstr);
trustChannelFactory.Close();
Сведения об исключении:
HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Согласование»,Заголовок аутентификации, полученный от сервера, был «Согласовать».
При проверке rst
выше, я вижу, что ADFS пытается вызвать WCF, размещенный в службе Windows:
net.tcp://<url>:8002/service/endpoint
Я убедился, что служба Windows работает и прослушивает TCP 8002 через powershell:
netstat -aonp TCP | Select-String 8002
Get-Process -Id
Но странно то, что я получаю эту ошибку, независимо от того, работает служба Windows или нет.Как будто исходящие соединения из ADFS где-то блокируются.
Я пытался отключить брандмауэр Windows, но это не имеет значения.
Поскольку эта версия ADFS не зависит от IIS, и этоСлужба Windows, многие ответы по SO не применимы (я думаю ).
Я достиг дна своих навыков отладки и знаний ADFS.К сожалению, я не настроил эту систему, и у меня нет доступа к людям, которые это сделали.
Буду очень признателен за любые предложения.