Documentation
¶
Overview ¶
Package acrlevel — ранжирование уровня аутентификации (`acr`): ОДНА таблица на платформу.
Порядок (нормативный):
"" / "0" (аноним) < "1" (только пароль, AAL1) < "2" (стойкий к фишингу / MFA, AAL2) < "3" (аппаратный ключ доступа с проверкой пользователя, AAL3)
Незнакомое значение ранжируется нулём (fail-closed). Требование "" (или "0") означает, что требования НЕТ.
Почему отдельный пакет ¶
Ранжирование — чистая функция, и читают его не только точки принуждения (правило step-up `grpcsrv.EvaluateStepUp`), но и слои, у которых транспорта нет вовсе: разбор настроек посадки, use-case службы доступа. Пока таблица жила в пакете gRPC-сервера, каждый такой читатель получал ребро на сервер ради одной функции. Здесь пакет не импортирует ничего; что транспорт не приезжает и транзитивно, держит проба `TestRankingPackagePullsNoTransport` рядом.
Одна таблица ¶
Правило step-up берёт ранг отсюда и своей таблицы не держит; второй таблицы в модуле нет. Прежнего адреса (`grpcsrv.ACRRank`, `grpcsrv.ACRSatisfies`) тоже нет: второй адрес одной функции — переходный режим, и потребитель переезжает на этот вместе с бампом пина.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Rank ¶
Rank отображает значение `acr` в сравнимое целое. Незнакомое и искажённое значение — 0 (аноним): fail-closed там, где политика ждёт ≥ 1.
func Satisfies ¶
Satisfies сообщает, удовлетворяет ли предъявленный `acr` требуемому порогу.
- required "" или "0" → требования нет → всегда true;
- иначе → Rank(presented) >= Rank(required).
Отсутствующий или незнакомый предъявленный `acr` ранжируется нулём и не проходит ни одного положительного порога (fail-closed).
Это ТОЛЬКО ветвь `acr` правила step-up. Точка принуждения зовёт `grpcsrv.EvaluateStepUp`, которое сверх неё применяет изъятие машинного принципала и окно свежести MFA; вызов Satisfies прямо из пути принуждения воспроизводит половину правила — ровно то, что ловят пробы равенства вердиктов у точек принуждения.
Types ¶
This section is empty.