Использование служб компонентов для ролевого доступа
Службы компонентов разрешают ролевой доступ к любому компоненту, загруженному в приложение COM+. Учетные записи пользователей Windows приписываются к роли, и запросы компонента выполняются с помощью аутентификационных данных этих учетных записей. Если эти роли связаны с запрашиваемой частью компонента, то программа-потребитель будет функционировать должным образом; в противном случае она не сможет осуществить доступ к компоненту. Роли связываются с компонентом, загруженным в приложение COM+, на следующих уровнях:
- приложение COM+ – все компоненты располагаются в приложении COM+;
- компонент – конкретный объект COM, загруженный в приложение COM+;
- коллективные интерфейсы компонента – все методы объекта COM загружаются в приложение COM+;M
- метод компонента – конкретный метод в конкретном объекте COM, загруженном в приложение COM+.
Следует включать ролевой доступ, начиная с верхнего уровня и далее вниз, до нужного уровня контроля доступа. В качестве метода компонента можно определить низшую дискретную функциональность, реализующую контроль доступа. Для включения ролевого доступа выполните следующие шаги.
- Включите проверку доступа уровня компонента для приложения COM+.
- Включите проверку доступа уровня компонента для компонента.
- Присвойте роль (роли) любой из частей компонента:
- сам компонент;
- метод компонента;
- все методы компонента.
Чтобы включить проверку доступа уровня компонента для приложения COM+, выполните следующие шаги.
- В консоли управления Component Services (Службы компонентов) щелкните правой кнопкой мыши на пункте COM+ Application (Приложение COM+) и выберите Properties (Свойства).
- В окне свойств откройте вкладку Security (Безопасность).
- Отметьте опцию Enforce Component-Level Access Checks (Обязательная проверка доступа уровня компонента).
- Нажмите на кнопку OK.
Для включения проверки доступа для компонента нужно включить проверку доступа для приложения COM+ и после этого выполнить следующие шаги.
- В консоли управления Component Services (Службы компонентов) щелкните правой кнопкой мыши на пункте COM+ Application (Приложение COM+) и выберите Properties (Свойства).
- В окне свойств откройте вкладку Security (Безопасность).
-
Для присвоения роли компоненту в целом отметьте роль в списке Roles Explicitly Set For Selected Item(s) (Роли, установленные для выделенных элементов). Все методы компонента унаследуют данную роль.
Для присвоения роли определенным методам внутри компонента отметьте опцию Enforce Component-Level Access Checks (Обязательная проверка доступа на уровне компонента), что позволит в дальнейшем присваивать роли методам компонента. - Нажмите на кнопку OK.
Для компонента ConfigSeat.clsChair, добавленного в приложение COM+ New ConfigSeatWeb, ролевой доступ не требуется, поэтому обязательные проверки доступа уровня компонента не включены. Приложение COM+ New ConfigSeatWeb, тем не менее, настроено на обязательную проверку доступа, поэтому проверки доступа компонентного уровня включены. Если система IIS функционировала под учетной записью по умолчанию, созданной Windows (например, IUSR_имя_компьютера), то ASP-программа, создающая объект ConfigSeat.clsChair, вызовет ошибку, поскольку гостевая учетная запись интернета не имеет доступа к компоненту ConfigSeat.clsChair. После смены ее на другую учетную запись с доступом к указанному компоненту код ASP будет функционировать должным образом. Для использования кодом ASP компонента ConfigSeat.clsChair веб-сайт или виртуальный каталог в IIS настроен на работу с использованием аутентификационных данных учетной записи webuser.
Для настройки доступа выполните следующие шаги.
- Откройте окно свойств веб-сайта или виртуального каталога и выберите вкладку Directory Security (Безопасность каталога).
- Нажмите на кнопку Edit (Изменить) в области Authentication And Access Control (Контроль аутентификации и доступа) для открытия соответствующего окна.
- По умолчанию опция Enable Anonymous Access (Разрешить анонимный доступ) включена; аутентификационные данные гостевой учетной записи пользователя располагаются в полях User Name (Имя пользователя) и Password (Пароль). Введите webuser в текстовое поле User Name (Имя пользователя) и пароль – в текстовое поле Password (Пароль).
- Нажмите на кнопку OK несколько раз для закрытия всех окон.
Теперь страницы ASP будут выполняться под учетной записью webuser. При создании страницами ASP компонента ConfigSeat.clsChair аутентификационные данные учетной записи webuser представляются для запроса в службы компонентов. Службы компонентов проверяют разрешения учетной записи webuser на создание и использование компонента, и ASP реализует функции в компоненте ConfigSeat.clsChair.