Permission Decision Contract


НАЧАЛО >> Подсистема безопасности >> Permission Decision Contract📄 Скачать в DOCX


Security предоставляет общий контракт проверки доступа для UI, API, workflow runtime, публичных форм, фильтров и экспорта. Контракт не содержит знаний о задачах, workflow, файлах или других доменных объектах: вызывающий модуль передает субъект, объект, ключ права, область проверки и контекст.

Основной результат проверки - SecurityAccessDecision. В нем фиксируются allowed, decision, permissionKey, scope, безопасная причина отказа или разрешения, diagnostic code, object reference, subject reference и признак необходимости audit.

Поддерживаемые решения:

Решение Смысл
allow действие разрешено
deny действие запрещено
mask значение можно показать только в маскированном виде
readonly объект или поле доступно только для чтения
not-applicable отдельная схема не задана, вызывающий модуль применяет свое совместимое поведение

Для record-level действий без новой схемы Security может использовать старые права поля 113, чтобы не ломать существующие сценарии. Для новых промышленных контуров рекомендуется передавать PermissionScheme или schemeKey: deny имеет приоритет над grant, wildcard-правило не может перекрыть явный запрет.

Field security и view security вызываются через CheckFieldAccess() и CheckViewAccess(). Модуль Security работает с логическими field/view keys и не должен знать физические номера полей предметных записей. Номера полей и способы ввода остаются ответственностью доменного модуля, FieldConfiguration, WorkflowScreen и he3/ws.

Batch-проверка доступна через BatchCheckPermissions(). Она нужна спискам, фильтрам, карточкам и API, чтобы не выполнять тяжелую проверку отдельно для каждого элемента интерфейса.

Если решение требует audit, Security формирует audit envelope без сохранения скрытого содержимого. Постоянное хранение audit, доменная история и события выполняются соответствующими владельцами контуров.