docs: align agent auth model and fix session test
This commit is contained in:
+55
-6
@@ -46,7 +46,7 @@
|
||||
- `OperationVersion`
|
||||
- `AuthProfile`
|
||||
- `Agent`
|
||||
- `PlatformApiKey`
|
||||
- `AgentKey`
|
||||
- `InvocationLog`
|
||||
- `UsageRollup`
|
||||
|
||||
@@ -81,6 +81,22 @@
|
||||
|
||||
в рамках одной общей модели runtime и MCP publishing.
|
||||
|
||||
### 2.9. Уровень защиты задается операцией
|
||||
|
||||
Обязательная политика машинного доступа задается на уровне `Operation`, а не на уровне `Agent`.
|
||||
|
||||
Допустимые значения:
|
||||
|
||||
- `standard`
|
||||
- `elevated`
|
||||
- `strict`
|
||||
|
||||
Принцип:
|
||||
|
||||
- если операция требует более строгий режим доступа, агент не может его ослабить;
|
||||
- один агент может публиковать операции с разной критичностью данных;
|
||||
- `mcp-server` сравнивает тип представленного credential с требуемым `security_level`.
|
||||
|
||||
## 3. Корневые сущности
|
||||
|
||||
### 3.1. `Workspace`
|
||||
@@ -119,6 +135,7 @@
|
||||
- `input_mapping`
|
||||
- `output_mapping`
|
||||
- `execution_config`
|
||||
- `security_level`
|
||||
- `tool_description`
|
||||
- `samples`
|
||||
- `generated_draft`
|
||||
@@ -224,27 +241,59 @@
|
||||
- config ссылается на `secret_id` или пару `secret_id`, если auth-схема составная;
|
||||
- runtime применяет profile к запросу только в момент вызова upstream.
|
||||
|
||||
### 3.9. `PlatformApiKey`
|
||||
### 3.9. `AgentKey`
|
||||
|
||||
Отдельная сущность для доступа к самой платформе.
|
||||
Отдельная сущность для машинного доступа к инструментам одного конкретного AI-агента.
|
||||
|
||||
Поля:
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `name`
|
||||
- `prefix`
|
||||
- `scopes`
|
||||
- `status`
|
||||
- `created_at`
|
||||
- `last_used_at`
|
||||
- `expires_at`
|
||||
|
||||
Секрет:
|
||||
|
||||
- полный secret показывается только один раз при создании;
|
||||
- в persistent storage сохраняется только `secret_hash`.
|
||||
- полное значение ключа показывается только один раз при создании;
|
||||
- в persistent storage сохраняется только `secret_hash`;
|
||||
- ключ не должен использоваться как основной рабочий токен вызова в целевой защищенной модели;
|
||||
- ключ используется для выпуска короткоживущего токена доступа.
|
||||
|
||||
### 3.10. `User`
|
||||
### 3.10. `IssuedAgentToken`
|
||||
|
||||
Учет выданных машинных токенов для вызова MCP-инструментов.
|
||||
|
||||
Поля:
|
||||
|
||||
- `id`
|
||||
- `workspace_id`
|
||||
- `agent_id`
|
||||
- `agent_key_id`
|
||||
- `platform_client_id`
|
||||
- `token_kind`
|
||||
- `status`
|
||||
- `scopes`
|
||||
- `max_uses`
|
||||
- `used_count`
|
||||
- `cnf_jkt`
|
||||
- `expires_at`
|
||||
- `created_at`
|
||||
- `used_at`
|
||||
|
||||
Принцип:
|
||||
|
||||
- токен живет ограниченное время;
|
||||
- токен может быть одноразовым;
|
||||
- токен может быть привязан к ключевой паре клиента;
|
||||
- токен выражает более узкие права, чем длинноживущий ключ агента.
|
||||
|
||||
### 3.11. `User`
|
||||
|
||||
Поля:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user