Versola — это сервер авторизации OAuth 2.0 и OpenID Connect для самостоятельного размещения, консоль администратора для его настройки и прокси edge, который проверяет аутентификацию и авторизацию перед вашими API. Здесь описаны части системы и для кого она подходит. Если хотите сначала запустить её, переходите к локальному запуску.
До 1.0: Versola не гарантирует совместимость до версии 1.0.0. Конфигурация, схема базы данных и API могут меняться между релизами 0.x без пути миграции. Перед обновлением сделайте резервную копию базы.
Что входит в состав
| Часть | Уровень | Что делает |
|---|---|---|
central и консоль администратора | Управления | Хранит всю конфигурацию. Тенанты, клиенты, scope, роли, разрешения и ресурсы вы настраиваете в консоли или через Central API |
auth | Данных | Аутентифицирует пользователей (пароль, OTP, passkey), выпускает токены, обслуживает эндпоинты OIDC |
edge | Трафика | Обратный прокси для ваших API. Выполняет вход и ведёт сессии браузера, применяет политики на уровне эндпоинтов и служит шлюзом и для браузерных, и для нативных мобильных приложений |
В стандартной топологии у каждого сервиса своя база Postgres. Локальный запуск и деплой на VPS кладут все три в одну базу, по схеме на сервис.
flowchart TB
admin[["👤 Administrator"]]
user[["👤 End user"]]
subgraph versola["⚡ Versola"]
proxy["versola-proxy<br/><i>nginx</i><br/>Routing and admin console files"]
edge["edge<br/><i>traffic plane</i><br/>Sessions, policies, native gateway"]
auth["auth<br/><i>data plane</i><br/>OAuth 2.1 and OIDC server"]
central["central<br/><i>control plane</i><br/>Configuration and Central API"]
db[("Postgres<br/>one database<br/>schemas auth, central, edge")]
end
upstream{{"🔌 Upstream APIs"}}
notifications{{"📧 OTP delivery"}}
admin -->|Console and API| proxy
user -->|Login and API calls| proxy
proxy --> edge
proxy --> auth
edge -->|Token, PAR, userinfo| auth
edge -->|Console API calls| central
edge -.->|Sync| central
auth -.->|Sync| central
edge -->|Proxy| upstream
auth -->|Request OTP| notifications
central --> db
auth --> db
edge --> db
style admin fill:#92400e,stroke:#92400e,color:#fff
style user fill:#166534,stroke:#166534,color:#fff
style proxy fill:#334155,stroke:#e6edf3,color:#fff
style central fill:#155e75,stroke:#e6edf3,color:#fff
style edge fill:#155e75,stroke:#e6edf3,color:#fff
style auth fill:#155e75,stroke:#e6edf3,color:#fff
style db fill:#0e4a5c,stroke:#e6edf3,color:#fff
style upstream fill:#334155,stroke:#e6edf3,color:#fff
style notifications fill:#334155,stroke:#e6edf3,color:#fff
style versola fill:#eaf3f5,stroke:#155e75,stroke-width:2px,color:#15171c
Подробности — на странице «Архитектура».
Для кого
Versola подходит командам, которые сами держат слой идентификации и хотят настраиваемый сервер с прокси, применяющим политики, вместо кода авторизации в каждом сервисе. Работает в Docker (через CLI), на одном сервере или в Kubernetes.
Продукт ещё не достиг версии 1.0. Прежде чем планировать промышленное использование, изучите лицензию: она не является открытой.
Лицензия
Versola распространяется по лицензии Versola Community License v1.0. Бесплатно её можно использовать для внутренней аутентификации сотрудников в организациях с численностью менее 50 человек, а любая организация вправе оценивать продукт до 90 дней. Любое другое промышленное использование требует коммерческой лицензии. Подробнее — в разделе «Лицензирование».
Что дальше
- Установите CLI и запустите Versola локально.
- Защитите API с помощью edge.
- Настройте вход в нативном мобильном приложении.
- Сущности: тенанты, клиенты, ресурсы, роли и порядок их создания.