Re[2]: Как воспользоваться Cloaking?
От: Konstantin Sokolovskiy  
Дата: 26.02.02 14:33
Оценка:
Здравствуйте VladD2, Вы писали:

KS>>Имеется два компьютера, работающих п/у WinNT 4.0.

KS>>На одном работает сервис, он запускает через DCOM на
KS>>другом компьютере in-proc сервер, который компилирует файл.

VD>Ну, и какое отношение они могут иметь друг к другу?


Сервису нужны результаты компиляции этого файла

KS>>В DCOMCNFG на этот in-proc launch и access — everyone.


VD>Чего? Ты случаем не о суррогатах говоришь? DCOMCNFG задает права на доступ к DCOM-приложениям (exe-шникам), а in-proc-сервер по определению является библиотекой и не имеет отношение к конкретному приложению. Сурогат же не является in-proc-сервером. Есть еще один вариант – in-proc может быть установлен в COM+/MTS-приложение. Тогда DCOMCNFG вообще не поможет, так как настройки надо делать в специальных средствах администрирования.


Мы добавили AppID для этого инпроса в .rgs-файле, чтобы управлять им в DCOMCNFG

KS>>На файл установлено ограничение — доступ к нему имеет определенный пользователь.


VD>На какой файл? Ничего непонятно! Если на исполнимый файл DCOM-сервера, то доступ к серверу сможет получить только этот пользователь. Если речь идет о файле который нужно компилировать, то просто нужно запускать DCOM-сервер под учетной записью которой дано право доступа к этому файлу (и не в коем случае из под дефолтного "ланчинг узерь"). А имперсонация здесь вообще не нужна. Если нужно обеспечить проверку прав доступа к файлу применительно к вызывающему клиенту, то клиент должен делать вызов с уровнем имперсонации имперсонэйт, а сервер (а не клиент) делать эту самую имперсонацию. При этом проверки к локальным ресурсам (файлам на локальном диске, веткам реестра) будут производиться применительно к клиенту.


На файл, который нужно скомпилировать

KS>> Мы на клиенте делаем имперсонацию, но они до сервера не доходят, поэтому компиляция файла не проходит — access denied.


VD>Кто они? Зачем на клиенте делать имперсонацию (это бессмысленно)? Причем тут вообще in-proc-сервер?


Права доступа имперсонируемого пользователя

KS>>Пытались использовать cloaking, используя на клиенте Win2000 — ничего не получилось.


VD>Для клоакинга нужно иметь и на клиенте и на сервере W2k. Клоакинга же тебе без надобности, нужно просто сделать имперсонацию на сервере.


Как? Мы пыталисью, но инпрос на сервере запускается с правами анонимного пользователя и не имеет права на имперсонацию

KS>>Что нужно предпринять, чтобы сервер получил доступ к файлу.


VD>Для начала нужно определиться с тем, что конкретно нужно? Почему клиент не может просто вызывать метод сервера, а тот просто компилировать нужный файл?



Наш сервис работает под системным аккаунтом, поэтому некоторые операции, которые требуют некоторых дополнительных привелегий, мы выполняем под специальным аккаунтом (имперсонируемся)

VD>PS


VD>В нулевом номере RSDN Mag будет статья о защите в DCOM/COM+. Очень советую ее почитать. Журнал должен выйти на следующей неделе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.