Одна из основных задач ИТ-администратора состоит в управлении безопасностью, и в этом смысле управление платформой SharePoint не составляет исключения. Но надо сказать, что SharePoint отличается от большинства других ИТ-систем. Так, SharePoint часто развивается подобно живым организмам и почти не несет на себе следов структурирования или управления. А администраторы-исполнители обычно хотят, чтобы SharePoint была гибкой системой, и предоставляют ей возможность удовлетворять динамичные потребности организации. Еще одно обстоятельство, отличающее обеспечение безопасности SharePoint от защиты других систем, состоит в идее децентрализации. Децентрализация означает, что вы делегируете задачи по обеспечению безопасности сотрудникам, не входящим в группу ИТ-специалистов, например контент-менеджерам. Возможно, идея такого делегирования привлекательна, но она сопряжена с угрозой безопасности. Если же возникает проблема, виноватыми обычно оказываются сотрудники ИТ-подразделения.
Предлагаемая вашему вниманию статья поможет научиться управлять разрешениями, сохраняя при этом гибкое, но безопасное развертывание SharePoint. Вы научитесь прерывать наследование, создавать настраиваемые уровни разрешений, а также предоставлять разрешения пользователям или группам. Кроме того, я изложу рекомендации, которые помогут вам следовать оптимальным методам работы с учетом потребностей компании в сфере безопасности.
Настройка разрешений
Семейство сайтов — это иерархия веб-узлов, в которой каждый узел содержит списки и библиотеки, включающие такие элементы, как файлы, контакты, объявления и веб-страницы. Семейство сайтов определяет границу безопасности вокруг упомянутого контента, так что пользователи, имеющие доступ к любому контенту коллекции, относятся к числу пользователей семейства сайтов. Администраторы могут предоставлять доступ к семейству сайтов напрямую — как пользователю, или опосредованно — через группу Active Directory (AD) либо группу SharePoint. Если вы используете поставщика с настраиваемой системой аутентификации, то можете также предоставлять доступ SharePoint к конкретному участнику безопасности. Неважно, имеют ли пользователи доступ ко всему содержимому семейства сайтов или к одной библиотеке документов, запрятанной глубоко внутри, эти пользователи считаются пользователями семейства сайтов. Разрешения на доступ к одному семейству сайтов на другие семейства не распространяются; это означает, что безопасность каждого семейства сайтов обеспечивается автономно.
Разрешения в семействе сайтов действуют так же, как разрешения NTFS. По умолчанию разрешение на доступ в семействе сайтов наследуется от родительского сайта. Таким образом, если в семействе сайтов пользователю предоставляется право на чтение содержимого сайта верхнего уровня, это разрешение на чтение будет распространяться на содержимое всех сайтов семейства. Подобным же образом, если пользователю предоставляется право на чтение содержимого сайта, расположенного на более низком уровне, это разрешение будет применяться лишь к данному сайту, а также к сайтам, расположенным ниже.
Доступ к содержимому предоставляется с помощью уровней разрешений. Уровни разрешений представляют собой простые в применении сочетания индивидуальных разрешений. Примером встроенного уровня разрешений может служить уровень Contribute, который означает, что пользователь имеет разрешение на доступ с правом просматривать содержимое, добавлять, обновлять и удалять его. Можно также, как мы скоро увидим, создавать пользовательские разрешения.
Фактический объем полученных пользователем разрешений определяется как сумма предоставленных разрешений. Если, скажем, пользователь получил на некотором сайте уровни разрешения Contribute и Design, фактически он сможет выполнять действия как в рамках уровня Contribute, так и в рамках уровня Design.
Прерывание наследования
Первоначально наследование SharePoint распространяется на все содержимое семейства сайтов от верхнего уровня иерархии до нижнего. Это означает, что в семействе сайтов вы можете изменять разрешения только для веб-сайта самого верхнего уровня. При этом можно прерывать наследование, создавая уникальные разрешения на уровне веб-сайта, списка/библиотеки, папки или на уровне элемента. На рисунке представлен пример иерархии в семействе сайтов и наследования разрешений.
Для прерывания наследования сначала нужно перейти на страницу разрешений, это можно сделать так:
- если речь идет о веб-сайте, последовательно выбирайте Site Actions, Site Settings, Advanced Permissions;
- если речь идет о списке или о библиотеке, выбирайте Settings, List (или Library) Settings, Permissions;
- если речь идет о папке или элементе, откройте контекстное меню данного элемента и выберите пункт Manage Permissions.
На странице разрешений выберите пункты Actions, Edit Permissions и подтвердите действие нажатием кнопки ОК. Таким образом, наследование будет прервано, а все разрешения скопированы на текущий уровень. Кроме того, будет сформировано новое правило для данного и более низких уровней. После прерывания наследования вы можете восстановить его, но все созданные вами уникальные разрешения будут при этом потеряны. Для восстановления наследования на странице разрешений выберите элементы Actions, Inherit Permissions.
Создание группы SharePoint
Как и группы в других системах, группы SharePoint облегчают процесс предоставления разрешений. Можно помещать учетные записи пользователей, групп AD или участников безопасности из настраиваемого поставщика в группы SharePoint. Обратите внимание, что хотя вы можете создать группу на сайте более низкого уровня, она будет храниться на сайте самого высокого уровня. Чтобы создать группу SharePoint, выберите пункты Site Actions, People and Groups. В меню New выделите пункт New Group.
Предоставление доступа группам и пользователям
Предоставлять разрешения можно на самом верхнем сайте иерархии семейства сайтов или на любом другом уровне, где было прервано наследование. На странице разрешений выберите элементы New, Add Users. Выделите пользователей или группы, которым хотите предоставить разрешения, и выберите желаемые уровни разрешений. В этом контексте группы могут быть группами AD или SharePoint. На той же странице можно также включать пользователей в группы SharePoint, и тогда все разрешения, предоставленные группе, будут распространяться и на этих пользователей. Отметим, что группы SharePoint не могут содержать другие группы SharePoint.
Создание настраиваемого уровня разрешений
Часто встроенные уровни разрешений оказываются слишком общими. Например, вы хотите, чтобы пользователи имели только права view, edit и create. Этот уровень разрешений подобен уровню Contribute — с той лишь разницей, что в нем не указано право delete. Хотя вы можете вносить изменения во встроенные уровни разрешений (скажем, удалить из уровня Contribute право delete), делать так не рекомендуется. Чтобы создать новый уровень, перейдите на страницу разрешений, как показано выше, и выберите пункты Settings, Permission Levels, Add a Permission Level. Новый уровень разрешений можно создавать и на базе существующего. Необходимо просто выбрать уровень разрешений на экране Permission Levels, а затем нажать кнопку Copy Permission Level, расположенную в нижней части страницы.
Основные сведения об экране All People
Экран All People относится к числу тех экранов SharePoint, в которых пользователи разбираются хуже всего. Распространенное заблуждение состоит в том, что этот экран представляет всех пользователей, которые имеют те или иные разрешения на доступ к содержимому данного семейства сайтов. Это не так. Давайте рассмотрим три ситуации, при которых пользователь может оказаться в этом списке.
- Пользователю предоставляется непосредственное разрешение на том или ином уровне в семействе сайтов. Пример: Бобу предоставлены разрешения Contribute применительно к содержимому проекта Project A.
- Пользователь включается в одну из групп SharePoint внутри семейства сайтов. Пример: Алису ввели в состав группы SharePoint, именуемую Portal Members.
- Пользователь получил доступ через группу AD, зарегистрировался на одном из сайтов семейства сайтов и создал либо модифицировал некий элемент.
Удаление пользователя из семейства сайтов не обязательно лишает его доступа. Так происходит лишь в том случае, если пользователь получил в рамках этого семейства прямое разрешение. Чтобы лишить пользователя доступа, получившего его через группу SharePoint или AD, нужно вывести пользователя из состава этой группы. Причем удаление учетных записей пользователей из состава группы не влечет за собой их удаление из списка All People; в списке представлены имена пользователей, которые имели доступ в тот или иной момент времени.
Блокирование доступа
Пока я говорил только о предоставлении доступа. А что если у вас возникла необходимость лишить конкретного пользователя права обращаться к содержимому? Такая функция предусмотрена, но вы не можете реализовать ее на уровне семейства сайтов. Это следует делать на более высоком уровне — на уровне веб-приложения. Лишая пользователя права доступа на уровне веб-приложения, вы блокируете его доступ ко всему содержимому в любом семействе сайтов внутри данного веб-приложения. Чтобы заблокировать доступ, перейдите в раздел Central Administration. Выберите пункты Application Management, Policy for Web application. На появившемся экране выделите нужное веб-приложение. Можно лишить пользователя права записи или полностью заблокировать доступ. Любая политика, заданная здесь, будет «незримо» изменять любое право доступа, предоставленное на уровне семейства приложений, и не будет отображаться внутри любого семейства сайтов.
Именно на этом экране можно предоставлять разрешения full read или full control, применяемые ко всем семействам сайтов внутри веб-приложения. Эта возможность окажется кстати, если возникнет необходимость обеспечивать работу группы юристов или аудиторов, которым требуется общий доступ ко всему содержимому. В таком случае сведения о предоставленном доступе будут недоступны для посторонних.
Изменение или переназначение администраторов семейства сайтов
Администратор семейства сайтов управляет семейством сайтов. Эта роль часто делегируется пользователям внутри организации (не входящим в ИТ-подразделение), которые отвечают за управление и обеспечение защиты содержимого. Эти пользователи имеют разрешения full control, применимые ко всему содержимому внутри семейства сайтов даже в случае прерывания наследования. При создании семейства сайтов необходимо указать одного или двух пользователей, которые будут выполнять обязанности администраторов семейства сайтов. Эти обязанности не может выполнять группа AD. Если требуется поменять местами главного и подчиненного администраторов, это можно сделать, перейдя в раздел Central Administration и выбрав пункты меню Application Management, Site collection administrators.
Если вы хотите назначить для управления семейством сайтов более двух администраторов, можете добавить соответствующих пользователей (или группы AD) в группу SharePoint с именем Owners, но имейте в виду, что наследование разрешений может заблокировать этим пользователям доступ. Можете также предоставить им разрешение full control to the web application, как было сказано в разделе «Блокирование доступа».
К сказанному я хотел бы добавить, что в SharePoint предусмотрено наличие одного или нескольких администраторов ферм. По умолчанию эти пользователи не имеют доступа ни к одному из семейств сайтов, но они могут регистрироваться в Central Administration и добавлять себя в качестве администратора семейства сайтов. Кроме того, они могут изменять политики веб-приложений, так что, не имея широких прямых полномочий, такой пользователь обладает тем не менее большими возможностями.
Рекомендации
Теперь, когда вы понимаете основные принципы обеспечения безопасности в SharePoint и знаете, как выполняются отдельные связанные с этим операции, позвольте мне высказать некоторые соображения относительно управления разрешениями и рассказать об оптимальных методах решения данной задачи.
Когда предоставлять разрешения группам AD? Если в вашей организации имеется полный и точный список групп безопасности AD, которые представляют соответствующие роли в организации, следует использовать эти группы для обеспечения доступа к SharePoint. Нужно просто добавить группу AD к группе SharePoint, представляющей разрешение, которое вас интересует. Это наиболее распространенная форма доступа, и управлять ею проще всего.
Когда добавлять пользователей в группы SharePoint? Применяйте этот подход, если в вашей организации нет хорошо управляемых групп AD или если администраторы вашего семейства сайтов лишены простой возможности настройки либо запроса изменений в членстве групп AD. В качестве примера можно взять доступ к веб-сайтам на базе проектов, где вы создаете группы SharePoint для каждого проекта.
Когда предоставлять разрешения отдельным пользователям? Индивидуальные разрешения хорошо функционируют в особых ситуациях — их можно предоставлять владельцам сайта или сотрудникам, имеющим дело с конфиденциальным содержимым, таким как данные о зарплате служащих. Такие разрешения нужно использовать как можно реже. Дело в том, что они затрудняют диагностику доступа или дублирование доступа в случаях, когда один пользователь покидает компанию, и его место занимает другой.
Хотя модель безопасности SharePoint характеризуется высокой степенью детализации, при прерывании наследования и предоставлении новых разрешений, касающихся всех семейств сайтов, быстро возникает ощущение хаоса. Советую с осторожностью использовать метод прерывания наследования, а для этого вам придется так структурировать содержимое, чтобы вы могли в максимальной степени использовать наследование.
К сожалению, средства для генерации отчетов по разрешениям (покажите мне все ресурсы, к которым имеет доступ Алиса) и для дублирования разрешений (предоставьте Бобу те же разрешения, что имеет Алиса) в стандартной платформе SharePoint не предусмотрены. Однако эти средства можно реализовать программно с помощью объектной модели SharePoint. Сведения об объектной модели можно найти в статье «Server and Site Architecture: Object Model Overview», опубликованной по адресу http://msdn.microsoft.com/en-us/library/ms473633.aspx.
Кроме того, сторонние производители поставляют множество утилит, позволяющих удовлетворять такие потребности в сфере управления разрешениями. Два хороших примера: утилита Site Administrator for SharePoint от фирмы Quest Software и программа DeliverPoint от компании Lightning Tools.
Что ж, теперь вы вооружены основными принципами обеспечения безопасности, знаете, как выполнять задачи, связанные с управлением разрешениями, и имеете представление об оптимальных методах работы с ними. А значит, вам вполне по силам создать хорошо защищенную и в то же время гибкую среду SharePoint. И будем надеяться, что в ней воцарится атмосфера взаимопонимания!
Рэнди Уильямс (RWilliams@synergyonline.com) — MVP по SharePoint Server, старший консультант в компании Synergy Corporate Technologies