f8d3cbdd59
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API contracts, docs, client examples, and the unit/integration/compatibility test suite for local client and tooling labs without a real vCenter.
1.9 KiB
1.9 KiB
Language / Язык: English | Русский
Session
Устойчивая идентичность сессии, общая для REST и SOAP:
app/vsphere/security/session.py.
Эндпоинты
| Метод | Путь | Заметки |
|---|---|---|
| POST | /api/session |
Basic auth → JSON-строка session id + заголовок/cookie vmware-api-session-id |
| GET | /api/session |
HTTP 200; заголовки x-vmware-session-user / x-vmware-session-roles |
| DELETE | /api/session |
Инвалидирует сессию, очищает cookie |
| POST/GET/DELETE | /rest/com/vmware/cis/session |
Legacy-эквиваленты { "value": … } |
| POST | SOAP SessionManager.Login |
Возвращает тот же session id; ставит cookie vmware_soap_session |
| POST | SOAP SessionManager.Logout |
Удаляет сессию |
Основные моменты
- Сессии — непрозрачные 32-символьные hex-токены в
vsphere_sessionsсо скользящим TTL 2 часа — каждый аутентифицированный вызов продлеваетexpires_at. - Четыре лабораторные учётки (
vsphere_credentials, scrypt-хеш) идемпотентно обеспечиваются при первом login и каждым профилем seed (ensure_default_credentials). require_sessionрезолвит сессию из заголовка или cookievmware-api-session-id; отсутствует/истекла → HTTP 401.- Роли привязываются к сессии при lookup (
vsphere_credentials.roles) и управляют Авторизацией.
Полные примеры запросов — Аутентификация.