ДЕЛЕГИРОВАННОЕ АДМИНИСТРИРОВАНИЕ РАЗМЕЩЕННЫХ РЕСУРСОВ
DELEGATED MANAGEMENT OF DISTRIBUTED RESOURCES

Родственный заявки
Эта заявка на патент связана с заявкой на патент США за номером 10/281,083, озаглавленной “Role-Based Authorization Management Framework” (“Инфраструктура Управления Авторизацией на Ролевой Основе”), поданной 26/10/2002, права на которую принадлежат правообладателю настоящего изобретения и которая включена в настоящее описание посредством ссылки.
Область техники, к которой относится изобретение
Изобретение относится к администрированию размещенных ресурсов поставщика сетевых услуг.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Администрирование Web-сайтов может быть трудоёмким и дорогостоящим, особенно для объектов, которые управляют большими установками Поставщиков Услуг Интернета (ПУИ, ISP). Для экономии времени и денег многие ПУИ поддерживают только Web-сайты больших компаний в ущерб персональным Web-сайтам. Одна причина этого состоит в том, что компьютерная безопасность становится все более и более важной не только для юридических лиц и других организаций, но также и для физических лиц. Для удовлетворения таких потребностей в безопасности, стратегии безопасности компьютеров и Web-сайтов должны быть выбраны и введены в действие для каждого административного сценария. Такой выбор и введение в действие делают их весьма трудоемкими и требующими большого количества времени и затратными для поддержки персональных Web-сайтовв.
Сущность изобретения
Описаны системы и способы для делегирования доступа к ресурсам, размещенным в распределенной вычислительной среде. В одном аспекте, сервер размещает набор ресурсов. Сервер принимает запрос от пользователя на выполнение операции в отношении одного из размещенных ресурсов. В зависимости от принятого запроса сервер определяет, были ли пользователю уже делегированы полномочия на выполнение этой операции. Делегированные полномочия не зависят от того, является ли пользователь членом группы администраторов, связанной с каким-либо ресурсом сервера.
Перечень чертежей
На фигурах, крайняя левая цифра, составляющая ссылочный номер позиции, идентифицирует конкретную фигуру, на которой компонент появляется впервые.
Фиг. 1 - иллюстративная вычислительная среда, в которой могут быть осуществлены системы и способы для делегирования администрирования размещенных ресурсов.
Фиг. 2 - дополнительные иллюстративные аспекты системной памяти по Фиг. 1, содержащей прикладные программы и данные программ для делегирования администрирования размещенных ресурсов.
Фиг. 3 - иллюстративная процедура для делегирования администрирования размещенных ресурсов.
ПОДРОБНОЕ ОПИСАНИЕ
Краткий Обзор
Описаны надежные, масштабируемые, управляемые и безопасные системы и способы для делегирования и осуществления удаленного администрирования Web-сайтов. В частности, администратор компьютерного сервера Поставщика Услуг Интернета (ПУИ) использует описанную ниже инфраструктуру Делегирования Администрирования (ДА, DA) Информационных Служб Интернет (ИСИ, IIS) для делегирования определенных задач администрирования Web-сайта авторизованным (наделенным полномочиями) пользователям для выполнения. Такой авторизованный пользователь может являться, например, пользователем, который имеет персональный Web-сайт, размещаемый ПУИ.
Авторизация (проверка полномочий) пользователя определяется ввиду в плане заданного права (прав) доступа на ролевой основе для выполнения конкретных прикладных операций, связанных с размещенным Web-сайтом. Эта инфраструктура ДА ИСИ устраняет существующие тенденции, относящиеся к компьютерной безопасности, при которых персональные Web-сайты не поддерживаются из-за неэффективности в смысле времени и стоимости, как описано выше. Одна причина для этого состоит в том, что администратор не обязан вмешиваться (т.е. гарантировать компьютерную безопасность и авторизованный доступ) каждый раз, когда размещенный персональный Web-сайт модифицируют или тестируют. Такие модификации могут включать в себя, например, изменение контента (информационно значимого содержимого) функциональных возможностей Web-сайта, например размещение нового приложения на этом Web-сайте и т.д.
Эти и другие аспекты систем и способов для делегированного администрирования Web-сайта будут теперь описаны более подробно.
Обычная Операционная Среда
Обращаясь к чертежам, на которых идентичные ссылочные номера позиций соответствуют одинаковым элементам, изобретение иллюстрировано как осуществляемое в подходящей вычислительной среде. Хотя это не является обязательным, изобретение описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые персональным компьютером. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задания или реализуют определенные абстрактные типы данных.
Фиг. 1 иллюстрирует пример подходящей вычислительной среды 120, в которой могут быть реализованы описываемые далее системы, устройства и способы для делегирования администрирования размещенных ресурсов. Иллюстративная вычислительная среда 120 представляет собой только один пример подходящей вычислительной среды и не предназначена для наложения какого бы то ни было ограничения в отношении объема использования или функциональных возможностей описываемых здесь систем и способов. Не следует также интерпретировать вычислительную среду 120 как имеющую какую-либо зависимость или требование, относящееся к какому-либо компоненту или их комбинации, проиллюстрированным в вычислительной среде 120.
Способы и системы, описываемые здесь, могут работать со многими другими средами или конфигурациями компьютерных систем общего или специального назначения. Примеры широко известных компьютерных систем, сред и/или конфигураций, которые могут быть подходящими, включают в себя, но не в ограничительном смысле, вычислительные устройства (например, карманные, мобильные и т.д.) компактного выполнения (например, мобильные телефоны, персональные цифровые информационные устройства (PDA) и т.д.), многопроцессорные системы, основывающаяся на микропроцессорах или программируемая бытовая электроника, сетевые персональные компьютеры (ПК), мини-компьютеры, универсальные компьютеры (мейнфреймы), и/или тому подобное. Изобретение также может быть реализовано в распределенных вычислительных средах, в которых задания выполняются удаленными устройствами обработки данных, которые связаны между собой через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены и в локальных, и в удаленных запоминающих устройствах.
Как показано на Фиг. 1, вычислительная среда 120 включает в себя вычислительное устройство общего назначения в форме компьютера 130. Компоненты компьютера 130 могут включать в себя один или более процессоров или процессорных устройств 132, системную память 134 и шину 136, которая соединяет различные системные компоненты, в том числе системную память 134 с процессором 132. Шина 136 представляет собой любую одну или более из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину, шину ускоренного графического порта (AGP) и процессорную или локальную шину, используя при этом любую из разнообразных шинных архитектур. В качестве примера, а не ограничения, такая архитектура включает в себя шину Архитектуры Промышленного Стандарта (ISA), шину Микроканальной Архитектуры (MCA), Усовершенствованную шину ISA (EISA), локальную шину ассоциации по стандартизации в области видеотехники и микроэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI), также известную как мезонинная шина.
Компьютер 130 обычно включает в себя разнообразные машиночитаемые носители. Такие носители могут быть любыми доступными носителями, к которым компьютер 130 может осуществить доступ, и они включают в себя как энергозависимые, так и энергонезависимые носители, как сменные, так и несменные носители. Системная память 134 включает в себя машиночитаемые носители в форме энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 138, и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 140. Базовая система ввода-вывода 142 (BIOS) содержит основные процедуры, которые помогают передавать информацию между элементами в пределах компьютера 130 (например, при начальном запуске), и обычно хранится в ПЗУ 140. ОЗУ 138 обычно содержит данные и/или программные модули, к которым процессор 132 может осуществить непосредственный доступ и/или которые обрабатываются им в текущий момент.
Компьютер 130 также может включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Например, накопитель 144 на жестких магнитных дисках может использоваться для считывания с несменного, энергонезависимого магнитного носителя (не показан) и записи на него, магнитный дисковод 146 - для считывания со сменного, энергонезависимого магнитного диска 148 (например, "гибкого диска") и записи на него, и оптический дисковод 150 для считывания со сменного, энергонезависимого оптического диска 152, такого как CD-ROM/R/RW, DVD-ROM/R/RW/+R/RAM или другие оптические носители, и записи на него. Каждый из накопителя 144 на жестких магнитных дисках магнитного дисковода 146 и оптического дисковода 150 подсоединены к шине 136 посредством одного или более интерфейсов 154.
Накопители и дисководы и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 130. Хотя описанная здесь иллюстративная среда использует жесткий диск, сменный магнитный диск 148 и сменный оптический диск 152, специалистам в данной области техники будет понятно, что в обычной среде также могут использоваться другие типы машиночитаемых носителей, которые могут хранить данные, к которым компьютер может осуществить доступ, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п.
На жестком диске, магнитном диске 148, оптическом диске 152, в ПЗУ 140 или в ОЗУ 138 может храниться множество программных модулей, включающих в себя, например, операционную систему 158, одну или более прикладных программ 160, другие программные модули 162 и данные 164 программ.
Пользователь, такой как администратор Web-сайта ПУИ, может вводить команды и информацию в компьютер 130 через устройства ввода данных, такие как клавиатура 166 и указательное устройство 168 (такое как "мышь"). Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, последовательный порт, сканер, цифровую камеру, и т.д. Эти и другие устройства ввода данных соединены с процессором 132 через интерфейс 170 пользовательского ввода, который присоединен к шине 136, но могут быть подключены посредством других структур интерфейсов и шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 172 или устройство отображения другого типа также подключается к шине 136 через интерфейс, такой как видеоадаптер 174. Монитор может использоваться, например, для представления пользовательского интерфейса (ПИ, UI), связанного с описываемыми системами и способами для делегирования администрирования Web-сайта, например, посредством определения политик и правил доступа к приложениям, как описано ниже. В дополнение к монитору 172, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), такие как громкоговорители и принтеры, которые могут быть подсоединены через периферийный интерфейс 175 вывода.
Компьютер 130 может функционировать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 182. Удаленный компьютер 182 может включать в себя некоторые или все элементы и признаки, описанные здесь в отношении компьютера 130. Логические соединения включают в себя локальную сеть (LAN) 177 и глобальную сеть (WAN) 179. Такие сетевые среды являются широко распространенными в офисах, компьютерных сетях масштаба предприятия, интрасетях и Интернете.
При использовании в сетевой среде LAN компьютер 130 подключен к локальной сети 177 через сетевой интерфейс или адаптер 186. При использовании в сетевой среде WAN компьютер 130 обычно включает в себя модем 178 или другие средства установления связи через WAN 179. Модем 178, который может быть внутренним или внешним, может быть подключен к системной шине 136 через интерфейс 170 пользовательского ввода, либо другой соответствующий механизм.
На Фиг. 1 изображена конкретная реализация WAN через Интернет. В данном случае компьютер 130 использует модем 178 для установления связи по меньшей мере с одним удаленным компьютером 182 через Интернет 180. В сетевой среде программные модули, изображенные в отношении компьютера 130 или его частей, могут храниться в удаленном запоминающем устройстве. Таким образом, например, как изображено на Фиг. 1, удаленные прикладные программы 189 могут постоянно находиться в запоминающем устройстве удаленного компьютера 182. Показанные и описанные сетевые соединения являются иллюстративными. Таким образом, могут использоваться другие средства установления линии связи между вычислительными устройствами.
Иллюстративные Прикладные Программы и Данные
Фиг. 2 представляет собой блок-схему, которая дополнительно показывает иллюстративные аспекты системной памяти 134 по Фиг. 1, содержащей прикладные программы 160 и данные 164 программ для делегирования администрирования размещенных ресурсов. В этом варианте осуществления прикладные программы 160 включают в себя, например, Модуль 202 Авторизации, Модуль 204 Делегирования, модуль 206 Удаленного Администрирования Web-сайта Клиента (RCWA) (т.е. "запрашивающее приложение"), Исполняемый Модуль 208 и Авторизованный Процесс(ы) 210. Для целей обсуждения эти прикладные программы в сочетании с выбранными другими признаками системы 100 по Фиг.1 часто упоминаются в дальнейшем как "Инфраструктура Делегированного Администрирования (ДА) Информационных Служб Интернет (ИСИ) или "инфраструктура".
Менеджер (средство управления) 202 Авторизации обеспечивает поддержку безопасности для делегирования администрирования размещенных ресурсов узлов метабазы ИСИ (т.е. узлов метабазы 212 ИСИ). Метабаза 212 ИСИ идентифицирует узлы для приложений, ресурсов или объектов, размещенных, развернутых и/или управляемых посредством компьютера 130 по Фиг. 1. Более подробно, метабаза представляет собой иерархическое хранилище конфигурационной информации и схемы, которые используются для конфигурирования ИСИ. В существующих системах только пользователи, которые являются членами группы Администраторов, могут просматривать и модифицировать ресурсы, представленные узлом метабазы. В отличие от таких общеизвестных систем инфраструктура ДА ИСИ, которая описывается ныне, предоставляет возможность и другим пользователям, а не только входящим в группу Администраторов (например, администраторам приложений), таким как владельцы Web-сайта, просматривать и/или модифицировать конкретно заданную часть (части) метабазы 212 ИСИ. Для целей этого описания "пользователь" является индивидуумом, который не назначен в Административную группу, хотя пользователь также может входить в группу Администраторов.
С этой целью Модуль 202 Менеджера Авторизации через выборочное взаимодействие с модулем 204 Делегирования Администрирования (ДА), предоставляет возможность административному объекту (т.е. члену группы Администраторов) задавать (например, задавать через ПИ, отображенный на устройстве отображения 172 по Фиг. 1) права доступа пользователей к узлам метабазы 212 ИСИ. Модуль 202 Менеджера Авторизации записывает такие права доступа пользователей (т.е. политики/правила) в Хранилище 214 Политик Авторизации. В одном варианте осуществления такие права доступа представлены, например, в виде Расширяемого Языка Разметки (XML), Активного Каталога, Языка Программных Запросов (SQL) либо в каком-либо другом формате данных.
Приложение запрашивает Хранилище 214 Политик Авторизации (через интерфейс 216 прикладного программирования (ИПП, API) 216, предоставляемый Менеджером 202 Авторизации) во время выполнения для подтверждения того, что клиент наделен полномочиями выполнять запрашиваемую операцию над ресурсом. Менеджер Авторизации обеспечивает интерфейсы ИПП для управления политикой авторизации и управления подтверждением доступа и интерфейс пользователя для администраторов так, чтобы они могли управлять хранилищем политик авторизации.
Определение Приложения
Приложение, как определено Хранилищем 214 Политик Авторизации (ХПА, APS), представляет собой узел верхнего уровня Хранилища 214 политик авторизации. Для приложения выполняют спецификацию операций или задачи, которые приложение может выполнять, и объявляют их в ХПА 214, например, при инсталляции (установке) приложения. Спецификация приложения включает в себя конкретные роли приложения, идентифицированные администратором с точки зрения задачи и операций, которые необходимы для выполнения работы (например, в организации). Определения ролей, задач и операций (методов), и области действия хранятся в ХПА 214. Роль представляет собой роль авторизации или конфигурации ресурса (например, организационное предоставление прав доступа к некоторому набору ресурсов). Роль авторизации основывается на функции работы пользователя. Роль конфигурации ресурсов основывается на функции компьютера.
Задача представляет собой совокупность операций нижнего уровня. Назначение задачи состоит в определении того, какие операции нижнего уровня выполняют некоторый блок работы, который является значимым для администраторов. Примером задачи является Смена пароля. Задачи могут также содержать другие задачи. Например, задача, называемая "Управление Учетными Записями Пользователей" может включать в себя задачи Смены Пароля, Сброса Пароля, Блокирования Учетной Записи и так далее.
Операция представляет собой полномочие нижнего уровня, которое использует менеджер ресурсов для идентификации процедур безопасности. Для выполнения значимой задачи могут использоваться несколько операций (Операции часто не являются очевидными или значимыми для администраторов). Примером операции могут быть Атрибуты Записи (WriteAttributes) или Атрибуты Чтения (ReadAttributes). Область действия представляет собой совокупность одного или более физических или логических ресурсов (например, папок и/или файлов), связанных с соответствующей политикой авторизации. Приложение может использовать области видимости в группах ресурсов для отображения запрашиваемого пользователем ресурса на область действия (например, когда приложение проверяет пользовательский доступ), и так далее.
В этом варианте осуществления Менеджер 202 Авторизации предоставляет возможность задания нуля (0) или большего количества групп и соответствующих ролей для каждого заданного члена группы. Группа соответствует роли пользователя, и администратор приложения определяет права доступа, которые необходимы роли для предоставления полномочий группе в Списке Контроля Доступа (СКД, ACL) для объекта (например, приложения, ресурса, и т.д.). ТАБЛИЦА 1 показывает обычное определение приложения в ХПА 214, которое в этом варианте осуществления, представлено в формате данных XML.
<u>ТАБЛИЦА 1</u>ИЛЛЮСТРАТИВНАЯ СПЕЦИФИКАЦИЯ ПРИЛОЖЕНИЯ
<img file="00000001.tif" he="58" wi="149" img-content="undefined" img-format="tif" />
Каждое приложение включает в себя многочисленные атрибуты, такие как по существу глобальный уникальный идентификатор ("GUID", например, d9089f17-5fa6-4ae9-bddf-8ca6cd1c06fb), имя (например, SiteAdminApp) и так далее. Атрибуты приложения используются, например, для идентификации конкретных приложений, заданных в хранилище 214 политик авторизации. В примере, приведенном в ТАБЛИЦЕ 1, приложение включает в себя группу (например, смотри пару тэгов (неотображаемых элементов разметки) "AzApplicationGroup") для определения одного или более пользователей, назначенных на одну или более "ролей" в отношении приложения. Роль представляет собой набор полномочий, назначенных пользователю для предоставления возможности пользователю выполнять набор задач. Каждая группа приложений включает в себя атрибут GUID (например, значение bf9d00fC-2be3-4367-a931-680038b51d0a) и атрибут имени (например, GroupMetabaseChangeDefaultDoc). Эта иллюстративная группа иллюстрирует единственного члена, идентифицированного Идентификатором Безопасности (SID): S-1-5-21-3131233723-616130271-937215924-1032. Для цели этого примера предположим, что этот SID связан с пользователем "User1".
В этом варианте осуществления роль применяют к набору ассоциированных объектов, и затем группе пользователей назначают эту роль.
Определение Областей Видимости и Ролей
Приложение, представленное в ТАБЛИЦЕ 1, включает в себя группу приложения (хотя может быть определено любое количество таких групп) с областью действия. Область действия представляет собой совокупность одного или более физических или логических ресурсов (например, папок и/или файлов) связанных с соответствующей политикой авторизации. Приложение может применять область действия к группе ресурсов, отображая запрашиваемый пользователем ресурс на область действия (например, когда приложение проверяет доступ пользователя), и так далее. Далее следует иллюстративный синтаксис определения области действия: <AzScope Guid = "ce010982-6b6f-4e93-804e-d04bf1ddff78" Name= "Site Access for "User1"/>. Каждая область действия имеет уникальный идентификатор (например, ce010982-6b6f-4e93-804e-d04bf1ddff78) и имя (например, Site Access for "User1"), которое может использоваться с Интерфейсом Прикладного Программирования (ИПП) для доступа к области действия. Для целей обсуждения проиллюстрированная область действия имеет идентификатор сайта метабазы, равный "w3svc/1".
В одном варианте осуществления Модуль 202 Менеджера Авторизации используется в качестве хранилища политик безопасности, определяя одну или более ролей на уровне области действия (т.е. внутри области действия). Например, конкретная роль может быть определена для изменения защиты доступа к соответствующему сайту; другая роль может быть сгенерирована для указания нового узла, такого как (например, "WebDirs") под сайтом. Иллюстративная роль внутри области действия иллюстрируется для изменения заданного по умолчанию списка документов для сайта: "<AzRole Guid = "3ac117fd-7f12-4287-a7ff-982770d6ce49" Name = "ChangeDefaultDoc"/>". Роль имеет уникальный идентификатор, назначенный на время создания (например, 3ac117fd-7f12-4287-a7ff-982770d6ce49), и имя, например, ChangeDefaultDoc (имя может быть определено так, чтобы оно было значимым). ТАБЛИЦА 2 показывает пример роли, определенной внутри области действия:
<u>ТАБЛИЦА 2</u>ПРИМЕР РОЛИ, ОПРЕДЕЛЕННОЙ В ПРЕДЕЛАХ ОБЛАСТИ ДЕЙСТВИЯ
<img file="00000002.tif" he="33" wi="155" img-content="undefined" img-format="tif" />
Роль является определенной, когда, по меньшей мере, одна (1) задача определена в отношении группы приложения, имеющей доступ к области действия, к которой принадлежит роль. Задача представляет собой одну или более операций нижнего уровня для выполнения некоторого блока работы для администратора. Например, задачей могла бы быть "Смена пароля". Задача может формировать одну или более других задач. Например, задача, называемая "Управление Учетными Записями Пользователей" может включать в себя задачи "Смена пароля", "Сброс Пароля", "Блокирование Учетной Записи" и/или т.п. ТАБЛИЦА 3 показывает пример определения роли.
<u>ТАБЛИЦА 3</u>ИЛЛЮСТРАТИВНОЕ ОПРЕДЕЛЕНИЕ РОЛИ
<img file="00000003.tif" he="34" wi="139" img-content="undefined" img-format="tif" />
Роль, показанная в ТАБЛИЦЕ 3, включает в себя атрибут AppMemberLink, который обращается к группе приложения, основываясь на ее уникальном идентификаторе, в этом примере, bf9d00f0-2be3-4367-a931-680038b51d0a. ТАБЛИЦА 4 показывает область действия с ассоциированной ролью.
<u>ТАБЛИЦА 4</u>ИЛЛЮСТРАТИВНАЯ ОБЛАСТЬ ДЕЙСТВИЯ С РОЛЬЮ
<img file="00000004.tif" he="50" wi="146" img-content="undefined" img-format="tif" />
Определение Задач и Бизнес-Правил
Роль может определять одну или более задач. Задача состоит из одной или более "операций" нижнего уровня, на выполнение которых пользователю предоставлены полномочия вместе с бизнес-правилом. Операция представляет собой полномочие нижнего уровня, которое идентифицирует уровень(уровни) безопасности, связанные с задачей. Несколько операций могут включать в себя значимую задачу. Примеры операций включают в себя "Атрибуты Записи" и "Атрибуты Чтения". Нижеследующий пример, приведенный в ТАБЛИЦЕ 5, иллюстрирует задачу, предоставляющую пользователю возможность изменять свойство (например, свойство "DefaultDoc") для Web-сайта. Задача содержит две операции: одна для установления значения этого свойства, и одна для получения значения этого свойства.
<u>ТАБЛИЦА 5</u>ИЛЛЮСТРАТИВНАЯ ЗАДАЧА
<img file="00000005.tif" he="50" wi="135" img-content="undefined" img-format="tif" />
В примере, приведенном в ТАБЛИЦЕ 5, операции присвоены уникальный идентификатор и имя, как это имело место при определении предыдущих атрибутов. Одна из самых важных характеристик операции представляет собой атрибут OperationID. Задача может обращаться к одной или более операциям через OperationID. ТАБЛИЦА 6 иллюстрирует, как определить иллюстративную задачу.
<u>ТАБЛИЦА 6</u>ИЛЛЮСТРАТИВНОЕ ОПРЕДЕЛЕНИЕ ЗАДАЧИ
<img file="00000006.tif" he="77" wi="147" img-content="undefined" img-format="tif" />
Пример, приведенный в ТАБЛИЦЕ 6, показывает две операции, к которым обращается одна задача. Это должно иллюстрировать, как может быть определен файл политики. Возможно иметь задачу, которая обращается к множеству операций. В одном варианте осуществления, однако, для гарантии того, что инфраструктура Делегирования Администрирования ИСИ работает, как ожидается в пределах файла политики, используемого с инструментальным средством, задача обращается только к одной операции. В таком варианте осуществления, когда задача обращается к операции внутри роли, к операции не обращается другая задача в той же самой роли. Однако следует обратить внимание на то, что к операции может обратиться задача из другой роли. Для подробной информации в отношении иллюстративного синтаксиса хранилища политики разрешения, см. ТАБЛИЦУ 11, приведенную ниже.
Задача определяет одну или более операций (например, две операции, определенные в ТАБЛИЦЕ 6), идентифицируя их уникальными идентификаторами, и бизнес-правилом или BizRule. Бизнес-правило также называют скриптом (программой на макроязыке) авторизации, написанным на языке разработки скриптов, таком как Jscript или VBScript. В этом варианте осуществления скрипты присоединены к объекту задачи, которая выполняется при вызове ИПП Проверки Доступа для проверки того, что пользователь может выполнять данный метод. В этом варианте осуществления ИПП Проверки Доступа реализован посредством известного ИПП Безопасности Закрытого Объекта (БЗО, POS) операционной системы 158 (Фиг. 1). ИПП БЗО анализирует членство пользователя в группах в лексеме и сравнивает его с содержанием Списка Контроля Доступа (СКД) для определения того, имеет ли пользователь запрашиваемый доступ. Скрипты могут использовать информацию, которая является доступной только во время выполнения, такую как "время суток" или "запрашиваемое количество долларов", для принятия решения об аутентификации.
В примере, приведенном в ТАБЛИЦЕ 6, бизнес-правило JScript налагает ограничения на действия, которые пользователь может пробовать выполнять. Предположим, что пользователь пробует выполнить операцию с OperationID=1 в качестве части задачи. Скрипт может сделать недействительным значение параметра DefaultDoc, который пользователь передает к методу в качестве аргумента. В этом примере сценарий не позволяет пользователю устанавливать значение этого свойства в строке, которая отличается от "index.htm". AzBizRuleContext представляет собой объект, к которому сценарий BizRule имеет доступ. Его свойство BizRuleResult используется для определения того, разрешено ли пользователю выполнение операции.
Делегирование Пользователю Доступа к Размещенному Ресурсу
Для согласования с Менеджером 202 Авторизации модуль 204 Делегированного Администрирования (ДА) использует один набор входных значений при непосредственном взаимодействии с Менеджером 202 Авторизации и другой набор значений, которые являются параметрами для операции, которую пользователь желает выполнять по отношению к размещенному ресурсу (например, Web-сайту) через запрашивающее приложение (например, Приложение 208 Удаленного Администрирования Web-сайта Клиента). Например, в предыдущем примере, приведенном в ТАБЛИЦЕ 6, для операции SetDefaultDoc, ДА 204 использует в качестве входных данных имя области действия, имя операции или метода и значение, которое является значением параметра DefaultDoc, упомянутого в BizRule выше.
ДА 204 использует файл 218 конфигурации для определения того, какое Хранилище (хранилища) 214 Политик Авторизации содержит вводимую область действия и для отображения вводимого имени операции или метода на OperationID. В этом варианте осуществления, файл 218 конфигурации представляет собой файл XML, который задает/определяет каждый метод, назначенный заданному набору пользователей и отображает этот метод на соответствующий идентификатор (идентификаторы) операции (ID) в хранилище 214 политик авторизации. Файл 218 конфигурации также включает в себя параметры методов, отображения областей действия, формат данных файла журнала регистрации и шаблоны командной строки. При отображении имени области действия ДА 204 получает из файла 218 конфигурации путь к хранилищу 214 политик авторизации, в котором расположена область действия, и имя приложения в этом хранилище политик авторизации, при помощи которого определяется область действия.
После выполнения ДА 204 синтаксического анализа файла конфигурации в отношении такой информации ДА 204 инициализирует Менеджера 202 Авторизации, используя путь хранилища, открывает желаемое приложение и получает объект контекста клиента, который будет использоваться для запроса с целью определения того, имеет ли пользователь доступ к запрашиваемой функции/ресурсу.
Иллюстративный Формат Файла Конфигурации
Инфраструктура Делегированного Администрирования ИСИ использует запись системного реестра типа "String" (строка) для хранения полного пути к файлу 218 конфигурации (например, HKLM\Software\Entity\IISDelAdmin\DelegAdminMappingPath (REG_SZ)). Такая строка хранится в системном реестре 220. ТАБЛИЦА 7 показывает иллюстративный файл 218 конфигурации.
<u>ТАБЛИЦА 7</u>ИЛЛЮСТРАТИВНЫЙ ФАЙЛ КОНФИГУРАЦИИ ДЕЛЕГИРОВАННОГО АДМИНИСТРИРОВАНИЯ
<img file="00000007.tif" he="123" wi="153" img-content="undefined" img-format="tif" /><img file="00000008.tif" he="26" wi="129" img-content="undefined" img-format="tif" />
В этом иллюстративном варианте осуществления файл 218 конфигурации включает в себя следующие записи: запись для каждого метода, который будет разрешен пользователю; запись для каждой области действия, используемой в хранилище, которое содержит задачу, относящуюся к существующему методу в файле 218 конфигурации. Каждая запись, относящаяся к области действия, соответствует пользователю, который имеет область действия в хранилище политик авторизации. Дополнительно, запись определяет желаемый и/или заданный по умолчанию формат данных файла журнала регистрации.
Синтаксис Метода и Параметра
ТАБЛИЦА 8 показывает иллюстративный шаблон для определения метода в узле IISDAMethod файла 218 конфигурации:
<u>ТАБЛИЦА 8</u>ИЛЛЮСТРАТИВНОЕ ОПРЕДЕЛЕНИЕ ЗАДАЧИ
<img file="00000009.tif" he="35" wi="145" img-content="undefined" img-format="tif" />
В этом варианте осуществления используются все из атрибутов, кроме Description (Описание). Если атрибут отсутствует в определении узла, которое используется ExecuteMethod, метод выдаст ошибку. (ExecuteMethod представляет собой ИПП 222, предоставляемым модулем 204 ДА для выполнения операции, затребованной пользователем, если он уполномочен на доступ).
Синтаксис метода использует следующие атрибуты:
PublicName - это имя метода, в том виде, как оно предоставляется пользователю, имя, в отношении достоверности которого в качестве записи (параметра метода ExecuteMethod объекта Динамически Подключаемой Библиотеки (например, модели компонентных объектов (COM)), доступного через ИПП 222, предоставляемый модулем 204 ДА) инструментальное средство выполнит проверку.
ExePath-определяет либо путь к исполняемому файлу или к сценарию командной строки, который будет использоваться для выполнения метода, запрашиваемого пользователем, или идентификатор ProgID объекта СОМ, который обозначен для выполнения операции посредством одного из его методов.
AZStoreID - определяет идентификатор операции OperationID, который соответствует этому методу в хранилище политик авторизации.
CmdLine - определяет способ, которым будет сформирована командная строка для исполняемого модуля, или имя метода, если ExePath задает ProgID объекта СОМ. Для исполняемого модуля в этом атрибуте можно задать ключевое слово, имя/значение атрибута (атрибуты метода, параметра и области действия) и индекс параметра. Для подробной информации об определении значений CmdLine, см. Формат Поля CmdLine ниже.
WaitTimeout - указывает ДА 204 сколько секунд надо ждать после запроса ИПП CreateProcess перед выходом и регистрацией результата. После успешного запроса к CreateProcess, инструментальное средство вызывает WaitForSingleObject (processHandle, timeout) для ожидания окончания процесса. Этот атрибут не используется, если операция связана с методом СОМ.
ProcessType - задает тип процесса, который используется для выполнения метода. Допустимыми значениями для этого атрибута являются "СОМ" (для определения того, что метод СОМ выполняет рассматриваемый метод) и "CMD" (для определения того, что исполняемая программа командной строки выполняет рассматриваемый метод).
Separator - помогает в создании более структурированных выводных данных исполняемого модуля. Для специальных символов (таких как "\r" и "\n") это поле включает в себя версию символа в escape-символа (например, "%0D" и "%0A"). Инструментальное средство всегда считывает значение поля Separator и затем выполняет их обратное преобразование из escape-символов, так что можно задать эти специальные символы таким образом, что они будут распознаны инструментальным средством в качестве разделителей. Например, предположим, что результатом будет строка, содержащая набор адресов Интернет-протокола (IP адресов), которые запрещены для Web-сайта, и также что результатом является строка, содержащая все эти адреса, разделенные "CRLF" (последовательностью "\r\n"). Если Separator = "% 3D%0A" определен в узле IISDAMethod, функция OutputArray, вместо того, чтобы возвратить строку с IP-адресами целиком, выдаст массив строк, каждая из которых соответствует IP-адресу из результирующей строки.
Description - добавляет описание метода, который может использоваться в приложении, которое предоставляет метод пользователю. Например, оно используется типовым приложением ADMIN ASP.NET для отображения описания метода, когда пользователь перемещает мышь поверх имени метода на странице.
Синтаксис Параметра
Каждый метод может определить ноль (0) или большее количество параметров. Приведенный ниже шаблон показывает, как определяется параметр:
<Parameter Name=" " MetabaseProperty="" Description=""/>
Если Параметр тэга XML определен, то используются все атрибуты, кроме Description. Если один атрибут отсутствует в определении узла и узел будет использоваться ExecuteMethod, то метод выдаст ошибку.
Синтаксис параметра метода использует следующие атрибуты:
Name
- Посылается инструментальным средством в качестве параметра для функции AccessCheck. То же самое имя будет использоваться в BizRule задач, которые обращаются к идентификатору операции, соответствующему методу, в котором параметр определен.
MetabaseProperty
- может использоваться, если исполняемый модуль запросит определенное свойство метабазы в качестве части его командной строки, например: "adsutil.exe get w3svc/1/AnonymousUserName". В этом примере параметр имеет атрибут MetabaseProperty = "AnonymousUserName", а "w3svc/1" - это узел метабазы MetabaseNode, определенный в области действия. Для подробной информации об определении области действия, см. ниже Синтаксис Области Действия.
Description
- Ассоциирует описание с параметром. Например, приложение, предоставляющее метод, к которому такой параметр принадлежит, может использовать это поле для отображения ограничений, наложенных на значения параметра.
Синтаксис Интерфейса
Можно задать интерфейсы, которые будут использоваться для выполнения BizRule в задаче, которая обращается к операции, используя узел Interface. Приведенный ниже пример показывает синтаксис узла Interface: <Interface Name=" " Flag="" ProgID=" " />. Узлы Interface являются необязательными и используются тогда, когда объекты COM используются в бизнес-правиле задачи, которая обращается к методу. Если узел Interface определен, используются все атрибуты. Если в определения узла один атрибут отсутствует, и узел будет использоваться ExecuteMethod, метод выдаст ошибку.
Синтаксис интерфейса использует следующие атрибуты:
Name
- идентифицирует имя объекта, как предполагается его использовать в бизнес-правиле.
Flag
- задает флаг, который будет использоваться для создания объекта в скрипте BizRule.
ProgID
- задает независимую версию ProgID объекта СОМ. Соответствующее имя Name в этом узле является, фактически, экземпляром этого объекта. BizRule использует объект только через предоставленное Name.
Каждый атрибут соответствует параметру, используемому AccessCheck, связанному с интерфейсами.
Синтаксис Области Действия
Следующая запись шаблона определяет область действия:
<IISDAScope PublicName=" " AZName=" " MetabaseNode=" " AZStorePath=" "AZApplicationName=" "GenerateAudits=" " AuditName=" "/>. Используются все атрибуты. Если один из них отсутствует и узел будет использоваться ExecuteMethod, то метод выдаст ошибку.
Синтаксис области действия использует следующие атрибуты:
PublicName -
имя, предоставляемое пользователю, когда область действия создана, и имя, которое пользователь будет предоставлять для идентификации того, на каком уровне метабазы 212 произведены изменения (потому, что пользователь, например, может иметь более одного назначенного сайта).
AZName -
имя области действия в файле хранилища политик авторизации, который соответствует этой области действия. MetabaseNode определяет фактическую область действия, которая, фактически, является узлом метабазы, к которому пользователь имеет доступ.
AZStorePath -
путь хранилища политик авторизации, в котором эта область действия расположена. Этот атрибут задает хранилище политик авторизации, в котором модуль 204 ДА будет искать эту область действия.
AZApplicationName -
задает приложение, в хранилище, в отношении которого определена эта область действия.
GenerateAudits
- задает то, вызывает ли попытка доступа к этой области действия аудит (отслеживание действий путем регистрации событий).
AuditName
- задает ключевую строку, используемую при аудите для идентификации объекта, к которому было осуществлен доступ (в этом варианте осуществления, это подтверждает, что к этой области действия, в частности, был осуществлен доступ).
Синтаксис Файла Журнала Регистрации
Файл 218 конфигурации также определяет формат для файла 224 журнала регистрации, используя шаблон приведенный ниже:
<IISDALog Path=" ">
<Field Name=" "/>
<Field Name=" "/>
</IISDALog>
Синтаксис файла 224 журнала регистрации использует следующие атрибуты:
Path
- задает путь, по которому сохраняют файл журнала регистрации. Этот атрибут используется. Инструментальное средство выдает ошибку, если он не присутствует. Значение этого атрибута указывает на действительную и доступную папку; в противном случае, инструментальное средство согласно этому варианту осуществления не выполняет регистрацию чего бы то ни было, но сгенерирует исключение. При создании файла журнала регистрации в первый раз приложение использует параметры настройки безопасности, унаследованные от родительской папки (идентифицированой значением атрибута Path), что предполагает, что идентифицированные данные приложения COM + (см. другой модуль 210) подразумевают доступ на считывание/запись в этой папке.
Field
- идентифицирует каждое поле в файле журнала регистрации, используя связанный с ним атрибут Name. Для более подробной информации о полях, см. ниже Поля файла журнала регистрации.
Результат ExecuteMethod (ExecuteMethod представляет собой ИПП 222, предоставляемый модулем 204 ДА для выполнения операции, запрашиваемой пользователем, если он уполномочен на доступ. Операцию или задачу, реализуемую ExecuteMethod (показана в виде Исполняемого Модуля 208), регистрируют при помощи формата файла журнала регистрации, соответствующего разделенным запятыми значениям. В этом варианте осуществления, если раздел регистрации не присутствует в файле 218 конфигурации, ДА 202 ничего не регистрирует и выдает исключение.
Поля Файла Журнала Регистрации
Файл журнала регистрации может иметь произвольное количество полей, каждое из которых идентифицируется атрибутом Name (Имя) подузла Field (Поле). Файл журнала регистрации по умолчанию включает в себя следующие первые шесть полей:
Date
Дата и время (поле ) запроса (вызов ExecuteMethod).
User
Имя пользователя (поле ; например, если ExecuteMethod вызывается на странице .aspx , то имя пользователя, которому был предоставлен доступ к этой странице .aspx, будет зарегистрировано).
Method
Имя метода (поле ), предоставляемое вызывающей стороной.
Scope
Имя области действия (поле ), предоставляемое вызывающей стороной.
Значение атрибута ExePath, соответствующее методу (атрибуту ProcessType, который является атрибутом определения метода в атрибуте файла конфигурации).
CmdLine
Значение атрибута CmdLine, соответствующее методу (поле ).
Result
Делегированное Администрирование 204 также регистрирует в двух последних позициях результат (поле ) функции 208 ExecuteMethod и информацию исключения (поле Exception). Информация исключения обеспечивает подробности в отношении контекста исключения (т.е. на каком этапе выполнения метода происходит исключение) и код исключения, которое было перехвачено инструментальным средством.
Формат Поля CmdLine
Шестое поле CmdLine требует особого рассмотрения. В случае узла IISDAMethod при ProcessType = "COM" значение, зарегистрированное в этом поле, выглядит так, как оно определено в файле 218 конфигурации в атрибуте CmdLine. В случае узла IISDAMethod при ProcessType = "CMD", значение, зарегистрированное в этом поле, будет выглядеть либо так, как оно определено в файле 218 конфигурации в атрибуте CmdLine, либо (в случае, если строка соответствует IISDACmdLineKeys) как значение полной командной строки исполняемого модуля, если ExecuteMethod фактически сформировал командную строку для модуля перед выдачей результата. Это обеспечивает более подробную информацию в файле журнала регистрации для содействия определению максимально возможного количества элементов запроса и облегчает процесс устранения неполадок.
Если узел Field не определен, то модуль 204 ДА регистрирует, например, восемь (8) упомянутых выше полей, и узел IISDALog используется только для получения пути к файлу журнала регистрации. Обычно имя поля представлено в форме "Param1", "Param2" и так далее, потому что, в дополнение к вышеупомянутым полям, которые регистрируют по умолчанию, имеются другие поля, каждое из которых может оказаться полезным.
В этом варианте осуществления поля "Param" регистрируются после первых шести полей, описанных выше. Если список значений параметра содержит больше элементов, чем фактическое количество полей/узлов в узле IISDALog, тогда регистрируются не все значения параметра. Однако, если наличествует меньшее количество значений параметра для метода, чем количество узлов Field в узле IISDALog, то остальная часть значений полей в записи журнала регистрации будет состоять из пробелов (" ").
Формат Параметра Командной строки
В файле 218 конфигурации можно определить формат для параметра командной строки методов, которые будут выполняться (другими словами то, каким образом значение атрибута CmdLine IISDAMethod будет интерпретировано, когда атрибут ProcessType равен "CMD"). Приведенный ниже шаблон показывает формат параметра командной строки:
<IISDACmdLineKeys>
<IISDACmdLineKey Name=" " AttributeName="" Node=""/>
</IISDACmdLineKeys>
IISDACmdLineKeys имеет следующие атрибуты:
Name -
используется в командной строке в качестве ключа.
AttributeName -
задает имя атрибута внутри файла конфигурации под узлами IISDAMethod, IISDAScope или Parameter, к которым относится ключ. Этот атрибут дает возможность задавать либо само имя атрибута, либо значение атрибута, которое ему соответствует.
Node -
идентифицирует узел, под которым расположен AttributeName. Атрибут узла может иметь одно из следующих значений: "IISDAMethod", "IISDAScope", "Parameter". Шаблон командной строки предоставляет возможность Делегированному Администрированию 204 поддерживать лексемы в определении командной строки для метода (атрибут CmdLine узла IISDAMethod). Такие лексемы включают в себя, например, лексемы, показанные в ТАБЛИЦЕ 9.
ТАБЛИЦА 9ИЛЛЮСТРИРОВАННЫЕ ЛЕКСЕМЫ ШАБЛОНА КОМАНДНОЙ СТРОКИ
Лексема
Описание
Ключевое слово
Задается как есть. Поэтому, если атрибут CmdLine содержит, например, строку “get” (“получить”), эта строка будет использоваться для формирования командной строки для модуля.
#D#
Значение параметра задается при помощи следующего формата: #D#. (D идентифицирует число). Число, которое появляется между двумя # символами, определяет индекс параметра. Инструментальное средство заменяет последовательность #D# значением параметра с индексом "D", который был передан методу в качестве аргумента. Например, если были значения двух параметров, переданных методу в качестве аргументов, то если CmdLine включает в себя #1#, ExecuteMethod заменяет последовательность #1# значением первого параметра. В этом варианте осуществления, например, если атрибут CmdLine содержит #3#, то ExecuteMethod выдает ошибку, потому что в качестве аргументов были переданы только значения двух параметров.
$KEY$
Задает имя атрибута. (KEY представляет собой значение, определенное в узле IISDACmdLineKeys при помощи атрибута Name). Для лексем #KEY# и $KEY$, KEY (который задан в атрибуте Name узла ISDACmdLineKeys) может быть именем атрибута в следующих узлах: IISDAMethod, IISDAScope и Parameter. Как упомянуто выше, точное местоположение задается в атрибуте Node узла ISDACmdLineKeys. Метод анализирует значение KEY, проверяет, существует ли узел IISDACmdLineKey под узлом IISDACmdLineKeys, а также проверяет, существует ли атрибут, идентифицированный посредством AttributeName, соответствующий узлу, идентифицированному при помощи Node. Если узел и атрибут существуют, то метод заменяет лексему именем ($KEY$) либо значением (#KEY#) этого атрибута.
#KEY#
Задает значение атрибута. Для лексем #KEY# и $KEY$, KEY (который задан в атрибуте Name узла ISDACmdLineKeys) может быть именем атрибута в следующих узлах "IISDAMethod", "IISDAScope", "Parameter". Как упомянуто выше, точное местоположение задано в атрибуте Node узла ISDACmdLineKeys. Способ анализирует значение KEY, проверяет, существует ли узел IISDACmdLineKey под узлом IISDACmdLineKeys, а также проверяет, существует ли атрибут, идентифицированный посредством AttributeName, соответствующий узлу, идентифицированному посредством Node. Если узел и атрибут существуют, то метод заменяет лексему именем ($KEY$) либо значением (#KEY#) этого атрибута.
#KEY@D#
Если командная строка использует значение атрибута некоторого параметра, используется лексема #KEY@D#. Интерпретация этой лексемы представляет собой "значение атрибута, заданного KEY для параметра с индексом D".
В этом варианте осуществления, поскольку # и $ используются для построения командной строки, эти символы ограничены в том смысле что, если существует последовательность двух из этих символов (подобно #строка# или $строка$), инструментальное средство будет пробовать найти узел IISDACmdLineKey, который имеет атрибут Name, равный "строка". Это является признаком, зависящим от внедрения, который может быть изменен так, как подразумевается архитектурой проектирования.
Эта методика определения параметров командной строки позволяет задать переменные окружения, такие как %SYSTEMROOT%, в командной строке модуля. Когда создается узел IISDACmdLineKey, все атрибуты используются. В противном случае, ExecuteMethod потерпит неудачу при попытке проведения синтаксического анализа узла. Для более подробной информации об определении узлов IISDACmdLineKey и о том, как их интерпретируют во время выполнения, см. Примеры CmdLine и IISDACmdLineKeys.
Иллюстративные методы (ИПП 222), Предоставляемые Модулем Делегирования Администрирования
Модуль 204 Делегирования Администрирования предоставляет следующие методы через ИПП 222:
Методы Parameters - устанавливает параметры, связанные с операцией. Параметры этого метода представляют собой вариант типа VT_ARRAY (где каждый элемент в массиве относится к типу VT_BSTR) или типа VT_BSTR. Этот метод вызывают перед вызовом ExecuteMethod.
Метод ParamError - проверяет, были ли параметры установлены правильно методом Parameters. Если параметры были установлены успешно, он выдает 0. Этот метод вызывают для предотвращения вызова ExecuteMethod в случае, если параметры не были правильно установлены методом Parameters.
Метод ExecuteMethod - выполняет операцию, которую запрашивает пользователь. Выдает 0 при успешном завершении. Перед вызовом этого метода вызывают метод Parameters в случае, если операция использует, по меньшей мере, один параметр. Для информации о кодах ошибки, которые выдаются при неудачном выполнении, см. Возвращаемые Значения Делегированного Администрирования. Метод ExecuteMethod имеет следующие параметры:
Scope name - область действия, связанная с пользователем, который запрашивает выполнение операции. Приложение, которое предоставляет методы пользователю, получает эту область действия от пользователя. Например, используя типовое приложение ASP.NET, пользователь задает имя сайта для администрирования. Это имя сохраняют в качестве переменной сеанса и используют всякий раз, когда вызывается ExecuteMethod. Тип параметра представляет собой BSTR.
Method name - имя метода, который пользователь будет пробовать выполнить. Это имя соответствует значению атрибута PublicName узла IISDAMethod в файле конфигурации. Тип параметра представляет собой BSTR.
LogResult - булево значение, задающее, должен ли метод регистрировать результат операции.
ExecuteOperation - булево значение, задающее, выполняет ли ExecuteMethod командную строку или вызывает метод СОМ, связанный с рассматриваемым методом. Этот параметр полезен, когда требуется использовать ExecuteMethod до момента, когда AccessCheck решает, предостален ли пользователю доступ на выполнение этого метода. Если выбрано невыполнение какого бы то ни было метода или командной строки (устанавливая этот параметр в значение ЛОЖЬ (FALSE)), можно оставить значения соответствующих атрибутов узла IISDAMethod в качестве пустых строк. После возврата AccessCheck, результат регистрируют.
Иллюстративная Процедура Делегирования Администрирования Web-сайта
Фиг. 3 показывает иллюстративную процедуру 300 делегированного администрирования Web-сайта. В частности, процедура иллюстрирует иллюстративную обработку, которая происходит, когда пользователь предпринимает попытку изменения свойств Web-сайта, причем Web-сайт размещен ПУИ, который реализует описанную Инфраструктуру Делегирования Администрирования ИСИ по Фиг. 1 и 2. Соответственно, и для иллюстративных целей операции процедуры описаны в отношении признаков по Фиг. 1 и 2. Как отмечено выше, на чертежах, крайняя левая цифра, составляющая ссылочный номер позиции, идентифицирует конкретную фигуру, на которой компонент появляется в первый раз.
На этапе 302 административный объект (например, член Административной группы) обеспечивает один или более параметров для операции в отношении приложения и/или ресурсов, размещаемых посредством компьютера 130 (Фиг. 1). Такое условие обеспечивается посредством ИПП 216, предоставляемого Модулем 202 Авторизации (Фиг. 2).
На этапе 304 пользователь выполняет приложение, такое как приложение 206 Удаленного Администрирования Web-сайта (RWSA) (Фиг. 2), размещаемого посредством компьютера 130 (Фиг. 1). Приложение 206 RWSA предоставляет возможность пользователю, такому как владелец Web-сайта, модифицировать, тестировать, либо иным образом администрировать контент и/или функциональные возможности или любой другой аспект Web-сайта или ресурсов, размещенных посредством компьютера 130 (Фиг. 1). Как описано ниже, авторизация для такого администрирования динамически определяется модулем 204 Делегирования Администрирования (ДА). Для целей этого примера пользователь не является членом группы Администраторов в отношении управления конфигурацией и/или ресурсами, связанными с компьютером 130 по Фиг. 1, хотя пользователь может являться членом такой группы Администраторов. На этапе 306 пользователь запрашивает выполнение, по меньшей мере, операции в отношении размещенного ресурса (например, Web-сайта, и т.д.). С этой целью приложение (например, приложение 206 RWSA) вызывает один или более ИПП 222, предоставляемых модулем 204 Делегирования Администрирования (ДА) для запроса доступа к операции. Как уже было отмечено, управление доступом операции пользователя к размещенному ресурсу осуществляется посредством нескольких уровней функциональных возможностей, как показано в ТАБЛИЦЕ 10.
ТАБЛИЦА 10ИЛЛЮСТРАТИВНЫЕ УРОВНИ ФУНКЦИОНИРОВАНИЯ
Уровень
Описание
Хранилище 214 Политик Авторизации
Хранилище 214 Политик Авторизации используется для проверки доступа пользователя к запрашиваемой задаче/способу. Задача обращается к отдельной операции, в которой можно управлять значениями параметров. Ассоциированное бизнес-правило предоставляет возможность отказать в доступе этому методу на основе пользовательского ввода. Для более подробной информации о написании скрипта для каждой задачи, см. ТАБЛИЦУ 11, иллюстративное Хранилище Политик Авторизации.
Модуль (Авторизованный Процесс)
Модуль представляет собой Авторизованный Процесс 210, который выполняет операцию после того, как на предыдущих уровнях выполнена проверка в отношении того, что пользователь может выполнять операцию (т.е. выполнять метод). Модуль является либо модулем командной строки, либо методом СОМ.
Размещенное Приложение (Например, приложение 206 RWSA)
Обеспечивает интерфейс для задачи, вызывая соответствующий ИПП 222 модуля 204 Делегирования Администрирования. На этом уровне можно управлять вводом от пользователя посредством задания характеристик, таких как длина, значения и форматы. В этом варианте осуществления приложение 206 Удаленного Администрирования Web-сайта (RWSA) обеспечивает такие интерфейсы для предоставляемого ИПП 222 Модуля 204 Делегирования Администрирования.
На этапе 308 Модуль 204 Делегирования Администрирования определяет, наделен ли пользователь полномочиями на доступ к ресурсу через запрашиваемую операцию. Это определение осуществляется совершенно независимо от того, является ли пользователь членом группы Администраторов по отношению к администрированию ресурсов компьютера 130 (Фиг. 1). С этой целью модуль 204 ДА, через ИПП 222 метода Parameters, устанавливает параметры ExecuteMethod. ExecuteMethod ищет запись в системном реестре 220, обеспечивающую путь к файлу 218 конфигурации. Файл 218 конфигурации определяет все возможные методы, которые могут быть выполнены всеми пользователями, и то, где административный объект может добавить запись (т.е. узел IISDAScope) для каждого пользователя.
В этот момент на этапе  306, ExecuteMethod считывает файл 218 конфигурации и предпринимает попытку отображения запрашиваемых имени операции, области действия и параметров на записи в этом файле. Если эти записи найдены, то информация, относящаяся к хранилищу 214 политик авторизации (т.е. полученная из атрибута узла IISDAScope) извлечена. ExecuteMethod извлекает информацию из Хранилища 214 Политик Авторизации и проверяет (например, вызывая AccessCheck), имеет ли пользователь доступ к заданной области действия, на основе метода и предоставляемых параметров. Для достижения этого ExecuteMethod исполняет роль вызывающей стороны для представления идентификационных данных клиента размещенным ресурсам от имени клиента с целью проверки доступа или аутентификации, подлежащей выполнению по отношению к идентификационным данным клиента (Исполнение роли представляет собой способность потока выполняться в контексте безопасности, отличающемся от контекста безопасности метода, являющего владельцем этого потока).
На этапе 310, если определено, что пользователь не наделен полномочиями на выполнение запрашиваемой операции, то пользователю отказывают в доступе к этой операции. Однако на этапе 312, если пользователю предоставляют доступ к области действия и если к методу обращаются в задаче, находящейся в пределах области действия пользователя, то ExecuteMethod выполняет метод (т.е. Авторизованный Процесс 210) или формирует Командную строку 210 для выполнения процесса, который выполняет запрошенную пользователем операцию (т.е. выполняет через объект (например, объект СОМ) или Командную строку).
Например, модуль 204 ДА либо формирует командную строку для исполняемого модуля, который фактически будет исполнять операцию/метод, либо предпринимает попытку инициализировать объект СОМ, связанный с операцией, и получить диспетчерский идентификатор (DISPID) заданного метода. Затем модуль 204 ДА вызывает либо CreateProcess, либо метод COM, связанный с операцией, в зависимости от того, что задано в первом булевом параметре. В случае CreateProcess, модуль 204 ДА использует только что сформированную командную строку 210, и метод начинается под пользовательским контекстом (например, приложения СОМ). Для целей обсуждения такое приложение показано как Авторизованный Процесс 210.
На этапе 314, если запрашиваемая операция выполняется успешно, то Авторизованный Процесс 210 компонует выводимый массив и регистрирует этот выводимый массив в файле 224 журнала регистрации. Для целей обсуждения такой выводимый массив показан в качестве соответствующей части "других данных" 226. В этом варианте осуществления, если выдаваемый тип выдаваемого результата метода представляет собой VT_BSTR или VT_ARRAY, то все элементы в массиве имеют тип VT_BSTR.
Иллюстративное Делегированное Администрирование
ТАБЛИЦА 11 показывает иллюстративный формат Хранилища 214 Политик Авторизации. Для более подробной информации о синтаксисе этого типа файла, см. Формат Файла Хранилища Политик Авторизации.
ТАБЛИЦА 11ИЛЛЮСТРАТИВНОЕ ХРАНИЛИЩЕ ПОЛИТИК АВТОРИЗАЦИИ
<img file="00000010.tif" he="72" wi="145" img-content="undefined" img-format="tif" /><img file="00000011.tif" he="39" wi="159" img-content="undefined" img-format="tif" />
<img file="00000012.tif" he="154" wi="154" img-content="undefined" img-format="tif" />
Примеры CmdLine и DACmdLineKeys
Приведенные ниже примеры показывают, как формируется командная строка для модуля на основе установок в файле 218 конфигурации и параметров, переданных методами Parameters и ExecuteMethod в качестве аргументов.
ТАБЛИЦА 12ИЛЛЮСТРАТИВНАЯ КОМАНДНАЯ СТРОКА - ПРИМЕР 1"SET w3svc/1/Root/AccessFlags 3"
Приведенный ниже пример показывает иллюстративный синтаксис файла 218 конфигурации, из которого получают иллюстративную командную строку ТАБЛИЦЫ 12.
Приведенные ниже параметры передают ExecuteMethod в качестве аргументов: ("Scope1", "SetFlags", true (истина), true). Следующий параметр в качестве аргумента передают Parameters: "3". Значение атрибута CmdLine метода равно "SET #mn#/#mp@l# #1#". Делегированное Администрирование 204 ("инструментальное средство") анализирует первую последовательность, разграниченную двумя символами # или $, в этом примере, #mn#. Инструментальное средство предпринимает попытку нахождения подузла IISDACmdLineKeys с атрибутом Name="mn". Делегированное Администрирование ИСИ определяет местонахождение AttributeName, к которому оно обращается, в этом примере к MetabaseNode; и Node, про который сказано, что в нем этот атрибут должен быть определен, в этом примере - IISDAScope. Инструментальное средство заменяет последовательность #mn# значением атрибута MetabaseNode, определенного в области действия "Scope1", потому что "Scope1" представляет собой область действия, заданную вызывающей стороной ExecuteMethod. В этом примере это значение представляет собой "w3svc/1/Root".
Делегированное Администрирование 204 оценивает следующую последовательность, разграниченную двумя символами # или $, в этом примере #mp@l#, для определения местонахождения подузла IISDACmdLineKeys с атрибутом Name="mp". Делегированное Администрирование 204 определяет местонахождение AttributeName, к которому оно обращается, в этом примере к MetabaseProperty; и Node, про который сказано, что в нем этот атрибут должен быть определен, в этом примере - Parameter. Поскольку "@1" присутствует в лексеме, инструментальное средство заменяет лексему #mp@l# значением атрибута MetabaseProperty, определенного для параметра с индексом 1, в этом примере - "AccessFlags".
Ввиду вышеизложенного, для создания этой командной строки имеют место следующие действия: "SET" используют в том виде, как он есть, потому что он не разграничен символами # или $; #mn# заменяют на "w3svc/1"; "/" используют в том виде, как он есть, потому что он не разграничен символами # или $, " #mp@l# заменяют на "AccessFlags"; и #1# заменяют значением параметра с индексом 1, которое равно 3.
ТАБЛИЦА 13ИЛЛЮСТРАТИВНАЯ КОМАНДНАЯ СТРОКА - ПРИМЕР 2"SET MetabaseNode AccessFlags 3".
Приведенный ниже пример показывает иллюстративный синтаксис файла 218 конфигурации, из которого получают иллюстративную командную строку ТАБЛИЦЫ 13.
Следующие параметры передают ExecuteMethod в качестве аргументов: ("Scope1", "SetFlags"). Следующий параметр в качестве аргумента передают Parameters: "3". Обратимся к синтаксису файла конфигурации для понимания нижеследующего обсуждения того, как формируют эту командную строку. Значение атрибута CmdLine метода представляет собой "SET $mn$ #mp@l# #1#". Делегированное Администрирование 204 анализирует первую последовательность, разграниченную двумя символами # или $, в этом примере - $mn$, и пытается найти подузел IISDACmdLineKeys с атрибутом Name="mn". Делегированное Администрирование находит AttributeName, к которому оно обращается, - MetabaseNode, и Node, про который сказано, что в нем этот атрибут должен быть определен, - IISDAScope, и заменяет последовательность $mn$ именем атрибута MetabaseNode, который определен в области действия "Scope1", поскольку "Scope1" представляет собой область действий, заданную вызывающей стороной ExecuteMethod. Делегированное Администрирование анализирует следующую последовательность, разграниченную двумя символами # или $, в этом примере #mp@l#, и пытается найти местонахождение подузла IISDACmdLineKeys с атрибутом Name="mp". Делегированное Администрирование определяет местонахождение AttributeName, к которому оно обращается, - MetabaseProperty, и Node, про который сказано, что в нем этот атрибут должен быть определен, -Parameter. Поскольку "@1" присутствует в лексеме, инструментальное средство заменяет лексему $mp@l$ значением атрибута MetabaseProperty, определенного для параметра с индексом 1, которым в этом примере является "AccessFlags".
В итоге, для создания этой командной строки имеют место следующие действия: "SET" используется в том виде, он есть, потому что он не разграничен символами # или $; #mn# заменяют на "MetabaseNode"; #mp@l# заменяют на "AccessFlags"; и #1# заменяют значением параметра с индексом 1, которое равно 3.
ТАБЛИЦА 14ИЛЛЮСТРАТИВНАЯ КОМАНДНАЯ СТРОКА - ПРИМЕР 3"SET 1 1 1"
Приведенный ниже пример показывает синтаксис файла конфигурации, из которого получают командную строку ТАБЛИЦЫ 14 .
Следующие параметры передают ExecuteMethod в качестве аргументов: ("Scope1", "SetFlags"). Следующие параметры в качестве аргументов передают Parameters: массив, содержащий следующие строки: "1", "1", "1". Обратимся к синтаксису файла конфигурации для понимания нижеследующего обсуждения того, как формируют эту командную строку. Значение атрибута CmdLine метода равно "SET #1# #2# #3#". Инструментальное средство анализирует первую последовательность, разграниченную двумя символами # или $, в этом примере #1#. Поскольку существует цифра между двумя символами #, инструментальное средство заменяет эту лексему значением первого параметра. Инструментальное средство выполняет ту же самую процедуру для следующих двух лексем: #2# и #3#.
ТАБЛИЦА 15ИЛЛЮСТРАТИВНАЯ КОМАНДНАЯ СТРОКА - ПРИМЕР 4"#1# #2# #4#"
Приведенный ниже пример показывает командную строку, которая вызывает ошибку, предоставляя неправильное количество параметров способу Parameters. Ниже приведен синтаксис файла конфигурации, из которого получают командную строку ТАБЛИЦЫ 14.
Следующие параметры передают ExecuteMethod в качестве аргументов: ("Scope1", "SetFlags"). Следующие параметры в качестве аргументов передают Parameters: массив, содержащий следующие строки: "1", "1", "1".
В этом примере модуль 204 Делегирования Администрирования выдает ошибку, потому что командная строка обращается к параметру с индексом 4 (определяя #4# в атрибуте CmdLine), но Parameters принимает только три параметра. Соответственно, командная строка не формируется.
Иллюстративный Файл Конфигурации
Приведенный ниже файл 218 конфигурации определяет метод "SetProperty" и ассоциированные отображения: область действия, именуемую “www.fabrikam.com”, для пользователя; формат файла журнала регистрации; и шаблон для лексем командной строки.
ТАБЛИЦА 16ИЛЛЮСТРАТИВНЫЙ ФАЙЛ КОНФИГУРАЦИИ
<img file="00000017.tif" he="131" wi="145" img-content="undefined" img-format="tif" /><img file="00000018.tif" he="46" wi="137" img-content="undefined" img-format="tif" />
Метод SetProperty
В примере, приведенном в ТАБЛИЦЕ 16, этот метод соответствует методу с OperationID=1 в хранилище 214 политик авторизации. Путь исполняемой программы или командная строка 210, которая выполняет запрашиваемое действие, следующий: "C:Adsutil.exe". Шаблон командной строки для этого метода: "SET #mn# #1#". Лимит времени ожидания для этого метода, подлежащего выполнению, равен 10 секундам. Разделитель или описание не определены. Метод имеет только один параметр с именем "Flags", который соответствует свойству "AccessFlags" в метабазе ИСИ. Метод определяет имя объекта "MyObject" (соответствующее экземпляру объекта "Scripting. FileSystemObject") как пригодное к использованию BizRule, связанному с задачей, которая обращается к операции с идентификатором 1 в хранилище политик авторизации.
В примере, приведенном в ТАБЛИЦЕ 16, область действия, определенная как "www.fabrikam.com", соответствует области действия с именем "Scope1" в хранилище, расположенном в "C:Store.xml". Эта область действия в этом хранилище определена под приложением "SecurityApplication". Доступ к этой области действия вызывает аудит, используя имя "Scope1" для идентификации записи в системном журнале регистрации EventLog.
Формат Лексемы Командной строки
Этот шаблон задает, что атрибут CmdLine метода "SetProperty" может использовать (помимо лексем "ключевые слова" и #D# для значений параметров) только лексемы, которые включают в себя ключ "mn", который идентифицирует по имени (используя $mn$) или значению (используя #mn#) атрибут с именем "MetabaseNode", определенный под "IISDASCOPE", соответствующий области действия, определенной в качестве параметра для ExecuteMethod.
Иллюстративный Сценарий: Как Работает ExecuteMethod
Обратимся к следующей упрощенной конфигурации и файлам Менеджера Авторизации для понимания того, как ExecuteMethod работает в этом сценарии. Файл 218 конфигурации приведен ниже:
Иллюстративное хранилище 214 политик авторизации приведено ниже:
Приведенные ниже допущения применяются к этому иллюстративному сценарию: запись системного реестра HKLMSoftwareMicrosoftIISDelAdmmDelegAdminMappingPath (REG_SZ) определена и содержит следующую строку: "C:DelegAdminConfigConfig.xml" - файл 218 конфигурации. Объект Delegadm.dll выполняется в приложении COM+ (т.е. авторизованном процессе 210), идентификационные данные которого подразумевают доступ на чтения в отношении этой записи системного реестра.
Пользователь, например, "user1", идентифицируется в хранилище следующим идентификатором безопасности под группой ApplicationAccessGroup:
Этот пользователь осуществляет запрос в приложение (например, приложение 206 Удаленного Администрирования Web-сайта клиента) для выполнения метода "SetAccessProperty". В запросе областью действия является "ScopeUser1", метод - "SetAccessProperty", а параметр для метода равен "1". На странице .asp выполняется приведенный ниже упрощенный код на основе этого запроса:
Этот код будет пытаться предоставлять возможность пользователю user1 устанавливать свойство AccessFlags в 1 для сайта, соответствующего "ScopeUser1", вызывая метод "SetAccessProperty" и используя интерфейсы ИПП Менеджера Авторизации.
Иллюстративная Обработка ExecuteMethod
Для выполнения этой задачи внутри ExecuteMethod выполняют следующие этапы: подтверждают корректность заданных параметров. Как отмечено в синтаксисе метода "Parameters", параметром для метода Parameters может быть либо строка, либо массив строк. В этом примере параметр приемлем потому, что он представляет собой строку. Если параметр отклоняют, регистрируют соответствующий код ошибки. Объект предпринимает попытку получения значения записи системного реестра HKLM_Software_Microsoft_IISDelAdmin_DelegAdminMappingPath. В этом примере значение определяют как C:DelegAdminConfigConfig.xml. Идентификационные данные приложения COM+ подразумевают доступ к этому значению. Если приложение не может прочесть значение записи системного реестра, оно регистрирует ошибку.
CMD Line
Поскольку операция не была выполнена, поле в файле журнала регистрации будет содержать значение атрибута CmdLine узла IISDAMethod, который соответствует методу SetAccessProperty.
После получения приложением доступа к файлу конфигурации оно ищет файл конфигурации для области действия "ScopeUser1", которое задано в качестве параметра. Если область действия не найдена, регистрируется ошибка. Ошибка может появиться, даже если имеется узел "IISDAScope", который содержит атрибут PublicName со значением "www.fabrikarn.com", если этот узел не имеет всех используемых атрибутов.
После того как область действия найдена, соответствующий узел IISDAScope считывается, и приложение знает, что "ScopeUser1" отображается на область действия с именем "Scope1" в хранилище политик авторизации, определенном в атрибуте AZStorePath, которым в этом примере является "C:DelegAdminStoresUser1.xml". Приложение также получает имя приложения в хранилище, под которым определена область действия "Scope1", через значение атрибута AZApplicationName, которым в этом примере является "SiteAdminApp".
После подтверждения действительности открытого имени области действия, подтверждают действительность имени метода. Приложение ищет заданное имя метода в файле 118 конфигурации, которым в этом примере является "SetAccessProperty". Если метод не находят, то регистрируют соответствующий код ошибки. Ошибка может появиться, даже если имеется узел "IISDAMethod", который содержит атрибут PublicName со значением "SetAccessProperty", если этот узел не имеет всех используемых атрибутов.
После того, как найдено имя метода, считывается соответствующий узел IISDAMethod. Инструментальное средство теперь отображает метод "SetAccessProperty" на операцию, определенную в атрибуте AZStorelD, которым в этом примере является "1". Как определено в синтаксисе файла политики, только одна задача в хранилище политик авторизации может обращаться к этому методу. Если в хранилище политик авторизации к этому методу обращается более одной задачи, то AccessCheck может отказать в доступе к области действия. Это может произойти потому, что бизнес-правило в отношении одной из задач отказало в доступе к области действия.
Наряду с атрибутами считываются подузлы узла IISDAMethod для извлечения информации о параметрах метода и интерфейсов, которые будут использоваться в бизнес-правиле задачи, которая обращается к этой операции (в этом примере операция с идентификатором "1"). Если ошибка происходит в процессе подтверждения действительности, то регистрируется соответствующий код ошибки. Ошибка может произойти потому, что используемые внутри подузлов Parameter или Interface атрибуты отсутствуют в определении узла IISDAMethod. Количество параметров, определенных в файле конфигурации, соответствует количеству параметров, которые установлены перед вызовом ExecuteMethod (при помощи метода Parameters). В противном случае регистрируется определенный код ошибки.
Приложение предпринимает попытку инициализации объекта Хранилище Авторизации, используя путь хранилища, которым в этом примере является "C:DelegAdminStoresUser1.xml", и открывает соответствующее приложение в этом хранилище, которым в этом примере является "SiteAdminApp". Если одна из операций даст сбой, будет перехвачено исключение, и результат будет зарегистрирован.
Приложение собирает информацию о вызывающей стороне (которой в этом примере является user1) и формирует параметры для AccessCheck. Следующая ТАБЛИЦА 17 описывает параметры AccessCheck, используемые в этом примере.
ТАБЛИЦА 17ИЛЛЮСТРАТИВНЫЙ НАБОР ПАРАМЕТРОВ ACCESSCHECK
Параметр AccessCheck
Описание
bstrObjectName
Поскольку узел IISDAScope, в котором "ScopeUser1" определен, задает, что GenerateAudits="1", этот параметр имеет значение атрибута AuditName, которым в этом примере является "Scope1".
varScopeNames
Параметр "ScopeUser1" области действия отображается на название области действия "Scope1" в Хранилище Авторизации. Он представляет собой значение этого параметра для AccessCheck.
varOperations
Этот параметр содержит идентификатор операции хранения, представляющей интерес для нас, который в этом примере равняется 1.
varParameterNames
Этот параметр содержит массив имен параметров. В этом примере метод имеет только один определенный подузел Parameter, которым является "Flags".
varParameterValues
Этот параметр содержит массив со значениями параметров, соответствующими именам параметров, определенным в массиве выше. Этот пример использует только один параметр со значением "1".
varlnterfaceNames
Этот параметр содержит список имен объектов, потому что эти имена используются в бизнес-правиле, определенном в задаче, которая обращается к операции с идентификатором 1. В этом примере есть только один подузел Interface, и массив содержит только значение атрибута Name этого подузла, которым является "MyFSOObject".
varlnterfaceFlags
Этот массив содержит только один элемент, соответствующий имени объекта, описанному выше. Он представляет собой значение атрибута Flags в подузле Interface, который равняется 9600.
varlnterfaces
Этот параметр представляет собой массив (с одним элементом в этом примере) указателей интерфейса IDispatch), полученных во время попыток создания экземпляра объекта, который определен посредством ProgID, определенного в атрибуте ProgID подузла Interface. В этом примере этот ProgID представляет собой "System. FileSystemObject". Если экземпляр этого объекта не может быть создан, выдается код конкретной ошибки.
Если процесс формирования параметров для AccessCheck завершается успешно, то вызывают функцию и проверяют результат. В этом примере пользователю User1 предоставляют доступ к области действия "Scope1" на основе определенных параметров и двух файлов XML. Если эти функции дают сбой, то генерируется исключение. Если AccessCheck отказывает в доступе пользователю, то регистрируется определенный код ошибки.
Если функция предоставляет пользователю доступ к "Scope1", то формируют командную строку 210 для исполняемого модуля (т.е. потому, что значение атрибута ProcessType в этом примере равно "CMD"), и вызывают исполняемый модуль, используя сформированную командную строку. В этом примере командная строка формируется следующим образом: #Path# заменяют значением атрибута MetabaseNode, определенного под узлом IISDAScope, который соответствует найденной области действия, которая представляет собой IIS: // Localhost/W3svc/1. #Flag@1# заменяют значением атрибута MetabaseProperty, определенного для значения параметра с индексом 1, который в этом примере равен AccessFlags. #1# заменяют значением первого параметра, который в этом примере равен 1. Это означает, что командная строка для исполняемого модуля представляет собой "SET IIS://W3svc/1/Root/AccessFlags 1". Приведенный ниже пример показывает полную командную строку, которая выполняется: C:adsutil.exe SET IIS://w3svc/1/Root/AccessFlags 1.
В общем, если во время формирования командной строки случается ошибка (например, если использовались недопустимые последовательности, такие как определение ключа в виде #KEY$, или если использовались неопределенные ключи), то приложение регистрирует ошибку.
Заключение
Описаны системы и способы для делегирования доступа к ресурсам, размещенным в разделенной вычислительной среде. Хотя системы и способы были описаны на конкретном языке специфическом для структурных признаков и методологических операций, объем изобретения, определяемый прилагающейся формулой изобретения, не обязательно ограничивается описанными конкретными признаками или операциями. Напротив, конкретные особенности и операции раскрыты как иллюстративные формы осуществления заявленного изобретения.