У меня есть веб-сервис, настроенный для аутентификации Windows. Код клиента, который вызывает WS, передает учетные данные WS следующим образом:
myWebService.Credentials = System.Net.CredentialCache.DefaultCredentials;
(насколько я понимаю, это имя пользователя-пароля-домена вошедшего в систему пользователя).
Я тестирую проблемы конфигурации и не понимаю, как установить Kerberos.
ДЕТАЛИ Подписаться:
У меня есть 2 виртуальных каталога на том же IIS-сервере (один - «клиент» со страницами .aspx), а другой - «сервер» (на нем размещается веб-служба, которую вызывает клиент).
Мой клиент отображает ключевую информацию о подключающемся пользователе через этот код:
private string GetUserInfo()
{
System.Security.Principal.WindowsIdentity UserIdentityInfo;
StringBuilder msg = new StringBuilder("User Name: ");
UserIdentityInfo = System.Security.Principal.WindowsIdentity.GetCurrent();
msg.Append(UserIdentityInfo.Name);
msg.Append(Environment.NewLine);
msg.Append(" Token: ");
msg.Append(UserIdentityInfo.Token.ToString());
msg.Append(Environment.NewLine);
msg.Append(" Authenticated: ");
msg.Append(UserIdentityInfo.AuthenticationType);
msg.Append(Environment.NewLine);
msg.Append(" System: ");
msg.Append(UserIdentityInfo.IsSystem);
msg.Append(Environment.NewLine);
msg.Append(" Guest: ");
msg.Append(UserIdentityInfo.IsGuest);
msg.Append(Environment.NewLine);
msg.Append(" Anonymous: ");
msg.Append(UserIdentityInfo.IsAnonymous);
msg.Append(Environment.NewLine);
return msg.ToString();
}
Тип аутентификации - Kerberos , когда ОБА веб-клиент и вызываемый веб-сервис находятся на одном сервере (например, SERVER1). Фактическое исполнение тоже работает правильно.
Тип аутентификации меняется на NTLM , когда вызывается тот же код веб-клиента, но теперь он находится на SERVER2 . Вызываемый веб-сервис по-прежнему находится на исходном сервере (SERVER1). Фактическое выполнение СБОЙ, потому что учетные данные не верны.
SERVER1 и SERVER2 находятся в одной локальной сети (один и тот же DOMAIN), и учетная запись домена, которую я использую для тестирования каждого сценария выше, одинакова (я нахожусь в группе администраторов на каждом компьютере).
Как я могу настроить это так, чтобы KERBEROS был типом аутентификации, то есть когда этот клиент на SERVER2 вызывается из браузера «мной»?