Делегирование Kerberos через 2 ненадежных домена с использованием WCF - PullRequest
0 голосов
/ 14 марта 2012

У меня есть приложение в домене A, и я хотел бы, чтобы оно использовало учетные данные домена B для доступа к содержимому домена B. Эти домены не имеют доверия. Возможно ли вызвать пользователя в домене A и получить его для ввода учетных данных для домена B?Затем используйте эти учетные данные для аутентификации в домене B. Это означает, что мы обходим Kerberos Distribution Center (KDC) в домене A.

У меня нет проблем с тем, чтобы заставить это работать внутри одного домена, то есть выдавать себя за вызывающего пользователя и поддерживать уровень олицетворения делегирования.Однако в документации MS говорится, что приложение в домене A будет использовать свой KDC для выдачи билета (или не сможет выдать билет) , и это приведет к тому, что моя служба в домене B перейдет на NTLM.

Можно ли заставить мой сервис в домене A использовать KDS домена B?Я мог бы быть далеко от базы здесь.

Архитектура - это службы Microsoft WCF.

Спасибо, Кевин

1 Ответ

0 голосов
/ 11 апреля 2012

Быстрый ответ - НЕТ, вы не можете передавать учетные данные по доменам, если 2 домена не имеют определенного уровня доверия.

Тем не менее, я справился с этим, используя аутентификацию форм asp.net.Когда учетные данные пользователей из домена A дают сбой, я эффективно заставляю их вводить учетные данные из домена B и перенаправлять их на контроллер MVC «Аутентификация», который очищает идентификационные данные пользователя, а затем шифрует их в файле cookie аутентификации форм Asp.Net.Это возвращается в заголовке ответа.Все последующие запросы выполняются с помощью этого файла cookie, и я проверяю подлинность пользователя в файле cookie сеанса.Не так элегантно, как делегирование, но это работает.

...