Microsoft Developer Network > Переводы статей MSDN
Статья для разработчиков под Windows Vista: требования к разработке приложений с точки зрения механизма управления учетными записями пользователей (UAC)
Для чего нужно управление учетными записями пользователей?
Разработчики часто создают приложения для Microsoft Windows, которые требуют излишних пользовательских прав и привилегий. В результате обычный пользователь должен обладать полномочиями администратора, и очень немногие пользователи работают с минимально необходимым в операционной системе набором прав и привилегий. Предприятия пытаются найти баланс между безопасностью и удобством развертывания и использования, но из-за возникающих проблем с совместимостью обычных пользовательских приложений вынуждены устанавливать их с административными правами.
Есть и другие причины, почему на компьютерах с операционными системами-предшественницами Microsoft Windows Vista трудно работать с привилегиями стандартного пользователя:
- Многие Windows-приложения требуют, чтобы зарегистрировавшийся пользователь был администратором, но на самом деле им не нужен доступ на уровне администратора. Эти приложения перед своим запуском выполняют различные проверки административного доступа, включая следующее:
a. проверка маркера доступа администратора;
b. запросы на доступ к защищенным папкам системы с уровнем «Полный доступ»;
c. запись данных в защищенные папки %ProgramFiles%, %WinDir%, и в реестр HKLM\Software.
- При проектировании многих Windows-приложений не учитывалась концепция минимальных привилегий, и функциональность для пользователя и для администратора не разделены на два разных процесса.
- В Windows 2000 и XP каждая новая учетная запись для нового пользователя по умолчанию создается с административными полномочиями. Поэтому такие ключевые компоненты Windows – панель управления датой и временем или управление питанием – не работают должным образом для стандартного пользователя.
- В Windows 2000 и Windows XP администраторы должны создавать две отдельные пользовательские учетные записи — одну для выполнения административных задач, а другую для повседневных. Поэтому пользователи вынуждены для выполнения любой административной задачи выходить из системы, если они работали как обычный пользователь, и регистрироваться заново как администратор, либо использовать возможность запуска команд с правами другого пользователя.
Механизм управления учетными записями пользователей (User Account Control, UAC) упрощает развертывание стандартных пользовательских настольных систем с обычными полномочиями, как в масштабах предприятия, так и дома.
Переделывая архитектуру системы безопасности Windows, которая изначально проектировалась для операционной системы Microsoft Windows NT 3.1, команда разработчиков UAC хотела реализовать более гибкую и безопасную стандартную модель пользователей. В предыдущих версиях Windows во время процесса регистрации для администратора создавался один маркер доступа. В него входит большинство привилегий Windows и административных идентификаторов безопасности (SID - security identifier). Этот маркер доступа обеспечивает администратору возможность установки приложений, настройки операционной системы и доступа ко всем ресурсам.
Команда разработчиков UAC подошла к процессу создания маркеров доступа в Windows Vista совершенно по-другому. Когда на компьютере с Windows Vista регистрируется пользователь с административными полномочиями, создаются два маркера доступа: фильтрованный маркер доступа обычного пользователя и полный маркер доступа администратора. При запуске рабочего стола (Explorer.exe) вместо маркера доступа администратора используется маркер доступа стандартного пользователя. Все процессы-потомки наследуют полномочия от этого запущенного сервиса рабочего стола (процесс explorer.exe), что помогает уменьшить зону уязвимости Windows Vista. По умолчанию все пользователи, включая администраторов, регистрируются на компьютере с Windows Vista как обычные пользователи.
http://www.microsoft.com/rus/msdn/publish/articles/wvduac.mspx