Pull to refresh

Динамический контроль доступа: что собой представляют ресурсы

Reading time15 min
Views11K
Ты должен увидеть это сам. Не поздно отказаться. Потом пути назад не будет.
Примешь синюю таблетку — и сказке конец.
Ты проснешься в своей постели и поверишь, что это был сон.
Примешь красную таблетку — войдешь в страну чудес.
Я покажу тебе, насколько глубока кроличья нора.
К/ф. «Матрица»
В двух предыдущих статьях настоящего цикла мы с вами начали разбирать богатейшие функциональные возможности технологии динамического контроля доступа, позволяющие перевести на существенно новый уровень всю вашу модель управления ресурсами, расположенными непосредственно на файловых серверах. По большому счету, за две статьи рассмотреть мы с вами успели довольно-таки немного, а именно: я привел базовые сценарии использования этой технологии, а также вы узнали о том, что собой представляют утверждения и как можно управлять уникальными типами утверждений. Но ведь очевидно, что полученных из этих статей знаний недостаточно для того, чтобы иметь четкое представление о данной технологии и начать у себя в организациях разрабатывать свои уникальные сценарии.
В этой статье мы с вами копнем еще глубже и посмотрим на то, что же собой в концепции DAC-а представляют собой ресурсы и списки свойств ресурсов, что также является неотъемлемой частью технологии динамического контроля доступа. То есть, вероятнее всего, это статья будет предпоследней перед тем как мы начнем создавать централизованные политики доступа и переходить к сценариям, о которых я так много говорил в первой статье этого цикла. Ну что же, далее я предлагаю нам проверить, «насколько глубока эта кроличья нора»…


А что для динамического контроля доступа представляют собой ресурсы?


Полагаю, что практически все, кто работал с файловыми серверами, работающими под операционной системой Windows Server 2008 R2, уже успели оценить возможности инфраструктуры классификации файлов или, как это звучит в оригинале, File Classification Infrastructure (FCI). Если вы не успели познакомиться с этой возможностью, то инфраструктура классификации файлов представляет собой инфраструктуру, отвечающую за автоматизацию процессов классификации, что, как следствие, позволяет вам указывать степени важности, сроки действия, генерировать различные отчёты, а также создавать настраиваемые задачи, тем самым понижая возможные риски хранения файлов на своих серверах. Управлять такой классификацией можно было непосредственно при помощи такого административного инструмента, как диспетчер ресурсов файлового сервера (File Server Resource Manager, FSRM), причем классификацию можно использовать лишь после инсталляции данной консоли. Другими словами, используя классификацию файлов можно создавать политики управления файлами специально для того, чтобы можно было эффективнее управлять своими данными. Однако, несмотря на то, что о возможностях инфраструктуры классификации файлов можно говорить достаточно долго, постепенно будем переходить непосредственно к самим ресурсам, Windows Server 2012 и, естественно, к технологии динамического контроля доступа.
Теперь, каким образом связана технология динамического контроля доступа с классификацией файлов? Начиная с выхода операционной системы Windows Server 2012, возможности авторизации были еще сильнее расширены путем добавления к уже существующей инфраструктуре классификации файлов свойств ресурсов. Как я уже говорил в предыдущей статье этого цикла, для реализации сложных сценариев, связанных с авторизацией, для гибкого использования динамического контроля доступа вы смело можете использовать несколько условных выражений. Если говорить немного подробнее, то теперь администраторам предоставляется посредством условных выражений возможность настройки авторизации доступа к файлам на основании одного либо нескольких значений свойств ресурсов.
А что же делают свойства ресурсов? Рассмотрим простой базовый пример: у вас на файловых серверах, предположим, есть скрытая от большинства пользователей документация, которая так и классифицируется, как FinanceSecret. Значит, операционной системе Windows Server 2012 необходимо предоставлять доступ к таким файлам, основываясь на секретной финансовой информации, которая фигурирует в метаданных самих файлов либо в свойствах ресурса самого файла. Получается, если классификация файла включает в себя FinanceSecret, но пользователь не обладает разрешениями на просмотр таких данных, ему, как следствие, будет отказано при попытке доступа к последним. Теперь еще раз вернемся к самим свойствам ресурсов. Собственно, они бывают двух видов, а если говорить конкретнее, то это непосредственно сами свойство ресурса, а также свойство ссылочного ресурса. Буквально в двух словах, что есть что:
  • Свойство ресурса представляет собой некую сущность, описывающую какую-либо конкретную характерную особенность ресурса, которым могут выступать такие объекты как, скажем, файлы или папки. По сути, это свойство играет роль при создании централизованных правил доступа, а именно служит для определения самих целевых ресурсов, а также непосредственно разрешений. В таких свойствах ресурса содержатся предполагаемые значения, которые определены для самого объекта, и хранятся они в атрибуте msDS-ClaimPossibleValues объекта. Помимо этого, между прочим, свойство ресурса также используется для классификации самого ресурса;
  • Свойство ссылочного ресурса, или ­– как также принято его называть – ссылочное свойство ресурса, в свою очередь, представляет собой, грубо говоря, свойство ресурса, использующее существующий тип утверждения в качестве своих предложенных значений. Что это означает? По сути, объекты ссылочных свойств ресурса отличаются от объектов свойств ресурса тем, что они не хранят свои значения, а используют их из DN ссылающегося объекта утверждения в атрибуте msDS-ClaimSharesPossibleValuesWith. Получается, что используя ссылочное свойство ресурса, сами свойства ресурса всегда будут допустимы для сравнения с типом утверждения в самих централизованных правилах доступа, на которые они ссылаются, тем самым уменьшая ручную поддержку согласованности данных.

На этом этапе, полагаю, можно приостановить теоретическую часть и перейти к самому созданию объекта свойств ресурса.

Создание объекта свойств ресурса


Как и в случае с утверждениями, управлять свойствами ресурса и ссылочными свойствами ресурса можно как средствами «Центра администрирования Active Directory», так и, для реализации автоматизированных сценариев, воспользовавшись богатыми возможностями Windows PowerShell. Ввиду того, что этот цикл статей подразумевает плотное изучение технологии динамического контроля доступа, далее в этой статье будет рассматриваться управление свойствами ресурса при использовании обоих методов. А начинать, опять же, мы сейчас будем с центра администрирования Active Directory. Итак:

Управление объектами свойств ресурса средствами центра администрирования Active Directory


В принципе, чтобы особо не затягивать пошаговую процедуру, сразу приступим к самому процессу создания объекта свойства ресурса средствами центра администрирования Active Directory. Итак, сейчас нам следует выполнить следующие действия:
  1. На контроллере домена откройте окно «Центра администрирования Active Directory», где в области списка выделите узел «Динамический контроль доступа», а затем выберите узел «Resource Properties» (Dynamic Access Control > Resource Properties);
  2. В отобразившемся узле нажмите в области сведений правой кнопкой мыши и из контекстного меню выберите последовательно команды «Создать» и «Свойство ресурса» (New > Resource Property), как показано на первой иллюстрации данной пошаговой процедуры, либо на начальной странице центра администрирования Active Directory перейдите к тайлу динамического контроля доступа и в группе действий Active Directory выберите второе действие, позволяющее создавать новые свойства ресурса. Как в первом, так и во втором случае откроется диалоговое окно создания нового свойства ресурса.


    Рис. 1. Создание нового свойства ресурса
  3. В отобразившемся диалоговом окне просто невозможно не заметить того, что при создании объектов свойств ресурсов существенно меньше различных «хитрых» опций, так как в группе «Общие» можно обнаружить, грубо говоря, всего лишь 3 изменяемых параметра, а именно:
    • Отображаемое имя (Display name). В текущем текстовом поле вы должны указать уникальное отображаемое имя для создаваемого вами свойства ресурса. Следовательно, это имя будет фигурировать в узле Resource Properties и в прочих элементах консоли центра администрирования Active Directory. Само собой, называть свои свойства ресурса вы можете в буквенно-цифровом формате. Например, назовем наше свойство ресурса «Region» и перейдем к следующему параметру;
    • Тип значения (Value type). Представляет собой раскрывающийся список, откуда можно выбрать логические типы данных, которые уже операционная система будет использовать для описания данных, и которые, собственно, будут храниться в свойствах ресурсов. При создании свойства ресурса можно выбрать любое из восьми доступных типов значения, а именно:
      • Date time. Позволяет создавать свойства ресурса, основанные на логическом типе значения, представляющем собой дату и время. Тут стоит отметить лишь то, что при использовании такого типа значения вы не сможете использовать такое свойство ресурса непосредственно для авторизации (об этой опции подробнее вы узнаете буквально через несколько абзацев). В качестве предустановленных свойств ресурса с этим типом значения выступает свойство «Retention Start Date», которое определяет дату начала периода удержания. В принципе, это не самый распространенный тип значения свойства ресурса;
      • Multi-Valued Choice. Объекты свойств ресурса, которые основаны на текущем логическом типе значения могут содержать по несколько предложенных значений, позволяющих выбрать из сгенерированного списка один или же несколько допустимых значений. В том случае, если для конкретного объекта в редакторе условных выражений дополнительных параметров безопасности вам нужно будет выбрать несколько таких значений, их следует указывать при помощи оператора равно. Во всех остальных случаях достаточно указывать лишь одно такое значение. В качестве примера можно привести предустановленное свойство ресурса Projects, при помощи которого вы можете выбирать проекты, над которыми работают ваши пользователи;
      • Multi-Valued Text. В свою очередь, объекты свойств ресурса текущего логического типа значений могут включать в себя по несколько текстовых записей. Предустановленных объектов свойства ресурса для данного типа не существует;
      • Number. Текущие логически типы значений для объектов свойств ресурсов всего-навсего позволяют вам создавать такие объекты, которые могут включать в себя лишь одно число. Довольно примитивный тип значений, поэтому он не сильно востребован и по умолчанию не создаются объекты свойств ресурсов, использующие этот тип;
      • Ordered List. Те объекты свойств ресурса, которые основаны на этом логическом типе значений, предоставляют единичный выбор предлагаемых значений, которые можно сравнивать с другими объектами свойств ресурса этого же типа. Примером тому служит предустановленный объект свойства ресурса Confidentiality, отвечающий за уровень конфиденциальности ресурса и последующего взаимодействия с принципалами безопасности;
      • Single-Valued Choice. Очередной логический тип значения, на основании которого могут создаваться объекты свойств ресурса, позволяющий также создавать несколько предлагаемых значений для того, чтобы в будущем можно было выбрать из соответствующего списка только лишь одно такое значение. В качестве примера можно привести предустановленный объект свойства ресурса Department, который включает в себя перечень потенциальных подразделений, к которым может иметь отношение целевой ресурс;
      • Text. Логический тип значения, позволяющий создавать для объекта свойств ресурса единственную запись с текстом. Существенно проще предыдущего типа, поэтому, как и в случае с типом Number, используется очень редко, и среди предустановленных объектов свойств ресурсов объект с таким типом обнаружить невозможно;
      • Yes/No. Последний по счету, но не по значимости логический тип значения, позволяющий создавать объекты свойств ресурса со значениями, представляющими собой булевы true или false. В качестве примера можно привести объект свойств ресурса «Personal Use», отвечающий за то, является ли целевой объект рабочим или же личным документом (положительный ответ означает личное использование последнего).
        В качестве примера, так как у нас в первом примере будет указываться единственный регион, пользователи которого смогут воспользоваться ресурсом, выбирается тип значения Single-Valued Choice;
    • Описание (Description). Текстовое поле, позволяющее указать некий комментарий к создаваемому свойству ресурса. Так как далеко не в каждом случае можно будет сразу понять, за что именно отвечает создаваемый вами объект свойств ресурса, настоятельно рекомендую не игнорировать это поле. Лучше всего с комментариями сильно не разгоняться, так как максимально допустимое количество символов текущего текстового поля – 1024. В нашем случае напишем следующее: «Регион, в котором находятся владельцы этого объекта»;
    • Присвоить идентификатору семантически идентичное свойство ресурса из доверяющего леса, чтобы упростить использование утверждений в лесах, связанных отношениями доверия (Set ID to a semantically identical Resource Property in a trusted forest). Как и в случае с типами утверждений, этот флажок отвечает за то, как именно центр администрирования Active Directory будет создавать идентификатор вашего объекта свойства ресурса. Опять же, в том случае, если вы не установили такой флаг, то идентификатор будет генерироваться автоматически. Однако, в отличие от типов утверждений, этот идентификатор выглядит немного иначе. Прежде всего, тут нет никакого ad://, а вместо этого в качестве первой части идентификатора подставляется относительное имя создаваемого вами свойства ресурса. После этого указывается нижнее подчеркивание, а затем, в качестве суффикса, добавляется в случайном порядке значение в шестнадцатеричном формате, которое, как и в случае с идентификаторами типов утверждений, похожи на GUID-ы. Еще эта опция отличается от подобной в типах утверждения тем, что такие типы утверждений должны содержать до 15 символов в первой части идентификатора, а также до 15 символов в суффиксе. В остальном все работает по той же технологии. В данном примере эта опция не будет задействоваться;
    • Используется для авторизации (Is a secure Resource Policy). Вот на этой опции, полагаю, следует остановиться немного подробнее. Я еще выше упоминал, что операционные системы Windows используют свойства ресурсов как для классификации файлов, так и для авторизации. Получается, для использования свойств ресурсов для авторизации они должны быть настроены должным образом. В принципе, все объекты свойства ресурса, которые создаются, уже изначально настраиваются непосредственно для авторизации. Если заглянуть в сам объект свойства ресурса, то за эту возможность отвечает атрибут msDS-IsUsedAsResourceSecurityAttribute со значением true или false. Так вот, данная опция отвечает за решение об использовании свойства ресурса для авторизации. Для того, чтобы создаваемое вами свойство ресурса могло использоваться в условных выражениях для определения типа доступа к различным файлам и папкам, вам, как следствие, необходимо устанавливать текущий флажок. В данном случае пусть такой флажок останется установленным;
    • Защита от случайного удаления (Protect from accidental deletion). Флажок, который можно было обнаружить также и при создании типов утверждений, защищает создаваемый вами объект свойства ресурса от непреднамеренного удаления. Несмотря на то, что по умолчанию создавать, изменять и удалять эти объекты могут лишь администраторы, на всякий случай не следует пренебрегать данной опцией.

    Текущая страница диалогового окна со всеми настроенными значениями изображена ниже:

    Рис. 2. Страница «Общие» диалогового окна создания нового свойства ресурса
  4. Как было уже сказано выше, при создании объектов свойства ресурса с некоторыми типами значений специально для условных выражений, вам обязательно нужно будет указывать для таких объектов предустановленные значения. Эти предустановленные значения, как и в случае с рассмотренными в предыдущей статье типами утверждений, настраиваются на странице «Предложенные значения» (Suggested Values) диалогового окна создаваемого объекта свойства ресурса. Следовательно, для того, чтобы добавить такие значения, вам нужно будет нажать на соответствующую кнопку, то есть кнопку «Добавить». Диалоговое окно добавления предложенного значения очень похоже на то, которое мы с вами рассматривали в предыдущей статье данного цикла. То есть здесь вы можете в текстовом поле «Значение» (Value) определить рекомендуемое значение для соответствующего текстового поля условного выражения; поле «Отображаемое имя» (Display Name) отвечает за имя, которое будет фигурировать при выборе создаваемого вами значения, а в поле «Описание» (Description) вы можете добавить требуемый комментарий для такого значения. Например, можно добавить новый регион Los Angeles, как показано на следующей иллюстрации:

    Рис. 3. Добавление предложенного значения для свойства ресурса
  5. После того как я добавил еще 5 значений (San Antonio, New York, Miami и Phoenix), для окончательного сохранения нового свойства ресурса можно нажать на кнопку «ОК». Свойство ресурса создано.


Создание ссылочного свойства ресурса


Сам процесс создания ссылочного свойства ресурса несколько отличается от создания обычного объекта свойства ресурса. Прежде всего, именования таких объектов изначально основываются на наименовании предложенных вами созданных ранее типов утверждений. У таких объектов может быть лишь одно их двух существующих типов значений. Почему именно так? Так как ссылочные свойства ресурса напрямую зависят от выбранных вами в соответствующем управляющем элементе типов утверждений, тип значения зачастую представляет собой обычную строку (как видно на следующей иллюстрации), и, как следствие, в качестве типа значения такого объекта по умолчанию определяется Single-Valued Choice, представляющее собой, как было указано ранее, однозначный выбор. В качестве альтернативы этому типу значению, вы можете еще выбрать тип Multi-Valued Choice.
Теперь по поводу этих типов утверждений, которые я несколько раз упомянул в предыдущем абзаце. Выбрать в качестве предложенных значений существующие типы утверждений вы можете непосредственно при помощи управляющего элемента «Выберите тип утверждения для общего доступа к его предложенным значениям» (Select a claim type to share its suggested values). Этот элемент содержит список типов утверждений, которые изначально были настроены с предлагаемыми значениями. Выбрав тип утверждения, его различающееся имя записывается в атрибут msDS-ClaimSharePossibleValuesWith объекта ссылочного свойства ресурса. И ввиду того, что такой атрибут является ссылочным, он обновляется, используя связанный атрибут msDS-ClaimSharePossibleValuesWithBL типа утверждения, согласно различающемуся имени объекта ссылочного свойства ресурса, включающего такую ссылку.
Обо всех остальных опциях, то есть «Описание», «Присвоить идентификатору семантически идентичное свойство ресурса из доверяющего леса, чтобы упростить использование утверждений в лесах, связанных отношениями доверия», «Используется для авторизации» и «Защита от случайного удаления», я писал в предыдущем разделе данной статьи, и они ничем не отличаются от одноименных параметров обычного объекта свойства ресурса.

Рис. 4. Процесс создания ссылочного свойства ресурса

Помимо этого, сразу можно обнаружить то, что все предустановленные объекты свойства ресурса отключены. У каждого такого объекта есть два состояния: отключено и включено. Естественно, отрабатывать будут только лишь те объекты, которые были заблаговременно включены, а те объекты, которые у вас облагают статусом «Отключено» никогда не будут отображаться в диалоговом окне дополнительных параметров безопасности. Следовательно, для того, чтобы их включить, вы можете либо из контекстного меню, либо в области «Задачи» выбрать опцию «Включить» (Enable).

Управление объектами свойств ресурса при использовании Windows PowerShell


Как в случае с типами утверждений, да и практически с любыми функциональными возможностями Windows Server 2012, управлять объектами свойств ресурса вы можете не только средствами центра администрирования Active Directory, но также для написания сценариев и автоматизации ваших действий можно использовать богатейшие возможности Windows PowerShell. Для управления свойствами ресурсов используются командлеты ADResourceProperty, то есть New-ADResourceProperty для их создания, Set-ADResourceProperty для изменения существующих объектов, а также Remove-ADResourceProperty, который отвечает за удаление последних.
Итак, сейчас попробуем создать объект свойство ресурса под названием Depart, где будут указаны различные должности (в этом примере Маркетинг, Бухгалтерия, Финансисты), которые должны фигурировать при изменении условного выражения. Значит, следует использовать такой командлет:

New-ADResourceProperty -Description:"Подразделения, в которых могут работать ваши пользователи" -DisplayName:"Depart" -IsSecured:$true -PassThru:$null -ResourcePropertyValueType:"CN=MS-DS-SinglevaluedChoice,CN=Value Types,CN=Claims Configuration,CN=Services,CN=Configuration,DC=biopharmaceutic,DC=local" -Server:"DC.biopharmaceutic.local" -SuggestedValues:@((New-Object Microsoft.ActiveDirectory.Management.ADSuggestedValueEntry("Маркетинг", "Маркетинг", "Сотрудники подразделения маркетинга")) , (New-Object Microsoft.ActiveDirectory.Management.ADSuggestedValueEntry ("Бухгалтерия", "Бухгалтерия", " Сотрудники подразделения бухгалтерии")), (New-Object Microsoft.ActiveDirectory.Management.ADSuggestedValueEntry ("Финансисты", "Финансисты", " Сотрудники подразделения финансистов")))

В принципе, структура этого командлета очень похожа на структуру командлета New-ADClaimType. То есть здесь можно обнаружить параметры Description и DisplayName, которые отвечают за отображаемое имя и описание. Однако здесь стоит обратить внимание на несколько следующих параметров:
  • Прежде всего, это параметр –IsSecured, отвечающий за то, будет ли создаваемый объект свойств ресурса использоваться для авторизации. Естественно, значение $true считается истиной и позволяет использовать этот объект для авторизации, а значение $false, в свою очередь, создает объект исключительно для классификации;
  • Параметр –ResourcePropertyValueType, при использовании которого вы можете определить тип значения для создаваемого объекта. В качестве значения этого параметра должно выступать различающееся имя объекта msDS-ValueType. Эти значения представляют собой логические типы данных, о которых шла речь ранее в этой статье, и для всего леса они размещаются в разделе конфигурации службы каталогов Active Directory, а если говорить точнее, то в CN=Value Types,CN=Claims Configuration,CN=Services. То есть, в моем случае это CN=MS-DS-SinglevaluedChoice,CN=Value Types,CN=Claims Configuration,CN=Services,CN=Configuration,DC=biopharmaceutic,DC=local. По умолчанию можно выбрать одно из следующих типов значений: MS-DS-DateTime, MS-DS-MultivaluedChoice, MS-DS-SinglevaluedChoice, MS-DS-MultivaluedText, MS-DS-Number, MS-DS-OrderedList, MS-DS-Text, а также MS-DS-YesNo. В принципе, их наименования в пользовательском интерфейсе очевидны, а о назначении я уже говорил несколькими разделами выше, поэтому повторяться просто нет смысла;
  • А также параметр SuggestedValues. Как и в случае с утверждениями, этот параметр отвечает за предложенные значения, в котором, собственно, даже синтаксис идентичен.

Процесс создания этого объекта изображен на следующей иллюстрации:

Рис. 5. Создание свойства ресурса при помощи Windows PowerShell

Заключение


Собственно, на этом данная статья подходит к концу. Сегодня мы с вами рассмотрели свойства ресурсов: вы узнали о том, что собой представляют объекты этого типа, для чего они нужны, а также какие бывают типы свойств ресурсов. Помимо теоретической части вы также узнали о том, как можно создавать и управлять такими объектами при помощи пользовательского интерфейса, а именно средствами консоли «Центр администрирования Active Directory», а также используя богатые функциональные возможности Windows PowerShell.
В следующей, четвертой статье данного цикла я продолжу вас знакомить с возможностями динамического контроля доступа, а если говорить точнее, то речь уже пойдет о списках свойств ресурсов, а также о классификации файлов. Коллеги, а какие свойства ресурсов вы создавали в своей среде для реализации DAC?
Tags:
Hubs:
+3
Comments0

Articles