Initial commit: stateful OpenStack API laboratory simulator.
Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm packaging, API contract packs, and pytest/Pulumi coverage labs.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
**Language / Язык:** [English](../authentication.md) | [Русский](authentication.md)
|
||||
|
||||
# Аутентификация
|
||||
|
||||
Симулятор реализует **Keystone v3** password-аутентификацию и project scoping
|
||||
(лабораторное подмножество).
|
||||
|
||||
## Password auth
|
||||
|
||||
```http
|
||||
POST /v3/auth/tokens
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"auth": {
|
||||
"identity": {
|
||||
"methods": ["password"],
|
||||
"password": {
|
||||
"user": {
|
||||
"name": "admin",
|
||||
"domain": {"name": "Default"},
|
||||
"password": "secret"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scope": {
|
||||
"project": {"name": "demo", "domain": {"name": "Default"}}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Ответ:
|
||||
|
||||
- Заголовок **`X-Subject-Token`** — используйте как **`X-Auth-Token`** в следующих запросах
|
||||
- Тело `token.catalog` — endpoints сервисов (порты соответствуют [ports.md](ports.md))
|
||||
|
||||
## Seed-принципалы
|
||||
|
||||
Пароль для всех пользователей: **`secret`**. Домен: **`Default`**.
|
||||
|
||||
### Minimal seed
|
||||
|
||||
| Пользователь | Проекты | Роль |
|
||||
|---|---|---|
|
||||
| `admin` | `admin`, `demo` | admin |
|
||||
| `demo` | `demo` | member |
|
||||
|
||||
### Demo cloud
|
||||
|
||||
| Пользователь | Типичные проекты |
|
||||
|---|---|
|
||||
| `admin` | все |
|
||||
| `ops` | production, staging |
|
||||
| `developer` | development, staging |
|
||||
| `demo` / `auditor` | demo / production |
|
||||
|
||||
## Unscoped / ошибки
|
||||
|
||||
- Нет токена → `401 Unauthorized`
|
||||
- Неверный пароль → `401`
|
||||
- Project-scoped API без project scope → `401` с понятным сообщением
|
||||
|
||||
## openstacksdk / CLI
|
||||
|
||||
```bash
|
||||
export OS_AUTH_URL=http://127.0.0.1:5000/v3
|
||||
export OS_USERNAME=admin
|
||||
export OS_PASSWORD=secret
|
||||
export OS_PROJECT_NAME=demo
|
||||
export OS_USER_DOMAIN_NAME=Default
|
||||
export OS_PROJECT_DOMAIN_NAME=Default
|
||||
export OS_IDENTITY_API_VERSION=3
|
||||
|
||||
openstack server list
|
||||
openstack network list
|
||||
```
|
||||
|
||||
Против Helm Ingress задайте `OS_AUTH_URL=https://os-sim.example.com/v3`
|
||||
(и доверьте сертификат или используйте `--insecure` в лаборатории).
|
||||
Reference in New Issue
Block a user