01.04.2008, 12:32 | #41 |
Участник
|
Идеи-то есть уже давно, вот времени их воплотить не хватает... А идея простая: как было выяснено, проблема с подключением возникает из-за того, что AOS получает информацию о SID'е пользователя для сопоставления его с тем или иным пользователем Axapta не из характеристик RPC-подключения (при том, что там используется аутентификация и обеспечение целостности данных), а непосредственно от клиента Axapta. Последний для этого получает SecurityToken своего основного потока, для этого SecurityToken запрашивает SID, проверяет его с помощью функции IsValidSid() из kernel32.dll и (та-да!) преобразует в строковый формат с помощью функции ConvertSidToStringSidW() все из той же kernel32.dll, после чего посылает его в таком виде AOS'у.
При этом клиент Аксапты еще для каких-то надобностей грузит ntdsapi.dll и version.dll. Примечательны они тем, что из них импортируется всего лишь 1 и 3 функции, соответственно. Теперь зачем эта информация нужна... В общем, идея видится такая:
Последний раз редактировалось gl00mie; 01.04.2008 в 13:01. Причина: уточнение |
|
01.04.2008, 12:45 | #42 |
Участник
|
Вообще говоря, если описанный способ сработает, то получится, что в механизме аутентификации клиента AX4 кроется здоровенная дыра. Связана она с тем, что аутентификация основывается на информации, посылаемой непосредственно клиентом AOS'у, а информация эта общедоступна. Узнать SID любого пользователя в домене (при наличии доступа к этому домену) не составляет труда: это можно сделать, к примеру, с помощью оснастки adsiedit или с помощью утилиты psgetsid из PsTools, причем никаких особенных прав на это не требуется, достаточно быть обычным пользователем в домене. А узнать SID пользователя и запустить программу под этим пользователем - это, согласитесь, «две большие разницы»
|
|
|
За это сообщение автора поблагодарили: mazzy (5). |
05.04.2008, 22:08 | #43 |
Участник
|
Ну раз там такая "дыра", то может провести редактирование файла сервера не как взлом ПО (что является нарушением п 4.4 правил форума "...Запрещено любое обсуждение взлома, обхода защиты любого программного обеспечения..."), а как "исправление ошибки" в безопасности? ;-)
Т.е. "подправить" файл, чтобы он брал не SID, присланный бог весть откуда, а SID аккаунта, который выполняется на сервере. |
|
29.08.2008, 15:46 | #44 |
Участник
|
Скромненько так: "Какое-то решение появилось, кроме вышеуказанного? На 5ке кто-то проверял это?"
|
|
Теги |
active directory, доступ, ax4.0 |
|
|