У меня есть следующие приборы:WCF Керберос делегации услуг на той же машине
Client -> MiddleWS (ISS-hosted WCF) -> DestWS1 and DestWS2 (Self-hosted WCF services)
Все машины работают на внутренней сети с Active Directory. Мне нужно иметь возможность распространять учетные данные от клиента до DestWS1 и DestWS2 (эти два запускаются в самообслуживающей среде на одном сервере, но с разными адресами). Все работает нормально, если я делаю запрос от клиента к MiddleWS, который затем отправляет запрос на DestWS1 или DestWS2. Однако, если я хочу сделать два последующих запроса от MiddleWS до DestWS1 и DestWS2, то второй запрос не удастся (дает разрешения).
DestWS1 и DestWS2 имеют разные адреса (f.x., http://server/DestWS1.svc и http://server/DestWS2.svc). У меня есть два клиента WCF, созданные из их WSDL. Похоже, если я создаю двух клиентов (отсюда два канала), второй не удастся (что-то происходит с маркером kerberos). Если я использую только один клиент, но делаю два вызова от него к одной и той же службе, оба запроса работают отлично. Как только я закрываю канал, токен больше не переносится, похоже.
Любой, у кого есть подобные проблемы?
Вы настроили соответствующие SPN и Делегация в AD? Какая ошибка? –
Да, делегирование разрешено на среднем сервере и есть SPN. Использование Network Monitor все кажется прекрасным (т. Е. Никаких ошибок при общении с DC). Ошибка, которую я получаю, заключается в том, что у пользователя нет разрешений. Из этой ошибки я вижу, что пользователь - это моя машина (MiddleWSServer $), а не мой пользователь AD. –