Re[4]: impersonate и как его задействовать
От: Scoober Россия  
Дата: 26.03.04 10:06
Оценка: 30 (2)
Здравствуйте, Koxa, Вы писали:

G>>Бред. Ссылку на документацию пожалуйста, где про это говорится?

K>может для framework 1.1 это уже и не так или не для всех винд
K>нашел например http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/secnetch08.asp
K>цитата:
K>[msdn]
K>When to use
[lot of text skipped]
K>[/msdn]
Все конечно хорошо, кроме одного — вы выдрали фразу из контекста и неверно перевели текст.
Полностью это относится к "Windows Authentication Using a Fixed Identity" — это означает, что вы явно задаете аккаунт под которым будут выолняться запросы пользователя (т.е. для этого ASP.NET должно сделать LogonUser, для выполнения которого требуется "Act as a part of operation system").

Т.е. для обычной имперсонации этой привилегии не требуется.
... << RSDN@Home 1.1 beta 1 >>
Re[3]: impersonate и как его задействовать
От: Koxa  
Дата: 25.03.04 16:55
Оценка: 8 (1) -1
Здравствуйте, Gollum, Вы писали:


G>Бред. Ссылку на документацию пожалуйста, где про это говорится?


может для framework 1.1 это уже и не так или не для всех винд
нашел например http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/secnetch08.asp
цитата:
[msdn]
When to use
This approach is not recommended for the current version (version 1) of the .NET Framework in secure environments for two reasons:

User names and passwords should not be stored in plain text in configuration files, particularly configuration files stored in virtual directories.
On Windows 2000, this approach forces you to grant the ASP.NET process account the "Act as part of the operating system" privilege. This reduces the security of your Web application and increases the threat should an attacker compromise the Web application process.
The .NET Framework version 1.1 will provide an enhancement for this scenario on Windows 2000:

The credentials will be encrypted.
The log on will be performed by the IIS process, so that ASP.NET does not required the "Act as part of the operating system" privilege.
[/msdn]
Re: impersonate и как его задействовать
От: Scoober Россия  
Дата: 24.03.04 10:20
Оценка: 8 (1)
Здравствуйте, w0rm, Вы писали:


W>Проблема следующая:

W>Когда я обращаюсь к приложению с локальной машины т.е. где установлен IIS и Framework все ок, я получаю fullname пользователя.
W>Если обращение происходит с удаленной машины, то выскакивает окно с просьбой ввести пароль. Даже при вводе верного пользователя и пароля ничего не происходит.
W>Странно, ведь я делал такие вещи под ASP, почему здесь это не катит?
На самом деле, сомневаюсь что на ASP так же это работало (разве что DC был там же где и IIS).
1. Как заметил Gollum, можно использовать Kerberos — но там очень много ограничений, и в реальных environment'ах он практически не используется. Если у вас используется win2k3, то можно попытаться использовать Constrained Delegation здесь.
2. Basic auth (+https)
3. COM+ Applications (server-activated) — в .Net это EnterpriseServices\ServicedComponent.
В этом случае, вы можете запустить COM+ компонент под доменным аккаунтом, и соответственно обращаться к AD от этого аккаунта.
... << RSDN@Home 1.1 beta 1 >>
Re[3]: impersonate и как его задействовать
От: Gollum Россия  
Дата: 24.03.04 09:16
Оценка: 4 (1)
Здравствуйте, w0rm, Вы писали:

W>Настройка конкретно для этого приложения.


Где? в IIS, в web.config? Впрочем, уже не важно, аутентификация происходит.

G>>Получай лучше через System.Security.Principal.WindowsIdentity.GetCurrent().Name, и скажи, заполнен ли он при удаленном доступе. Это многое прояснит.

W>Да заполнен, причем верно

Тогда остается попробовать настроить Kerberos delegation.

How To: Implement Kerberos Delegation for Windows 2000
Утро не разбудит меня, ночь не прикажет мне спать
Eugene Agafonov on the .NET

Re: impersonate и как его задействовать
От: Koxa  
Дата: 24.03.04 16:57
Оценка: -1
Здравствуйте, w0rm, Вы писали:

W>в Web.config есть <identity impersonate="true"/>


для того чтобы imprsonate работало, user-у, под которым крутится ASP.NET (ASPNET)
должно быть дано право "act as a part of operation system"
как правило в домене локальному экаунту такое право не дашь
можно попробовать запустить под system или под специальным доменным юзером
impersonate и как его задействовать
От: w0rm  
Дата: 24.03.04 06:36
Оценка:
Привет всем!
Ситуация:
в настройках безопасности созданного мной веб приложения указанно использовать только Integrated Windows Authentication
в Web.config есть <identity impersonate="true"/>
Выполняю следующий код(С#)
DirectoryEntry DE = new DirectoryEntry("WinNT://DOMAIN/" + Login + ",user");
return DE.Properties["fullname"].Value.ToString();

Login получаю с помощью Request.ServerVariables["LOGON_USER"]
Процесс aspnet_wp.exe выполняется от пользователя ASPNET т.е. все по умолчанию.
NTFS права на директорию с приложением everyone — full control.

Проблема следующая:
Когда я обращаюсь к приложению с локальной машины т.е. где установлен IIS и Framework все ок, я получаю fullname пользователя.
Если обращение происходит с удаленной машины, то выскакивает окно с просьбой ввести пароль. Даже при вводе верного пользователя и пароля ничего не происходит.

Странно, ведь я делал такие вещи под ASP, почему здесь это не катит?
Re: impersonate и как его задействовать
От: Gollum Россия  
Дата: 24.03.04 07:58
Оценка:
Здравствуйте, w0rm, Вы писали:

W>в настройках безопасности созданного мной веб приложения указанно использовать только Integrated Windows Authentication


Где именно? В IIS? Если так, то остается только два варианта, если нет — может быть все-таки анонимная аутентификация происходит. Впрочем, не похоже.

W>Login получаю с помощью Request.ServerVariables["LOGON_USER"]


Получай лучше через System.Security.Principal.WindowsIdentity.GetCurrent().Name, и скажи, заполнен ли он при удаленном доступе. Это многое прояснит.

W>Процесс aspnet_wp.exe выполняется от пользователя ASPNET т.е. все по умолчанию.

W>NTFS права на директорию с приложением everyone — full control.

А зачем? Это очень плохо что у всех полный доступ к folder приложения.

W>Когда я обращаюсь к приложению с локальной машины т.е. где установлен IIS и Framework все ок, я получаю fullname пользователя.

W>Если обращение происходит с удаленной машины, то выскакивает окно с просьбой ввести пароль. Даже при вводе верного пользователя и пароля ничего не происходит.

Есть еще вариант, что стоит прокси который режет аутентификацию (хотя тогда должен бы быть отказ в доступе)

W>Странно, ведь я делал такие вещи под ASP, почему здесь это не катит?

Может, потому что это не ASP?
По всей Смоленщине нет кокаина — это временный кризис сырья
Eugene Agafonov on the .NET

Re[2]: impersonate и как его задействовать
От: w0rm  
Дата: 24.03.04 08:57
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Где именно? В IIS? Если так, то остается только два варианта, если нет — может быть все-таки анонимная аутентификация происходит. Впрочем, не похоже.


Настройка конкретно для этого приложения.

W>>Login получаю с помощью Request.ServerVariables["LOGON_USER"]


G>Получай лучше через System.Security.Principal.WindowsIdentity.GetCurrent().Name, и скажи, заполнен ли он при удаленном доступе. Это многое прояснит.

Да заполнен, причем верно

G>А зачем? Это очень плохо что у всех полный доступ к folder приложения.

Это отладочная система, здесь это не важно.

G>Есть еще вариант, что стоит прокси который режет аутентификацию (хотя тогда должен бы быть отказ в доступе)

Прокси не режет. Запрос напрямую.
Re[2]: impersonate и как его задействовать
От: Gollum Россия  
Дата: 24.03.04 21:36
Оценка:
Здравствуйте, Koxa, Вы писали:

K>для того чтобы imprsonate работало, user-у, под которым крутится ASP.NET (ASPNET)

K>должно быть дано право "act as a part of operation system"

Бред. Ссылку на документацию пожалуйста, где про это говорится?
Вперед! Бодхисатва, вперед!
Eugene Agafonov on the .NET

Re[4]: impersonate и как его задействовать
От: Gollum Россия  
Дата: 25.03.04 17:07
Оценка:
Здравствуйте, Koxa, Вы писали:

Хотя Framework 1.0 в общем-то уже устарел, все равно, спасибо за информацию.
Я не злопамятный... Просто я злой, и память у меня хорошая!
Eugene Agafonov on the .NET

Re[5]: impersonate и как его задействовать
От: Koxa  
Дата: 26.03.04 13:10
Оценка:
Здравствуйте, Scoober, Вы писали:

S>Все конечно хорошо, кроме одного — вы выдрали фразу из контекста и неверно перевели текст.

S>Т.е. для обычной имперсонации этой привилегии не требуется.

Согласен
Прошу прощения — хотел как быстрее, а получилось как обычно
Интересно все же услышать чем закончилось и как полечилось (если да)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.