callerorigin

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2026 License: AGPL-3.0 Imports: 1 Imported by: 0

Documentation

Overview

Package callerorigin — ЧЕМ названа личность вызывающего на этом запросе.

Зачем отдельный носитель

Личность вызывающего доезжает до решающих звеньев одним и тем же носителем (`operations.Principal`), и по нему НЕЛЬЗЯ узнать, откуда она взялась: личность, переданная нашим краем, и личность, доказанная предъявленным удостоверением, читаются одинаково. Пока происхождение не выражено, звено, которому оно нужно, вынуждено выводить его косвенно — по наличию модульного сертификата, по форме метаданных, — то есть угадывать.

Носитель нейтрален намеренно: его пишет читатель предъявленного, а читает политика вызывающего, и ни один из них не обязан знать про другого. Прямая зависимость между ними связала бы решение о ПРАВЕ ЗВАТЬ с реализацией проверки удостоверения — двумя предметами, которые меняются порознь.

Пустое значение означает «не назван», а не «назван никем»

Отсутствие пометки — законное и частое состояние: так выглядит всякий запрос прежнего пути. Поэтому у чтения два результата, и второй обязателен: «пометки нет» и «пометка есть» смешивать нельзя, иначе умолчание станет утверждением.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssuranceFrom

func AssuranceFrom(ctx context.Context) (string, bool)

AssuranceFrom возвращает уровень доверия и признак его присутствия.

func CredentialIDFrom added in v0.5.0

func CredentialIDFrom(ctx context.Context) (string, bool)

CredentialIDFrom возвращает идентификатор выпуска и признак его присутствия.

func IsPresentedCredential

func IsPresentedCredential(ctx context.Context) bool

IsPresentedCredential — сокращение для точки решения: личность доказана предъявленным удостоверением.

func SessionIDFrom added in v0.5.0

func SessionIDFrom(ctx context.Context) (string, bool)

SessionIDFrom возвращает номер записи сессии и признак его присутствия.

func With

func With(ctx context.Context, o Origin) context.Context

With помечает происхождение личности вызывающего.

func WithAssurance

func WithAssurance(ctx context.Context, acr string) context.Context

WithAssurance кладёт УРОВЕНЬ ДОВЕРИЯ, с которым вызывающий аутентифицировался.

Значение приходит из предъявленного удостоверения и кладётся сюда ТОЛЬКО после того, как удостоверение проверено целиком: иначе оно было бы утверждением предъявителя о себе, а на утверждениях предъявителя порог доверия не держится. Пустое значение — законное состояние: удостоверение вправе не называть уровня, и такой вызывающий ранжируется как не прошедший ни одного.

func WithCredentialID added in v0.5.0

func WithCredentialID(ctx context.Context, id string) context.Context

WithCredentialID кладёт ИДЕНТИФИКАТОР ВЫПУСКА предъявленного удостоверения (`jti` токена доступа).

Кладётся ТОЛЬКО после того, как удостоверение проверено целиком, — по той же причине, что уровень доверия. Кладут двое: читатель предъявленного, проверив токен сам, и читатель переданного краем (`internal/edgecredential`, kaname#677) — номер выпуска токена, который проверил край, и только от доверенного отправителя личности. Читатель — звено, которому нужна запись сессии вызывающего: выпуск называет своё семейство, семейство — сессию, в которой шла церемония (снятие ключа доступа, Ф13 Р8, kaname#669).

func WithSessionID added in v0.5.0

func WithSessionID(ctx context.Context, id string) context.Context

WithSessionID кладёт НОМЕР ЗАПИСИ СЕССИИ, из которой человек звонит (`hss-…`, kaname#677).

Кладёт его ровно одно звено — читатель переданного краем (`internal/edgecredential`), и только когда отправитель прошёл проверку доверенного отправителя личности: то же решение, что пускает переданную личность. Читателей два: снятие ключа доступа оставляет эту запись живой и снимает прочие записи человека (Ф13 Р8); вопрос о правах выводит из неё доводы способов и момента условия `mfa_fresh`, если запись жива и принадлежит доверенной личности вопроса (kaname#133). Номер записи ничего не аутентифицирует: им нельзя ни назваться, ни продлить сессию.

Types

type Origin

type Origin string

Origin — чем названа личность вызывающего.

const (
	// PresentedCredential — личность доказана удостоверением, ПРЕДЪЯВЛЕННЫМ
	// самим вызывающим и проверенным нами целиком.
	PresentedCredential Origin = "presented-credential"
)

func From

func From(ctx context.Context) (Origin, bool)

From возвращает происхождение и признак его присутствия.

Второй результат обязателен: без него «пометки нет» неотличимо от «пометка есть и пуста», а решение, принимаемое по первому в одиночку, читало бы умолчание как утверждение.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL