Программная безопасность компонентов

При использовании безопасности на основе ролей в приложении COM+, содержающем компонент, у вас есть доступ к программным функциям безопасности из компонента. Вы можете проверить членство в роли, чтобы определить, выполняются ли определенные разделы кода, получить доступ к сведениям о безопасности с помощью объекта контекста вызова безопасности и определить, включена ли безопасность для текущего вызова. Все эти задачи можно выполнить с помощью ссылки на объект SecurityCallContext (для приложений Microsoft Visual Basic) или указатель на интерфейс ISecurityCallContext (для приложений C и Microsoft Visual C++).

Дополнительные сведения о программной безопасности на основе ролей см. в следующих разделах этого раздела:

Олицетворение и функции безопасности COM

Если компонент используется в приложении COM+, которое не использует безопасность на основе ролей, программная проверка ролей и сведения о контексте вызова безопасности недоступны. Однако вы можете использовать программные функции безопасности, предоставляемые COM. Дополнительные сведения см. в разделе "Безопасность в COM".

Хотя большинство функций безопасности, предоставляемых COM, нельзя вызывать CoInitializeSecurity из компонента, который является частью приложения COM+, так как CoInitializeSecurity вызывается суррогатом, в котором выполняется приложение COM+. Однако можно вызвать другие функции безопасности, такие как CoQueryClientBlanket, которые извлекают сведения о клиенте.

В частности, если необходимо использовать удостоверение клиента для доступа к некоторому ресурсу, например доступ к файлу, защищенному дескриптором безопасности, или распространению удостоверения клиента в базу данных, можно выполнять олицетворение программным способом. Дополнительные сведения о том, когда и как это сделать, см. в разделе "Олицетворение клиента" и "Делегирование".

Тестирование функциональных возможностей безопасности

Если в компоненте используется программная безопасность COM+, необходимо интегрировать компонент в приложение COM+, когда вы будете готовы протестировать функции безопасности компонента. Если компонент, использующий программную безопасность COM+, выполняется без интеграции в приложение COM+, будут создаваться исключения. Поэтому, если вы хотите убедиться, что такой компонент также может быть успешно интегрирован в приложение, которое не входит в среду COM+, необходимо убедиться, что эти исключения обрабатываются соответствующим образом.

Документирование требований к безопасности

Если вы пишете автономный компонент для приложений COM+, использующих безопасность на основе ролей, необходимо задокументировать компонент, чтобы обеспечить соответствующую настройку безопасности при интеграции компонента в приложение COM+. Например, необходимо определить роли, которые необходимо добавить, и объяснить, каким методам и интерфейсам должна быть назначена каждая роль. Кроме того, если вызывается такой метод, как IsCallerInRole("Teller"), следует описать функциональные возможности, к которым имеют доступ только помощники. Также следует указать, требуется ли роль для защиты доступа ко всему компоненту.

Аутентификация клиента

Олицетворение и делегирование клиента

Безопасность приложений библиотеки

Многоуровневая безопасность приложений

Администрирование безопасности на основе ролей

Использование политики ограниченного использования программного обеспечения в COM+