6033967e6a
Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm packaging, API contract packs, and pytest/Pulumi coverage labs.
81 lines
2.1 KiB
Markdown
81 lines
2.1 KiB
Markdown
**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` в лаборатории).
|