Экран Well Known управляет публичной конфигурацией, которую Versola отдаёт наружу: набором ключей JSON Web Key Set (JWKS), по которому клиенты и API проверяют ваши токены, и документом метаданных сервера. Здесь можно сгенерировать ключ подписи, опубликовать ключ, который вы храните в другом месте, или вывести старый ключ из обращения. Ключ начинает подписывать токены тенанта только после того, как вы выберете его в Token Signing Key на экране Challenges & Security.
Перед началом
| Что нужно | Разрешение |
|---|---|
| Видеть ключи и метаданные | jwks:read |
| Генерировать, добавлять, менять и удалять ключи, менять метаданные | jwks:manage |
Экран общий, он не зависит от выбранного в боковой панели тенанта. Без jwks:manage кнопок + Add Key, Generate Key, ✎ и ✕ нет.

JWKS
Каждый ключ — это карточка с его kid, типом и алгоритмом (например, EC · ES256), значком и опубликованным JWK. Значок говорит, что Versola умеет делать с ключом:
| Значок | Значение |
|---|---|
| Can sign | Central хранит закрытую часть, у ключа известный alg. Тенант может выбрать его как Token Signing Key. |
| Verify only | У Central только открытый JWK. Ключ опубликован, чтобы проверяющие его принимали, но подписывать им ничего не будут. |
Развёртывание, засеянное из bootstrap.jwks, начинает с ключей «только для проверки»: закрытые части этих ключей Central не получал. Чтобы получить ключ, которым можно подписывать, сгенерируйте его.
Algorithms
Список рядом с Generate Key предлагает три алгоритма:
| Алгоритм | Какой ключ создаётся | Примечания |
|---|---|---|
PS256 | RSA-2048 | Выбирается по умолчанию для нового тенанта, у которого нет выбранного ключа. |
ES256 | EC, кривая P-256 | Тоже допустим в FAPI 2.0. |
RS256 | RSA-2048 | Сгенерировать можно для любого тенанта, а выбрать для подписи — только у тенанта с профилем безопасности Standard. На тенанте FAPI 2.0 Central его отклоняет. |
PS256 и ES256 разрешены в обоих профилях. HS256 не предлагается: общему секрету нечего публиковать в JWKS. kid сгенерированного ключа — это метка времени и алгоритм, например 2026-10-14_07-29-17-es256.
Generate Key
Generate Key создаёт пару ключей для выбранного алгоритма, сразу публикует открытую часть, а закрытую хранит в Central в зашифрованном виде. Закрытый ключ в консоли не показывается и не скачивается.
Подсказка под кнопками описывает следствие: сгенерированный ключ публикуется для проверки сразу, но ничего не подписывает, пока тенант не выберет его в Challenges & Security, так что все проверяющие узнают ключ раньше, чем кто-либо начнёт выпускать токены с ним.
+ Add Key
+ Add Key открывает Add JWK с полем JWK JSON, куда вставляется открытый JWK. Так публикуют ключ, закрытую часть которого вы храните в другом месте. Консоль требует kid и kty; Central требует kid и иначе отвечает JWK must contain a 'kid' field или Invalid JWK JSON. Добавленный так ключ всегда Verify only.

Изменение и удаление
Значок ✎ открывает JWK существующего ключа для редактирования; kid менять нельзя (удалите ключ и добавьте новый). Значок ✕ запрашивает подтверждение в диалоге Delete JWK и затем убирает ключ из JWKS.
Central не удаляет ключ, которым ещё подписывает какой-либо тенант, и отвечает Key '<kid>' is the signing key of <tenants>. Select another key for them before deleting it. Сначала переведите эти тенанты на другой ключ. После удаления ключ больше не публикуется, и токены, подписанные им, проверить уже нечем.
Где используются ключи
| Потребитель | Что использует |
|---|---|
auth, подпись | Ключ, выбранный для тенанта как Token Signing Key, подписывает access-токены, ID-токены и logout-токены. Алгоритм берётся из ключа. Тенант без выбора подписывает закрытым ключом из конфигурации jwt.private-key сервиса auth. |
auth, публикация | GET /.well-known/jwks.json возвращает открытые части всех ключей с заголовком Cache-Control: public, max-age=86400. Аутентификация не нужна. Resource server при незнакомом kid должен запросить набор заново, а не ждать истечения кэша. |
edge | Проверяет токены по открытым частям, которые синхронизирует из Central. Закрытый ключ он не получает никогда. |
| Central | Проверяет токены консоли администратора этими же ключами. |
Формат набора описан в RFC 7517. Endpoint Central за этим экраном (/configuration/jwks) описаны в справочнике OpenAPI.
Ротация ключа подписи
Экран поддерживает ротацию в три шага:
- Generate Key для нужного алгоритма. Новый ключ публикуется, но им пока никто не подписывает.
- Откройте Challenges & Security каждого тенанта и выберите новый ключ в Token Signing Key.
authпереключится на него после синхронизации ключа; до этого он продолжает подписывать прежним. - Удалите старый ключ, когда не осталось токенов, которые вам ещё нужно проверять и которые подписаны им. Подождите не меньше, чем живёт самый долгоживущий токен с этой подписью, и не меньше, чем проверяющие кэшируют JWKS (24 часа для ответов
auth).
Versola не ротирует ключи по расписанию и сама их не выводит из обращения.
Server Metadata
Под ключами Server Metadata показывает документ метаданных сервера авторизации в виде JSON. Значок ✎ открывает его на редактирование. Консоль требует issuer, authorization_endpoint, token_endpoint, jwks_uri и response_types_supported и без них не сохраняет. auth отдаёт документ по адресам /.well-known/openid-configuration и /.well-known/oauth-authorization-server. Член authorization_details_types_supported автоматически согласуется с типами, которые вы регистрируете в Challenges & Security. См. RFC 8414.
Что дальше
- Challenges & Security — выбор ключа подписи для тенанта
- Профили безопасности — правило про RS256
- RFC 7517 и справочник OpenAPI