Edges — Versola Docs
VersolaVersola/docs
До 1.00.7.1versola.kzGitHub

Edges

Экран Edges в консоли администратора — как зарегистрировать edge, сменить его ключ подписи, увидеть привязанные тенанты и решить, требует ли edge DPoP nonce.

Запись edge сообщает central, что существует работающее развёртывание edge и какой публичный ключ доказывает его подлинность. На этом экране вы регистрируете запись, меняете ключ и переключаете требование DPoP nonce для вызовов, которые edge проксирует. О том, что делает сам edge, см. Обзор edge.

Прежде чем начать

Пункт Edges находится в боковом меню в группе GLOBAL: edge не привязан к тенанту. Чтобы увидеть экран, нужно разрешение edges:read. Для создания edge, смены и удаления ключа, удаления edge и переключения nonce нужно edges:manage; без него кнопки скрыты, а флажок доступен только для чтения.

Что такое запись edge

central хранит для каждого edge четыре вещи:

ПолеЗначение
Edge IDИмя развёртывания, например edge-default. Задаётся один раз и не редактируется.
Публичный ключПубличный RSA-ключ (JWK), парный приватному ключу, который хранит edge. Приватный ключ central не хранит.
Старый публичный ключЕсть только пока идёт смена ключа.
Require DPoP nonceТребует ли этот edge DPoP nonce на каждом проксируемом вызове. У новых edge включено.

Экземпляр edge представляется central подписанным токеном. Он подписывает JWT алгоритмом RS256 своим приватным ключом, кладёт key-id в заголовок kid, а id — в заголовок edge_id, и отправляет токен в central. central находит запись по edge_id и проверяет подпись по сохранённому публичному ключу, а во время смены ключа — ещё и по старому. Токен живёт 10 минут, edge обновляет его каждые 9. По этому токену edge забирает из central свою конфигурацию (ресурсы, endpoint’ы, разрешения, роли, клиентов, presets, ключи и политику DPoP) с периодом configuration-cache-refresh-interval.

Эти же записи читает auth. Когда edge обращается к auth от имени вошедшего пользователя, он присылает короткоживущее утверждение, подписанное тем же ключом. auth проверяет его по публичному ключу edge и по списку тенантов, привязанных к этому edge. Утверждение от зарегистрированного edge, который не стоит перед тенантом токена, отклоняется.

Как запись связана с конфигурацией edge

Три значения в консоли и в файле конфигурации edge должны совпадать. Сам файл описан в разделе Конфигурация edge.

Ключ конфигурации edgeОткуда взять значение
idEdge ID на этом экране.
key-idKey ID, он показывается один раз при создании или смене ключа. Это время создания по UTC в виде 2026-10-14_07-29-17.
private-keyPrivate Key, он показывается один раз в тот же момент. central генерирует пару RSA-ключей на 2048 бит и оставляет у себя только публичную часть.

Создание записи ничего не разворачивает. Конфигурацию edge генерируют CLI и Helm-чарт. При свежей установке central дополнительно создаёт edge, перечисленные в его блоке bootstrap (в установке через CLI это edge-default), и привязывает к первому из них тенант default. Регистрируйте edge вручную, когда запускаете ещё один.

Список

Edges — по одной строке на каждый зарегистрированный edge
Страница Edges с одним edge, edge-default, и значками карандаша и крестика в его строке

В строке показаны ID edge, карандаш (редактирование) и крестик (удаление). Пока у edge остаётся старый ключ, рядом с ID виден значок Key Rotation. Щёлкните по строке, чтобы раскрыть её.

Раскрытый edge: привязанные тенанты и настройка DPoP nonce
Раскрытая строка edge-default: тенанты acme, acme-fapi и default в блоке Linked Tenants и отмеченный флажок DPoP Nonce

Привязанные тенанты

В блоке Linked Tenants перечислены тенанты, у которых в поле Edge выбран этот edge. Здесь связи не меняются, их задают в форме тенанта, см. Тенант. Если тенантов нет, в строке написано «No tenants assigned to this edge».

DPoP nonce

В разделе DPoP Nonce один флажок, Required on every proxied call, и кнопка i с пояснением. Он управляет разделом 9 RFC 9449 для вызовов, которые этот edge проксирует к вашему API.

СостояниеЧто делает edge
ВключеноКаждое DPoP-доказательство должно содержать nonce, выданный edge. На вызов без nonce edge отвечает use_dpop_nonce и новым nonce в заголовке DPoP-Nonce, и клиент повторяет запрос. Цена — один лишний обмен на клиента за время жизни nonce, а не на каждый запрос.
ВыключеноClaim nonce не читается, nonce не выдаётся. Режима «предпочитать» нет.

Изменение доходит до edge при его следующей синхронизации конфигурации. Прежде чем включать, убедитесь, что каждый клиент, который вызывает API через этот edge с DPoP, умеет повторять запрос после use_dpop_nonce: иначе его проксируемые вызовы начнут падать. Выключение ничего не ломает.

Настройка действует на этот edge и на вызовы, которые он проксирует. Endpoint’ы /token и /userinfo в auth подчиняются настройке тенанта Require DPoP nonce в Challenges & Security. Подробнее о причинах см. Токены с привязкой к отправителю.

Создание edge

  1. Нажмите + Create Edge. Если список пуст, та же кнопка есть в пустом состоянии.
  2. Введите часть ID после фиксированного префикса edge-: строчные буквы, цифры и дефисы, например us-east-1. Если полный ID некорректен или уже существует, форма покажет ошибку.
  3. Нажмите Create Edge.
Create Edge — ID всегда начинается с edge-
Форма Create Edge: фиксированный префикс edge- перед полем Edge ID и кнопки Cancel и Create Edge

Затем консоль покажет баннер Edge Key Generated с полями Edge ID, Key ID и Private Key. Приватный ключ не сохраняется и повторно не показывается. Нажмите Copy Private Key, перенесите три значения в конфигурацию edge и нажмите I’ve Saved It.

Смена ключа

Меняйте ключ, если он мог утечь, или по собственному графику. Во время перехода работают оба ключа, поэтому останавливать экземпляры edge не нужно.

  1. Нажмите карандаш в строке edge.
  2. Нажмите Rotate Key и подтвердите. Консоль покажет баннер Edge Key Rotated с новыми Key ID и Private Key. Сохраните их.
  3. Замените key-id и private-key в конфигурации каждого экземпляра edge и перезапустите их.
  4. Когда ни один экземпляр не использует старый ключ, откройте edge снова и нажмите Delete old key. После этого работает только новый ключ.
Edit Edge — Rotate Key, пока старого ключа нет
Страница Edit Edge для edge-default с кнопками Rotate Key и Close

Пока старый ключ существует, кнопка Rotate Key заменена на Delete old key. Начать вторую смену, не завершив первую, нельзя.

Удаление edge

Нажмите крестик в строке и подтвердите. Запись и её ключи удаляются, а у всех тенантов, которые на неё указывали, edge становится пустым. Экземпляр edge, который продолжает работать с этим id, больше не сможет пройти аутентификацию в central. Перед удалением привяжите тенанты к другому edge.

Что дальше