Рэнди Уильямс (RWilliams@synergyonline.com) — MVP по SharePoint Server, старший консультант в компании Synergy Corporate Technologies
Для большинства компаний эффективная система безопасности является просто необходимой вещью для защиты и сохранения контента Microsoft SharePoint. В зависимости от области деятельности, вы можете быть связаны правилами, которые требуют наличия безопасного и контролируемого доступа к определенному контенту. Конечно, система безопасности – это обширная тема, которая охватывает не только администраторов фермы SharePoint, но и администраторов серверов, сетевой инфраструктуры и баз данных. Кроме делегирования управления администраторам коллекций сайтов и владельцам сайтов в бизнес-подразделениях система безопасности также включает ежедневное обслуживание конечных пользователей. В целях оптимизации работы информационных служб необходима кооперация.
В ответ на увеличение числа сторон, заинтересованных в управлении системой безопасности, SharePoint 2010 предлагает гибкую модель системы безопасности, которая поддерживает несколько типов аутентификации и уровней авторизации разрешений. Но эта гибкость имеет и оборотную сторону: без понятной, документированной стратегии использования управления разрешениями в организации неразбериха в системе безопасности может затруднять работу. Учитывая все составляющие, неудивительно, что система безопасности может оказаться сложной.
Убежден, что зная требования вашей системы безопасности и вооружившись техническими инструкциями и здравым смыслом, можно построить модель системы безопасности, которая будет и эффективной, и надежной. В этой статье я начну с азов, расскажу о некоторых пошаговых процедурах и постараюсь разъяснить общий смысл модели авторизации SharePoint. В основном мы сосредоточимся на ферме и работе через веб-приложения и коллекции сайтов, а затем перейдем к индивидуальным сайтам, спискам, библиотекам и элементам.
Логическая иерархия SharePoint
Прежде чем углубиться в настройки разрешений, давайте рассмотрим базовую терминологию среды SharePoint. Понятие «ферма SharePoint» относится ко всем серверам (то есть к внешним веб-серверам, серверам приложений и серверам баз данных), которые работают вместе для предоставления клиентам служб SharePoint. Внутри фермы организация контента выполнена по иерархической структуре, как показано на рисунке 1. Цель этой иерархии – организовать и обезопасить большое количество контента внутри SharePoint.
Рисунок 1. Логическая иерархия SharePoint |
Защита фермы
Защита информации фермы – процесс не очень сложный. Разрешения зачастую выполняются по принципу «все или нечего»: либо вы администратор фермы, либо нет. У администратора фермы есть права абсолютного контроля, включая управление веб-приложениями, запуск или остановку служб, резервное копирование или восстановление фермы. Практически любое задание можно найти в Central Administration в веб-интерфейсе администрирования SharePoint. Администратор фермы может каждому предоставить доступ к контенту внутри SharePoint. Таким образом, администратор фермы – фигура весьма могущественная, и следует с большой осторожностью давать такой уровень доступа.
Административный доступ к ферме предоставляется при добавлении пользовательских групп Active Directory или групп системы безопасности к группе администраторов фермы в Central Administration:
— в Central Administration щелкните ссылку Security, затем выберите Manage The Farm Administrators Group;
— добавьте или удалите пользователей или группы Active Directory, если потребуется.
Чтобы выполнить определенные административные задачи, такие как создание веб-приложений, также необходимо быть локальным администратором Windows на веб-сервере или серверах, которые запускают веб-приложение Central Administration.
Предоставление доступа из PowerShell
Хотя среда Central Administration применяется для выполнения ежедневных операций, Windows PowerShell весьма продуктивен в части администрирования и автоматизации функций SharePoint, и все это из интерфейса командной строки.
Чтобы предоставить кому-то разрешения на запуск команд PowerShell, используйте команду Add-SPShellAdmin. Она дает необходимые разрешения на серверах SharePoint, базах данных конфигураций и дополнительно — на базе данных контента SharePoint. Если вы запускаете эту команду без указания базы данных, пользователю дается доступ только к ферме, а не к любой базе данных контента. Чтобы предоставить пользователю возможность запускать все команды внутри базы данных контента (например, чтобы задействовать Get-SPWeb для запуска сайта), используйте ключ -database для предоставления доступа к базе данных контента.
Чтобы использовать команду Add-SPShellAdmin для предоставления доступа PowerShell, нужно быть администратором фермы, локальным администратором на сервере, на котором запускается команда, и администратором системы безопасности на сервере базы данных, для которого вы даете разрешения.
Защита веб-приложения
Веб-приложение является точкой входа пользователя SharePoint. Как правило, оно состоит из одного или нескольких веб-сайтов Microsoft Internet Information Server (IIS), которые контролируют процесс аутентификации пользователей. У организаций обычно есть несколько веб-приложений, чтобы изолировать определенные типы контента или группы пользователей, такие как Record Center или внешняя сеть. При предоставлении разрешений на доступ к веб-приложениям единственная цель – отслеживать, кто имеет доступ к контенту внутри коллекций сайта, которые ассоциируются с веб-приложениями. Другими словами, вы не можете дать кому-либо разрешение на администрирование веб-приложения. Это разрешение можно предоставить только администраторам фермы, и у них должен быть административный контроль над всеми веб-приложениями.
Чтобы настроить разрешения доступа к контенту внутри веб-приложения, измените пользовательскую политику для веб-приложения. Эти изменения вы можете внести в Central Administration:
- Внутри Central Administration щелкните по Application Management.
- Выберите Manage Web Applications.
- Выделите веб-приложение и нажмите кнопку User Policy в меню Ribbon.
- Добавьте или отмените разрешения.
Замечу, что поскольку разрешения можно настраивать для индивидуальных коллекций сайтов (о которых я расскажу в следующем разделе), разрешения обычно таким образом не предоставляются. Этот способ предполагает много власти и используется для особых целей. Например, вы решили применять его для предоставления доступа «только на чтение» аудиторам, дабы убедиться, что у них есть доступ ко всем коллекциям сайтов в веб-приложении. Более того, эта политика веб-приложения является единственным методом запрета доступа кому-либо к SharePoint. Данная настройка имеет приоритет над всеми предоставленными разрешениями. Кроме того, разрешения, которые вы предоставляете здесь, не являются видимыми на более низких уровнях. Например, администратор коллекции сайтов не может видеть, кому были даны разрешения через политику веб-приложения. Повторюсь, этот метод настройки разрешений дает большую власть, но он изначально очень рискованный, поэтому используйте его осмотрительно.
Анонимный доступ
Анонимный доступ позволяет неаутентифицированным пользователям (то есть гостям) получить доступ к веб-приложению SharePoint. Анонимный доступ широко используется для сайтов Интернета, но может применяться и во внутренних сетях. Анонимный доступ можно активировать вне зависимости от того, используется ли аутентификация на базе требований или классическая аутентификация. Приведем пошаговую инструкцию предоставления анонимного доступа.
- Внутри Central Administration щелкните Application Management.
- Выберите Manage Web Applications.
- Выделите веб-приложение и нажмите в меню кнопку Authentication Providers.
- Выберите зону. Зона А позволяет предоставлять веб-приложение с уникальным URL. У вас может быть до пяти зон на одно веб-приложение. Все зоны имеют доступ к базам данных контента и коллекциям сайтов, которые ассоциируются с этим веб-приложением.
- Установите флажок Enable Anonymous Access и нажмите Save.
Отметим, что по умолчанию у анонимных пользователей нет доступа к коллекциям сайтов до тех пор, пока им не дано разрешение. Таким образом, после активации анонимного доступа вы должны определить, какие разрешения есть у анонимных пользователей (эту тему мы рассмотрим в разделе «Предоставление анонимного доступа»).
Защита коллекции сайтов
Хотя вы можете предоставлять разрешения доступа к нескольким коллекциям сайтов через политику веб-приложения, оставьте этот способ для особых обстоятельств. Пользователи аутентифицируются на уровне веб-приложения, а авторизация обычно выполняется на уровне коллекции сайтов. Другими словами, при постоянном ежедневном управлении вам нужно назначать разрешения через коллекции сайтов.
По умолчанию разрешения наследуются или передаются последовательно всем веб-сайтам, спискам, библиотекам, папкам и элементам в иерархии коллекции сайтов. Таким образом, разрешения, которые предоставляются сайту верхнего уровня, также применяются к документу, запрятанному в глубины коллекции сайтов. Как вы понимаете, это наследование свойств может быть остановлено.
Самый высокий уровень доступа внутри коллекции сайтов принадлежит администратору коллекции сайтов. У этого пользователя есть полный доступ ко всему контенту SharePoint (то есть к сайтам, спискам, библиотекам, элементам) внутри коллекции сайтов, дано на это разрешение или нет. Через Central Administration администратор фермы может указать до двух администраторов коллекции сайтов на каждую коллекцию. Внутри каждой коллекции сайтов, однако, администратор коллекции сайтов может добавлять дополнительных администраторов, если потребуется.
Вы предоставляете постоянным пользователям (не администраторам) доступ через коллекцию сайтов. Фактически, каждая коллекция сайтов управляется отдельно, что делает эти коллекции очень удобными административными блоками, которые можно передавать. Поскольку управление ведется изнутри коллекции сайтов (а не из Central Administration), административные задачи часто назначаются обученным пользователям, и те выполняют функции самоподдержки. Конечно, в зависимости от архитектуры вашей коллекции сайтов, эта административная граница может вызывать проблемы. Например, если вам нужно предоставить доступ к нескольким коллекциям сайтов, такой доступ должен быть гарантирован одной коллекции в определенный промежуток времени на каждого пользователя или группу пользователей.
Если пользователь пытается получить доступ к коллекции, не имея на то разрешения, конечно, он получит сообщение об отказе в доступе. Но у вас в этом сообщении есть возможность разрешить пользователю отправить запрос о предоставлении доступа. Чтобы узнать больше, обратитесь к статье «How to Manage SharePoint Site Access Requests» (http://www.brainlitter.com/2011/04/23/how-to-manage-sharepoint-site-access-requests/).
Группы SharePoint
Подобно многим другим системам, SharePoint использует принцип групп для упрощения процесса назначения разрешений нескольким пользователям. Учтите, что группы SharePoint являются специфическими для коллекции сайтов. Таким образом, вы не можете использовать одну группу SharePoint для того, чтобы охватить несколько коллекций сайтов. Повторюсь, это может быть и хорошо (когда вы хотите административного разделения), и плохо (если не хотите). Группы SharePoint не могут быть вложенными друг в друга, а это означает, что вы не можете поместить одну группу SharePoint внутрь другой. Однако некоторые из ограничений не применяются к группам системы безопасности Active Directory. Например, вы можете назначить разрешения одной группе Active Directory к нескольким коллекциям сайтов. Чтобы оценить свои возможности, обратитесь к перечисленным ниже разрешениям внутри коллекции сайтов, которые могут быть предоставлены.
— Добавить одного или нескольких пользователей к группе системы безопасности Active Directory и предоставить разрешения группе.
— Добавить одного или нескольких пользователей к группе системы безопасности Active Directory, добавить группу Active Directory к группе SharePoint (этот тип формирования вложения разрешен) и предоставить разрешения группе SharePoint.
— Предоставить разрешения напрямую одному или нескольким пользователям, без применения групп.
Вы назначаете разрешения пользователям или группам, предоставляя уровни разрешений. Каждая коллекция сайтов имеет собственный встроенный набор уровней разрешений. Некоторые из них могут быть вам знакомы (например, Full Control, Design, Contribute, Read). Вы можете создавать и пользовательские уровни разрешений для более детального контроля над предоставляемым доступом. Перечислим шаги для предоставления разрешений внутри коллекции сайтов.
- Внутри коллекции сайтов зайдите в меню Site Actions и выберите Site Permissions.
- В меню нажмите кнопку Grant Permissions.
- В диалоговом окне выберите учетные записи индивидуальных пользователей, групп SharePoint или групп системы безопасности Active Directory.
- Определитесь, хотите ли вы добавить этих пользователей к группе SharePoint или предоставить им разрешения напрямую (заметьте: если вы выбрали одну или несколько групп SharePoint на шаге 3, вы можете только напрямую предоставлять разрешения).
- Дополнительно можете отправить этим пользователям уведомительное письмо.
Создавая новую группу SharePoint, вы можете назначить разрешения всей группе. Это делает назначение разрешения легким, потому что вам нужно только добавить пользователей в группу. Вы можете создать новые группы SharePoint из того же самого окна Site Permission, в котором предоставляли разрешения.
Когда вы создаете новую коллекцию сайтов, автоматически создаются три группы SharePoint: владельцы (у кого есть доступ в режиме полного контроля Full Control), члены (у кого есть доступ в режиме вложений Contribute) и посетители (у которых есть доступ только в режиме чтения Read-Only).
Наследование разрешений
По умолчанию разрешения устанавливаются для сайта верхнего уровня внутри коллекции сайтов и применяются ко всему контенту в иерархии коллекции сайтов (как показано на рисунке 1). Эта концепция называется наследованием разрешений, она помогает упростить процесс управления разрешениями.
Без сомнения, вы подумаете о случаях, когда вам нужно установить уникальные разрешения для определенного уровня. Например, вы хотите защитить подсайт и быть уверенными, что только менеджеры имеют доступ. Внутри SharePoint вы можете остановить это наследование разрешения на четырех объектах внутри коллекции сайтов: списки или библиотеки, папки и элементы. Когда вы останавливаете разрешение наследования, вы можете установить уникальный ACL для данного объекта, который будет последовательно сбрасывать его нижним уровням. Это дает вам уникальную гибкость для формирования специального набора разрешений вокруг вашего контента. Однако будьте внимательны: чем больше вы останавливаете наследование, тем более сложным становится процесс управления разрешениями. Другая трудность остановки наследования заключается в том, что это может существенно влиять на производительность SharePoint. Общее правило заключается в том, что остановка наследования должна быть исключением, и вы нацелены на структурирование своих сайтов, библиотек и папок соответственно. На рисунке 2 показан пример наследования разрешения.
Рисунок 2. Наследование разрешения в действии |
Исходные действия по остановке наследования и назначению разрешений те же самые, независимо от типа объекта. Для сайта задействуйте ссылку Site Permissions в меню Site Actions. Для списка или библиотеки используйте страницу настроек списка или библиотеки. Для папки или элемента используйте контекстное меню объекта, иногда называемое редактированным блоком управления. Если наследование остановлено на объекте, вы можете вернуться к наследованию, но любые пользовательские разрешения, которые вы применили, будут утеряны.
Замечу, что, несмотря на ваши старания, процесс управления разрешениями может выйти из-под контроля. Чтобы снизить эту вероятность, нужен толковый план руководства, который дает конечным пользователям четкую инструкцию, как использовать группы и когда останавливать наследование. Еще одна возможность – использовать программное обеспечение третьих фирм, такое как DocAve Administrator от AvePoint, которое может помочь управлять разрешениями во всей ферме за одну операцию.
Предоставление анонимного доступа
Если настройки веб-приложения заданы таким образом, чтобы разрешать анонимный доступ, вы можете вычислить, какие разрешения получает анонимный пользователь.
- Получите доступ к странице разрешений для объекта, как описано в предыдущих разделах.
- Если необходимо, нажмите кнопку Stop Inheriting Permissions в меню (вы не сможете вычислить анонимный доступ на объекте, который наследует разрешения своего владельца).
- В меню нажмите кнопку Anonymous Access.
- Выберите разрешения для предоставления анонимному пользователю. Доступные разрешения будут изменяться в зависимости от типа объекта.
- Щелкните ОК, чтобы сохранить изменения.
Надеюсь, этот обзор системы безопасности будет полезен тем, чья работа связана с SharePoint. Теперь вы понимаете возможности аутентификации SharePoint и некоторые из его ограничений. Я рассказал о том, как определить ферму и администраторов SharePoint, вычислить пользовательскую политику веб-приложения, задать настройки каждого из четырех объектов внутри коллекции сайтов. Также я дал инструкции по активации анонимного доступа и настройке анонимных разрешений. В следующей статье серии речь пойдет об аутентификации, особенно поддержке аутентификации на базе требований в SharePoint 2010.