Назначение
Опиши, какое действие защищает permission/policy, почему доступ чувствительный и какие domain risks закрываются.
Идентификация
| Поле | Значение |
|---|
| Permission | <domain.resource.action> |
| Policy | <PolicyName> |
| Owner service/app | <service-or-app> |
| Applies to | <API/page/component/job/manual action> |
| Audit level | ReadSensitive / ManualDecision / MoneyDecision / SecurityDecision |
Акторы
| Actor | Разрешено | Условия | Причина отказа |
|---|
<AdminRole> | Да/Нет | <tenant/brand/MFA/status> | <ErrorCode> |
| Поле | Тип | Обязательность | Источник | Описание |
|---|
TenantId | TenantId | Да | Identity claims | Tenant boundary. |
ActorId | UserId | Да | Identity claims | Actor, выполняющий действие. |
<FieldName> | <Type> | Да/Нет | <route/body/resource> | <описание> |
Правила Решения
| Правило | Условие | Результат | Ошибка |
|---|
<RuleName> | <condition> | Allow / Deny | <ErrorCode> |
Правила Scope
| Scope | Правило |
|---|
| Tenant | <actor tenant must match resource TenantId> |
| Brand | <allowed BrandIds contains resource BrandId> |
| Resource ownership | <owner/assignee/team rule> |
| MFA/session | <fresh MFA/session age requirement> |
Точки Enforcement
| Место | Enforcement | Поведение при отказе |
|---|
| API | <controller/action/filter/handler> | <403/404 masked> |
| Frontend | <route guard/component guard> | <forbidden state> |
| Background/manual | <operator permission check> | <stop and audit> |
Audit И Журналирование
| Действие | Поля | Обработка sensitive данных |
|---|
| Allowed | TenantId, ActorId, <resource id> | <mask/exclude> |
| Denied | TenantId, ActorId, <reason> | <mask/exclude> |
Тесты
| Тест | Ожидание |
|---|
| Allowed actor | <success> |
| Missing permission | <typed forbidden> |
| Wrong tenant | <deny without data leak> |
| MFA required | <step-up required/deny> |
Обратные ссылки
Автоссылки: где используется этот документ.