Initial commit: VMware vSphere API simulator scaffold.
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.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
**Language / Язык:** [English](../../domains/session.md) | [Русский](session.md)
|
||||
|
||||
# Session
|
||||
|
||||
Устойчивая идентичность сессии, общая для REST и SOAP:
|
||||
[`app/vsphere/security/session.py`](../../../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` резолвит сессию из заголовка или cookie
|
||||
`vmware-api-session-id`; отсутствует/истекла → HTTP 401.
|
||||
- Роли привязываются к сессии при lookup (`vsphere_credentials.roles`) и
|
||||
управляют [Авторизацией](authz.md).
|
||||
|
||||
Полные примеры запросов — [Аутентификация](../authentication.md).
|
||||
Reference in New Issue
Block a user