Використання технології "Регістри правил" для керування правами доступу PDF Печать E-mail

Автор: Павло Лазарєв
источник:http://itland.ru

Регістри правил є зручним інструментом для вибірки несуперечливої інформації при складних і/або різноманітних вхідних умовах. У даній статті розглядається використання технології регістрів правил для керування правами доступу до об'єктів інформаційної бази.

Огляд технології "Регістри правил".

Важливої, а можливо, і основною функцією інформаційних систем является реалізація й підтримка ними деяких систем правил, описивающих реакцію на дії користувача, а також на інші собития.

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

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

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

с практичної точки зору технологія регістрів правил призначена для реалізації деякої системи правил, що підходить для рішення поставленого завдання.

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

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

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

Набір правил у загальному випадку будується за принципом уточнення входной ситуації. Це означає, що спочатку визначаються правила, загальні для будь-яких значень, а потім - правила, що конкретизують, сужающие входную ситуацію.

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

при допомоги регістра правил дуже легко й природно задається правило такого роду, наприклад, для завдання політики дозволу можна використати:

далее, ми можемо визначити уточнюючі правила, що обмежують доступ до об'єктів інформаційної системи:

Завдання системи керування правами доступу

Системи контроля доступу призначені для розмежування доступу до інформації, т.е. система повинна надати доступ до об'єктів і процедур всім, кто має відповідні права, і заборонити всім, хто таких прав не имеет.

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

ето погано, незручно, але... що робити?

Недоліки існуючих підходів до побудови систем керування правами доступу

чаще всього, контроль доступу будується на базі системи ролей (суб'єктів), для яких визначаються списки контролю доступу (access control list, ACL) до об'єктів інформаційної системи. При цьому для кожного класу об'єктів інформаційної системи деяким чином задаються права, які мають стосовно них суб'єкти.

Наприклад, для користувачів "Користувач1" і "Користувач2" ми визначаємо роль "Менеджер по продажах". Для об'єкта "Рахунок-фактура на расход" роль "Менеджер по продажах" має права "Доступ дозволений".



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

Що, якщо нам треба обмежити суму документа, які мають право виписувати певні менеджери? Або одержувати певні клиенти? Або дозволити працювати тільки з документами сьогоднішнього дня?

ясно, що таких ситуацій може бути величезна безліч, причому ми не можемо їх спрогнозувати на етапі розробки системи.

нам необхідний інструмент, що дозволяє описати вхідну ситуацію й видати на її основі рішення - надавати чи доступ ні.

к щастю, такий інструмент у нас уже є, і це - регістр правил.

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

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

один ресурс нам відомий - це булево значення Доступ (Так/Немає).
в якості другого ресурсу виберемо рядок повідомленння, що система буде виводити при відмові в доступі.

ограничим виміру регістра наступними значеннями:
  • Подія системи. Можливі значення - Відкриття, Запис, Проведення, Скасування-Проведення.
  • Тип об'єкта. Значення - Документ, Звіт, Довідник.
  • Вид об'єкта. Значення - види відповідних об'єктів.
  • Ім'я користувача.
  • Сума документа. Вимір є діапазоном, обмеженим "знизу" значенням виміру. Це означає, що, наприклад, правилу з заданной сумою документа 1000, будуть відповідати всі документи, имеющие суму >= 1000.
  • Вік документа в днях. Вимір є діапазоном, обмеженим "знизу".

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

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

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

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

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

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

    Переваги системи контролю прав доступу на базі регістрів правил

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

    Використання технології "Регістри правил" вконфигурациях.

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

    Наприклад, так виглядає типова конфігурація "Керування торговлей", що використає регістри правил для реалізації системи контроля прав доступу:

    в конфігурації "Учетoанализoуправление" фірми "КИНТ" (http://www.kint.ru) регістри правил використаються для рішення таких завдань як контроль доступу, система знижок, установка цін, установка типових операцій і т.д.

    Висновок

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

    Література

  • "Регістри правил", Д. Малюгин, 2003, http://itland.ru/lib/index.php?id=48.
  • "Регістри правил. Розвиток парадигми", Д.Малюгин, 2004, http://itland.ru/lib/index.php?id=247.
  •  
    « Пред.   След. »