Documentation
¶
Overview ¶
Package callerorigin — ЧЕМ названа личность вызывающего на этом запросе.
Зачем отдельный носитель ¶
Личность вызывающего доезжает до решающих звеньев одним и тем же носителем (`operations.Principal`), и по нему НЕЛЬЗЯ узнать, откуда она взялась: личность, переданная нашим краем, и личность, доказанная предъявленным удостоверением, читаются одинаково. Пока происхождение не выражено, звено, которому оно нужно, вынуждено выводить его косвенно — по наличию модульного сертификата, по форме метаданных, — то есть угадывать.
Носитель нейтрален намеренно: его пишет читатель предъявленного, а читает политика вызывающего, и ни один из них не обязан знать про другого. Прямая зависимость между ними связала бы решение о ПРАВЕ ЗВАТЬ с реализацией проверки удостоверения — двумя предметами, которые меняются порознь.
Пустое значение означает «не назван», а не «назван никем» ¶
Отсутствие пометки — законное и частое состояние: так выглядит всякий запрос прежнего пути. Поэтому у чтения два результата, и второй обязателен: «пометки нет» и «пометка есть» смешивать нельзя, иначе умолчание станет утверждением.
Index ¶
- func AssuranceFrom(ctx context.Context) (string, bool)
- func CredentialIDFrom(ctx context.Context) (string, bool)
- func IsPresentedCredential(ctx context.Context) bool
- func SessionIDFrom(ctx context.Context) (string, bool)
- func With(ctx context.Context, o Origin) context.Context
- func WithAssurance(ctx context.Context, acr string) context.Context
- func WithCredentialID(ctx context.Context, id string) context.Context
- func WithSessionID(ctx context.Context, id string) context.Context
- type Origin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssuranceFrom ¶
AssuranceFrom возвращает уровень доверия и признак его присутствия.
func CredentialIDFrom ¶ added in v0.5.0
CredentialIDFrom возвращает идентификатор выпуска и признак его присутствия.
func IsPresentedCredential ¶
IsPresentedCredential — сокращение для точки решения: личность доказана предъявленным удостоверением.
func SessionIDFrom ¶ added in v0.5.0
SessionIDFrom возвращает номер записи сессии и признак его присутствия.
func WithAssurance ¶
WithAssurance кладёт УРОВЕНЬ ДОВЕРИЯ, с которым вызывающий аутентифицировался.
Значение приходит из предъявленного удостоверения и кладётся сюда ТОЛЬКО после того, как удостоверение проверено целиком: иначе оно было бы утверждением предъявителя о себе, а на утверждениях предъявителя порог доверия не держится. Пустое значение — законное состояние: удостоверение вправе не называть уровня, и такой вызывающий ранжируется как не прошедший ни одного.
func WithCredentialID ¶ added in v0.5.0
WithCredentialID кладёт ИДЕНТИФИКАТОР ВЫПУСКА предъявленного удостоверения (`jti` токена доступа).
Кладётся ТОЛЬКО после того, как удостоверение проверено целиком, — по той же причине, что уровень доверия. Кладут двое: читатель предъявленного, проверив токен сам, и читатель переданного краем (`internal/edgecredential`, kaname#677) — номер выпуска токена, который проверил край, и только от доверенного отправителя личности. Читатель — звено, которому нужна запись сессии вызывающего: выпуск называет своё семейство, семейство — сессию, в которой шла церемония (снятие ключа доступа, Ф13 Р8, kaname#669).
func WithSessionID ¶ added in v0.5.0
WithSessionID кладёт НОМЕР ЗАПИСИ СЕССИИ, из которой человек звонит (`hss-…`, kaname#677).
Кладёт его ровно одно звено — читатель переданного краем (`internal/edgecredential`), и только когда отправитель прошёл проверку доверенного отправителя личности: то же решение, что пускает переданную личность. Читателей два: снятие ключа доступа оставляет эту запись живой и снимает прочие записи человека (Ф13 Р8); вопрос о правах выводит из неё доводы способов и момента условия `mfa_fresh`, если запись жива и принадлежит доверенной личности вопроса (kaname#133). Номер записи ничего не аутентифицирует: им нельзя ни назваться, ни продлить сессию.