Initial release of the oVirt/RHV Engine API simulator.

Stateful FastAPI lab with contract packs, Compose/Helm, Docker Hub release
targets, and Pulumi coverage across all Engine series (GET/POST/PUT/DELETE/HEAD).
This commit is contained in:
2026-07-18 04:49:28 +03:00
commit cbd0adca91
218 changed files with 246804 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
**Language / Язык:** [English](../authentication.md) | [Русский](authentication.md)
# Аутентификация
Симулятор реализует Engine-стиль **HTTP Basic**, **SSO OAuth2** password grant
и bearer-токены для последующих вызовов API.
## Засеянные учётные записи
Пароль для всех пользователей: **`secret`**. Домен: **`internal`**.
| Principal | Типичная роль |
|---|---|
| `admin@internal` | SuperUser |
| `ops@internal` | оператор лаборатории |
| `developer@internal` | разработчик лаборатории |
| `demo@internal` | демо-пользователь |
## HTTP Basic
```bash
curl -k -u 'admin@internal:secret' \
-H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/vms
```
## OAuth2 password grant
```bash
curl -k -X POST https://127.0.0.1/ovirt-engine/sso/oauth/token \
-d 'grant_type=password&username=admin@internal&password=secret&scope=ovirt-app-api'
```
В ответе: `access_token`, `token_type`, `scope` и `exp`. Используйте токен как
Bearer:
```bash
TOKEN=... # access_token из ответа
curl -k -H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/vms
```
Связанные эндпоинты:
| Метод | Путь | Назначение |
|---|---|---|
| `POST` | `/ovirt-engine/sso/oauth/token` | Выдать токен |
| `GET` | `/ovirt-engine/sso/oauth/token-info` | Просмотреть токен |
| `POST` | `/ovirt-engine/sso/oauth/revoke` | Отозвать токен |
## Ошибки
- Нет / неверные учётные данные → `401 Unauthorized`
- Неверный пароль → `401`
- Недействительный или просроченный токен → `401`
- Неверный OAuth scope → `400`
## Session cookie (лаборатория)
После Basic-аутентификации симулятор может установить session cookie в стиле
`JSESSIONID` (или принять `Prefer: persistent-auth`). Для автоматизации
предпочитайте Bearer-токены; сессии в основном для браузера / Engine-подобных
клиентов.
## Web UI
Ящик Auth может выдать лабораторный токен для интерактивных вызовов каталога.
См. [Web UI](web-ui.md).