2012-03-13 2 views
0

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

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

Возможно ли заставить мою службу в домене A использовать KDS домена B? Я мог бы отступить отсюда.

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

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

ответ

0

Быстрый ответ никаких вы не можете передавать учетные данные между доменами без того, 2 доменов, имеющих определенный уровень доверия.

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