Что означают различные настройки безопасности DCOM / COM?
Наше приложение широко использует COM и DCOM, поэтому мы должны убедиться, что разрешения безопасности COM установлены правильно. Я знаю, что могу получить доступ к этим разрешениям в оснастке MMC "Службы компонентов" и могу установить значения по умолчанию / ограничения на страницах свойств компьютера.
И что под узлом DCOM Config я могу развернуть и установить разрешения безопасности для отдельных приложений
Я также понимаю взаимосвязь между "значениями по умолчанию" (какие приложения DCOM будут использовать, если только разрешения не установлены точно для каждого приложения), "ограничениями" (какие разрешения будут применяться, даже если настройки для каждого приложения превышают эти параметры), однако я не понимаю (и не могу найти никакой документации) разницу между различными настройками, которые я могу установить
- В чем разница между разрешениями "Доступ", "Запуск", "Активация" и "Конфигурация"?
- Эти настройки влияют на приложения COM или только на приложения DCOM?
- Если вы используете удаленный DCOM, нужно ли устанавливать разрешения как на сервере, так и на клиенте или только на клиенте?
- Есть ли документация, которая объясняет вышесказанное?
1 ответ
Параметры на вкладке безопасности - это конфигурация безопасности для каждого AppID в реестре, и вы найдете дополнительную информацию о MSDN по этому вопросу в ключе AppID:
AccessPermission Описывает список контроля доступа (ACL) участников, которые могут получить доступ к экземплярам этого класса. Этот ACL-список используется только приложениями, которые не вызывают CoInitializeSecurity.
LaunchPermission Описывает список контроля доступа (ACL) участников, которые могут запускать новые серверы для этого класса.
Когда COM-клиент пытается получить доступ к COM-серверу, подсистема COM проверяет учетные данные на стороне клиента по этим спискам доступа и решает, разрешить ли доступ к серверу, и если сервер еще не запущен, разрешить ли его запуск. Следовательно, два списка - для обычного доступа и для запуска нового сервера (если это необходимо).
Обратите внимание, что это настройки для каждого приложения. Определенные классы должны иметь сопоставления CLSID и APPID в реестре, чтобы они были правильно связаны.