ADFS - HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Согласование». - PullRequest
0 голосов
/ 29 мая 2018

У меня 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.К сожалению, я не настроил эту систему, и у меня нет доступа к людям, которые это сделали.

Буду очень признателен за любые предложения.

1 Ответ

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

Оказывается, 401 Несанкционированный был на оконной точке Windows ADFS https://<ADFS_HOST>/adfs/services/trust/13/windowstransport.

И это не имело ничего общего с конфигурацией ADFS, сертификатами, разрешениями и т. Д.

Iследуя инструкциям в https://www.risual.com/2011/10/28/adfs-2-0-401-unauthorized-access/, отключите LookBackCheck в реестре, и все заработало.

...