Категории каталога
Каталог / Бизнес / Автоматизация предприятий / 1C / Использование технологии "Регистры правил" для управления правами доступа

Использование технологии "Регистры правил" для управления правами доступа

ИА "Клерк.Ру". Отдел новостей /

Автор: Павел Лазарев
Источник:http://www.itland-group.ru/

Регистры правил являются удобным инструментом для выборки непротиворечивой информации при сложных и/или разнообразных входных условиях. В данной статье рассматривается использование технологии регистров правил для управления правами доступа к объектам информационной базы.

Обзор технологии "Регистры правил".

Важной, а возможно, и основной функцией информационных системявляется реализация и поддержка ими некоторых систем правил,описывающих реакцию на действия пользователя, а также на другиесобытия.

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

Недостатки алгоритмического подхода общеизвестны - этосложность, запутанность логики при усложнении ситуации, трудностьпонимания и модификации кода. Однако чаще всего системы строятся,базируясь именно на таком подходе, ибо он прост в реализации и удобендля программирования.

Регистры правил основаны на принципе декларативного подхода креализации системы, с их помощью ситуация некоторым образомописывается, что позволяет избежать жесткого программирования поведенияинформационной системы, обеспечить легкость настройки и модификации.

С практической точки зрения технология регистров правил предназначена для реализации некоторой системы правил, подходящей для решения поставленной задачи.

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

Структура регистра правил выражает функциональную зависимость{Детерминант -> Корень}. Как детерминант, так и корень могутобладать структурой (иметь атрибуты). Атрибуты детерминанта называюттакже измерениями регистра, атрибуты корня - ресурсами.Значение корня - это кортеж значений его ресурсов. Ресурс можетявляться набором значений (множеством элементов), а также ссылкой надетерминант следующего уровня системы правил.

Например, для системы контроля доступа детерминант регистра может состоять из следующих измерений: Пользователь, ТипОбъекта, ВидОбъекта, а корень иметь ресурс Доступ (булево значение, Да/Нет).

Набор правил в общем случае строится по принципу уточнениявходной ситуации. Это означает, что сначала определяются правила, общиедля любых значений, а затем - правила, конкретизирующие, сужающиевходную ситуацию.

Например, самым общим правилом системы контроля доступа обычноявляется правило задания политики безопасности - политика разрешенияили политика запрещения. В первом случае по умолчанию доступ запрещен,для получения разрешения необходимо выполнения некоторых условий. Вовтором - по умолчанию доступ разрешен, запрещаются лишь конкретныеситуации.

При помощи регистра правил очень легко и естественно задается правило такого рода, например, для задания политики разрешения можно использовать:

Далее, мы можем определить уточняющие правила, ограничивающие доступ к объектам информационной системы:

Задачи системы управления правами доступа.

Системыконтроля доступа предназначены для разграничения доступа к информации,т.е. система должна предоставить доступ к объектам и процедурам всем,кто имеет соответствующие права, и запретить всем, кто таких прав неимеет.

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

Это плохо, неудобно, но… что делать?

Недостатки существующих подходов к построению систем управления правами доступа.

Чаще всего, контроль доступа строится на базе системы ролей (субъектов), для которых определяются списки контроля доступа (access control list, ACL) к объектам информационной системы. При этом для каждого класса объектов информационной системы некоторым образом задаются права, которые имеют по отношению к ним субъекты.

Например, для пользователей "Пользователь1" и "Пользователь2"мы определяем роль "Менеджер по продажам". Для объекта "Счет-фактура нарасход" роль "Менеджер по продажам" имеет права "Доступ разрешен".


Вроде бы все прекрасно, но стоит слегка усложнить ситуацию, как возникают трудности.

Что, если нам надо ограничить сумму документа, которые имеютправо выписывать определенные менеджеры? Или получать определенныеклиенты? Или разрешить работать только с документами сегодняшнего дня?

Ясно, что таких ситуаций может быть огромное множество, причем мы не можем их спрогнозировать на этапе разработки системы.

Нам необходим инструмент, позволяющий описать входную ситуацию и выдать на ее основе решение - предоставлять доступ или нет.

К счастью, такой инструмент у нас уже есть, и это - регистр правил.

Проектирование регистра правил, предназначенного для управления правами доступа.

Для создания регистра правил нам надо выбрать измерения, составляющие детерминант, и ресурсы, составляющие корень.

Один ресурс нам известен - это булево значение Доступ (Да/Нет).
В качестве второго ресурса выберем строку сообщения, которую система будет выводить при отказе в доступе.

Ограничим измерения регистра следующими значениями:
  • Событие системы. Возможные значения - Открытие, Запись, Проведение, Отмена-Проведения.
  • Тип объекта. Значения - Документ, Отчет, Справочник.
  • Вид объекта. Значения - виды соответствующих объектов.
  • Имя пользователя.
  • Сумма документа. Измерение является диапазоном, ограниченным"снизу" значением измерения. Это означает, что, например, правилу сзаданной суммой документа 1000, будут соответствовать все документы,имеющие сумму >= 1000.
  • Возраст документа в днях. Измерение является диапазоном, ограниченным "снизу".

    Заметим, что по сути первоначально мы можем задать только структуру корня, так как это все, что нам нужно знать, чтобы подключить регистр правил к нашей системе. Состав детерминантамы можем расширять практически неограниченно и в любой момент, расширяятем самым функциональность в соответствии с потребностями пользователей
Регистр правил "Контроль доступа"

Интеграция регистра правил "Контроль прав доступа" в конфигурации "1С: Предприятие 7.7".

Дляинтеграции регистра правил "Контроль прав доступа" в конфигурацию "1С:Предприятие 7.7" нам необходимо добавить объекты конфигурации иглобальные функции, реализующие механизм регистров правил.

Кроме того, нужно добавить вызов регистра правил присоответствующих событиях системы - при открытии документов, отчетов,справочников, перед проведением и отменой проведения документов. Обычнов конфигурациях уже существуют соответствующие точки входа в видеглобальных процедур, которые можно легко использовать для перехватасистемных событий.

Настройка системы контроля прав доступа.

Для настройки регистра правил "Контроль доступа" нам необходимы следующие шаги:
  • Создаем структуру регистра правил "Контроль доступа".
  • Создаем в регистре правил "Контроль доступа" общее правило для задания политики безопасности.
  • Создаем в регистре правил "Контроль доступа" правила для задания доступа в соответствии с конкретными значениями детерминанта.

Преимущества системы контроля прав доступа на базе регистров правил.

Системаконтроля прав доступа, использующая механизм регистров правил, имеетвсе преимущества, свойственные системам, построенным на базедекларативного подхода к программированию, а именно:
  • Простоту и естественность задания правил.
  • Простоту настройки и сопровождения системы правил.
    Кроме того, использование регистров правил обеспечивает дополнительные преимущества:
  • Простоту и легкость для понимания системы правил, основанной на принципах уточнения входной ситуации.
  • Гибкость, необходимую для учета всего многообразия входных ситуаций.
  • Возможность расширения функциональности без изменения кода системы, путем задания новых измерений регистра правил.
  • Возможность расширения функциональности путем введения подчиненных регистров правил.

Использование технологии "Регистры правил" в конфигурациях.

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

Например, так выглядит типовая конфигурация "Управлениеторговлей", использующая регистры правил для реализации системыконтроля прав доступа:
В конфигурации "УчетoАнализoУправление" фирмы "КИНТ" (http://www.kint.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0) регистры правил используются для решения таких задач как контроль доступа, система скидок, установка цен, установка типовых операций и т.д.

Заключение.

Использование регистров правил позволяет качественно упростить и систематизировать, вывести на новый уровень задание систем правил,определяющих логику работы информационной системы. Такие свойства какгибкость, расширяемость, в сочетании с простотой настройки исопровождения, позволяют надеяться, что применение регистров правилв информационных системах даст возможность создавать более простые инадежные, более "легкие" и удобные в использовании программныепродукты.

Литература.

  1. "Регистры правил", Д. Малюгин, 2003, http://www.itland-group.ru//lib/index.php?id=48.
  2. "Регистры правил. Развитие парадигмы", Д.Малюгин, 2004, http://www.itland-group.ru//lib/index.php?id=247.
Материал предоставлен: Клерк.РУ

Реклама:
Где заказать рерайтинг текстов узнай на сайте eTXT.ru