Настройка безопасности Project Server 2010

Представляем статью Поскребышевой Екатерины (Компания Контек), опубликованную здесь.

Оригинальная статья: Project Server Security explained, by Ben Howard.

Как работает безопасность в Project Server 2010? Пользователи имеют, как правило, общее представление о группах и глобальных разрешениях, однако возникают вопросы с назначением разрешений категорий, взаимосвязью категорий с группами, и что делать, если пользователь является участником более чем одной группы. В данном посте я попытаюсь пояснить сущность Групп, Категорий, Представлений, Глобальных разрешений, Разрешений категорий и еще несколько дополнительных скользких моментов, где пользователь часто совершает ошибку. Также, ко всему этому, добавлю несколько лучших практик и сопроводительных примеров.

Для начала несколько определений:

  • Группы . Каждая группа определяет какую-то роль внутри организации, и люди, принадлежащие определенной роли, т.е. участники группы, в конечном счете, имею похожие или одинаковые функциональные возможности. Как правило, название групп должно быть описательным, например Администратор , Менеджер проекта , Менеджер ресурсов .
  • Разрешения . Разрешения определяют функциональные возможности, к которым имеет доступ пользователь в Project Server, а также в управлении проектом или ресурсами. Разрешения разделены на две группы: Глобальные разрешения и Разрешения категорий . О последних мы поговорим позже.
  • Категории . Категория это подмножество проектов, ресурсов и представлений внутри базы данных Server Project. Одиночные категории могут включать в себя только проекты, ресурсы, представления или комбинацию из всех трех составляющих.
  • Пользователи . Пользователь - это образ человека, который работает с системой Project Server. Заметим, что пользователи не обязательно являются ресурсами, точно также как и ресурсы - не всегда пользователи. Пользователи принадлежат одной или нескольким группам.

1. Установка разрешений по умолчанию для Project Server 

Первое, с чего стоит начать работу в Project Server, это установить Разрешения Project Web App (PWA) в настройках сервера в разделе Безопасность. Вы можете использовать эту страницу, чтобы ограничить доступ к определенным функциям для всех пользователей Project Server, определяя полный список функциональных возможностей для исполнения. По умолчанию, все разрешения позволены, и возникает вопрос о блокировке важных разрешений/функций, которые не будут использоваться. Все разрешения сгруппированы по типу, и глобальные разрешения перемешаны с разрешениями категорий (рис.1). Обратите внимание, что я заблокировал такие функции как Формирование рабочей группы для нового проекта, Управление планом ресурсов, Создание ссылок на объекты.

Рисунок 1

2. Настройка Глобальных разрешений

Глобальные разрешения могут быть назначены как конкретному пользователю, так и группе. На практике, лучше назначать глобальные разрешения на всю группу, а не на отдельного пользователя, т.к. это может привести к дополнительным трудозатратам в администрировании системы. Чтобы назначить разрешения группам, выберите Параметры сервера – Группы. Выберите определенную группу и найдите внизу раздел Глобальные разрешения (рис. 2).

Рисунок 2

В настройках по умолчанию глобальные разрешения для группы Руководители (менеджеры) проектов выглядят следующим образом (рис. 3):

Рисунок 3

Я уделю внимание двум глобальным разрешениям и двум категориям разрешений для того, чтобы объяснить, как это все работает (рис. 4).

Рисунок 4

Каждое разрешение может быть установлено как Разрешить, Запретить, Мягкое запрещение (Не разрешать и не запрещать). Существует порядок очередности разрешений, где Запретить является более значимым, чем Разрешить; Разрешить – более значимое, чем Мягкое запрещение. Таким образом, приоритетность разрешений такова: Запретить –> Разрешить -> Мягкое запрещение.

Эта очередность существенная в том случае, когда пользователь - член более чем одной группы, или группа связана более чем с одной категорией. К данному вопросу мы вернемся позже, а пока давайте остановимся на глобальных разрешениях проекта. Работаем с группой Руководители (менеджеры) проектов.

Рисунок 5

Для разрешения на Создание проекта (рис.5) выбрана позиция Разрешить. Принимая во внимание, что пользователь является участником только одной группы, Руководителей проектов, данный участник группы МОЖЕТ создавать новый проект. И это действительно оказывается разумным, ведь руководители проектов должны иметь возможность создавать проекты.

Рисунок 6

Что касается разрешения Создание ресурса (рис.6), не выбрано ни позиции Разрешить, ни Запретить. Значит, для группы Руководители проектов установлено разрешение Мягкое запрещение. Учитывая, что пользователь является участником только одной группы Руководителей проектов, данный пользователь НЕ МОЖЕТ создавать новый ресурс. По умолчанию в настройках данная группа не могут создавать ресурсы: только Менеджер ресурсов вправе выполнять данную функцию.

Следующий график показывает отношения между пользователем и группой (рис.7).

Рисунок 7

3. Категории и их взаимосвязь в группах

Как было сказано ранее, категории представляют собой подмножества проектов, ресурсов и представлений внутри базы данных Server Project. По умолчанию существуют 5 категорий:

Рисунок 8

Нужно знать, что каждой категории принадлежат свои данные. Мы остановимся на категории Мои проекты. Категория Мои проекты может включать в себя следующие проекты и ресурсы:

Рисунок 9

Отметим, что категория Мои проекты динамическая: и проекты, и ресурсы будут то добавляться, то исключаться из категории, в зависимости от установленных условий. В нашем случае, мы установили 3 условия на проекты, и 2 условия на ресурсы (рис. 9). Таким образом, каждый пользователь сможет иметь разный набор данных в пределах категории.

Следующий график (рис.10) иллюстрирует, как категория связана с отдельным пользователем. Среди всех проектов в базе данных Server Project, 7 проектов являются частью Моих проектов.

Рисунок 10

Помните, мы еще должны определить разрешения для 7 проектов, которые включены в нашу категорию Мои проекты!

4. Связи групп

Категории объединяются с группами. Таблица отображает связи по умолчанию.

Рисунок 11

Следующее графическое изображение (рис. 12) показывает связь между группой Руководители проектов и категорией Мои проекты.

Рисунок 12 

Пользователь получает доступ к набору глобальных разрешений, т.к. он принадлежит определенной группе (Руководители проектов), и эти разрешения становятся включенными в определенную категорию (набор проектов, ресурсов, представлений) (Мои проекты), потому что группа связана с этой категорией.

5. Разрешения категорий  

Сейчас возвращаемся к главному вопросу разрешений. Каждая связь между категорией и группой дает возможность определить любые из 22 разрешений для ресурсов или проектов категории, но только для связанной с нею группой.

Ниже два разрешения категорий, на которых мы сконцентрируем свое внимание:

Рисунок 13

Рисунок 14

Для разрешения категории Удалить проект выбрана опция Разрешить (настройки по умолчанию для группы Руководители проектов и категории Мои проекты) (рис. 14). Если учесть, что пользователь является участником только одной группы Руководителей проектов, то пользователь МОЖЕТ удалять проекты в пределах категории Мои проекты.

В разрешении категории Изменение корпоративных ресурсов выбрана опция Мягкого запрещения (рис. 14). Т.е. если пользователь является участником только одной группы Руководителей проектов, то данный пользователь НЕ МОЖЕТ вносить изменения в корпоративные ресурсы в пределах категории Мои проекты.

На следующем графическом изображении (рис. 15) изображена связь между группой Руководители проектов и разрешениями категории Мои проекты.

Рисунок 15 

Назначая разрешения выше, мы определили, что наш пользователь может создавать новый проект, но не ресурсы, и в рамках проектов, принадлежащих категории Мои проекты, он может удалять эти проекты, но не может редактировать данные корпоративных ресурсов.

6. Время собрать все воедино

Помните, в сумме существует 21 разрешение категорий и более 60 глобальных разрешений. Каждый ресурс может принадлежать более чем одной группе, каждая группа может быть связана более чем с одной категорией, каждая категория может быть включена более чем в одну группу, и каждая категория может иметь разный набор разрешений для каждой группы. Таким образом, значит, что категория Мои проекты, которая связана с группами Менеджеры проектов, Менеджеры ресурсов, Руководители групп может иметь разные разрешения категории для каждой группы.

К примеру, который был разобран выше (рис.15), свяжем еще одну категорию с ранее выбранной группой Руководителей проектов (рис. 16).

Рисунок 16 

Проекты в рамках каждой категории будут иметь разный набор разрешений (на рисунке категории выделены синим и красным). Любой проект, который входит и в ту, и в другую категорию унаследует разрешения с обеих категорий, где Запрещение будет являться более значимым, чем Разрешение, и Разрешение будет перевешивать Мягкое запрещение (Запрещение ->Разрешение -> Мягкое запрещение). Эта очередность важна, если проекты входят в обе категории.

Развивая тему дальше, нужно сказать, что каждый пользователь может входить в несколько групп, каждая группа может содержать в себе несколько категорий и каждая группа может иметь разные глобальные разрешения и разрешения категорий (рис. 17).

Рисунок 17

7. Представления

Каждое представление может быть связано с категорией. Мы уже выяснили, что категории содержат определенный набор данных, представления же позволяют просматривать эти данные согласно определенным настройкам в представлениях. К примеру, у меня может быть категория Финансы, объединяющая все проекты, которой я определил только единственное представление Затраты. Тогда, я бы создал группу Финансы, содержащую категорию Финансы, и только участники данной группы смогли бы работать с представлением Затраты.

8. Лучшие практики

Легко запутаться с отслеживанием разрешений. Несколько подсказок, как избежать этого:

  • Если возможно, используйте стандартные разрешения, определенные по умолчанию.
  • Изменяя стандартные настройки разрешений, документируйте изменения, чтобы видеть какие произошли изменения.
  • Не применяйте разрешения и не связывайте категории напрямую с ресурсами.