Каждый HTTP API Versola описан файлом OpenAPI 3.1, который лежит рядом с кодом в репозитории versola, ветка main. Эти файлы — контракт: откройте их в любом OpenAPI-просмотрщике или передайте генератору клиентов.
Auth: сервер OAuth 2.0 / OpenID Connect
Публичные эндпоинты сервиса auth. Один файл на группу эндпоинтов, каталог auth/open-api/.
| Спецификация | Эндпоинты | Подробнее |
|---|---|---|
authorize.yaml | GET и POST /authorize | RFC 6749, PKCE, JAR, JARM |
par.yaml | POST /par | RFC 9126 |
token.yaml | POST /token | RFC 6749, DPoP |
introspect.yaml | POST /introspect | RFC 7662 |
revoke.yaml | POST /revoke | RFC 7009 |
userinfo.yaml | GET и POST /userinfo | OIDC Core |
logout.yaml | GET и POST /logout | Front-channel и back-channel logout |
jwks.yaml | GET /.well-known/jwks.json | RFC 7517 |
metadata.yaml | GET /.well-known/openid-configuration, GET /.well-known/oauth-authorization-server | RFC 8414 |
Эндпоинты ведут себя по-разному в зависимости от профиля безопасности тенанта: спецификации описывают оба профиля, поэтому читайте пометки про профили в каждом файле.
Central: плоскость управления
central/open-api/central.yaml описывает административный API, на котором построена консоль администратора: тенанты, клиенты, ресурсы, scope, разрешения, роли, пользователи, challenges, формы, локали, темы, JWKS, edge и системные настройки. Тот же файл отображается в браузере на странице Central API.
Edge: плоскость трафика
edge/open-api/edge.yaml описывает маршруты входа через браузер, проксирующий маршрут /resources/{resourceId}/{path}, /permissions/me и эндпоинты /native/* для мобильных приложений. Как они складываются в одну схему, см. в обзоре Edge.
Известные пробелы в спецификациях
Файлы OpenAPI местами отстают от кода. Если спецификация и наблюдаемое поведение расходятся, ошибка либо в коде, либо в спецификации: сообщите об этом в issues на GitHub.
- В
authorize.yamlнетresponse_modeиrequest. - В
token.yamlиintrospect.yamlне описаныclient_assertionи аутентификация клиента по mutual TLS. - В
introspect.yamlв ответе не указанcnf. - В
central.yamlнетPOST /configuration/clients/edge-certificate/renew,POST /configuration/jwks/generate,GET /configuration/jwks/keysиPOST /users/registrations. - В полях
info.licenseнекоторых спецификаций указана лицензия, отличная от Versola Community License.