НАЧАЛО >> Подсистема безопасности >> 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, доменная история и события выполняются соответствующими владельцами контуров.