Шаги для включения делегирования двойного прыжка в IIS7 Windows 2008 - PullRequest
3 голосов
/ 02 декабря 2010

мое веб-приложение ASP.NET использует проверку подлинности Windows в нашей интрасети. Я хочу, чтобы он мог отправлять http-запрос на стороне сервера другому серверу в том же домене, для которого также требуется проверка подлинности Windows.

При выполнении дополнительного запроса я следовал инструкциям по временному олицетворению аутентифицированного пользователя:

http://msdn.microsoft.com/en-us/library/ff647404.aspx

Используя такой код:

using System.Security.Principal;

// Obtain the authenticated user's Identity
WindowsIdentity winId = (WindowsIdentity)HttpContext.Current.User.Identity;
WindowsImpersonationContext ctx = null;
try
{
  // Start impersonating
  ctx = winId.Impersonate();
  // Now impersonating
  // Access resources using the identity of the authenticated user
  var request = WebRequest.Create("http://intranet/secureapp");
  request.Credentials = CredentialCache.DefaultCredentials;
  var response = request.GetResponse();
  using (var streamReader = new StreamReader(response.GetResponseStream()))
  {
      Response.Write(streamReader.ReadToEnd());
  }
}
// Prevent exceptions from propagating
catch
{
}
finally
{
  // Revert impersonation
  if (ctx != null)
    ctx.Undo();
}
// Back to running under the default ASP.NET process identity 

Но, к сожалению, я всегда получаю несанкционированную ошибку 401.

Нужно ли настраивать наш веб-сервер с активным каталогом, чтобы он мог делегировать прошедшего проверку пользователя (может быть любой из примерно 200 пользователей, поэтому не нужно ничего делать 200 раз :))? Если да, может кто-нибудь сказать мне, как это сделать?

Ответы [ 2 ]

3 голосов
/ 02 декабря 2010

Существует несколько шагов для настройки Kerberos / Delegation с Windows.

Во-первых, вам нужно настроить ASP.NET для использования делегирования.Я предполагаю, что вы настроили это в вашем файле web.config.

Затем необходимо настроить учетную запись службы ASP.NET для делегирования.Иногда вам нужно создать SPN.

Затем включите делегирование для сервера IIS И учетной записи в Active Directory.

Здесь приведены пошаговые инструкции: http://msdn.microsoft.com/en-us/library/ms998355.aspx Выполните шаги 1-3.

0 голосов
/ 22 июля 2014
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...