# auth.md - IAXION Agent Registration & Authentication

Este documento especifica los protocolos de registro, autenticación y autorización para Agentes de Inteligencia Artificial (IA), modelos de lenguaje y herramientas de automatización que interactúan programáticamente con los servicios de **IAXION SpA** (https://iaxion.cl).

---

## 1. Información General del Proveedor

- **Nombre del Servicio**: IAXION Agent Gateway
- **Dominio Base**: `https://iaxion.cl`
- **Contacto Técnico**: `contacto@iaxion.cl`
- **Especificación de Recursos Protegidos (RFC 9728)**: `/.well-known/oauth-protected-resource`
- **Configuración de Autorización OAuth (RFC 8414)**: `/.well-known/oauth-authorization-server`
- **OpenID Connect Discovery**: `/.well-known/openid-configuration`

---

## 2. Métodos de Autenticación Soportados

Los agentes pueden interactuar con IAXION utilizando tres modalidades:

### A. Acceso Público / Anónimo (Read-Only)
Para operaciones de solo lectura (consulta de catálogo de servicios, lectura de `llms.txt`, diagnóstico de cuellos de botella sin almacenamiento y comprobación de salud):
- No se requiere cabecera de autenticación.
- Límite de tasa: 60 solicitudes por minuto por IP.

### B. Bearer API Key (Para Agentes Delegados)
Para agentes que envían solicitudes de diagnóstico en nombre de clientes o programan recordatorios:
- Cabecera HTTP: `Authorization: Bearer <IAXION_AGENT_KEY>`
- Formato de clave: `iax_agent_live_[a-zA-Z0-9]{32}`

### C. Flujo OAuth 2.0 Client Credentials & ID-JAG
Para integraciones M2M (Machine to Machine) entre plataformas empresariales y el MCP Server de IAXION:
- Endpoint de Token: `POST https://iaxion.cl/oauth/token`
- Endpoint de Registro: `POST https://iaxion.cl/auth/agent-register`
- Endpoint de Reclamo (Claim): `POST https://iaxion.cl/auth/agent-claim`
- Endpoint de Revocación: `POST https://iaxion.cl/oauth/revoke`
- Scopes disponibles:
  - `agent:read`: Lectura de recursos públicos, documentación y métricas operativas.
  - `agent:write`: Creación de pre-evaluaciones diagnósticas y solicitudes de contacto.
  - `diagnostic:create`: Envío estructurado de datos de auditoría de PYMEs.

---

## 3. Registro Autónomo de Agentes (Agent Self-Registration)

Los agentes con soporte para registro dinámico (WorkOS Auth.md spec / RFC 7591) pueden registrarse automáticamente realizando una petición a:

```http
POST /auth/agent-register HTTP/1.1
Host: iaxion.cl
Content-Type: application/json

{
  "agent_name": "MyCustomAIAssistant",
  "developer_email": "developer@example.com",
  "client_uri": "https://example.com/agent-card.json",
  "identity_type": "agent",
  "requested_scopes": ["agent:read", "agent:write", "diagnostic:create"]
}
```

### Respuesta de Registro:
```json
{
  "client_id": "iax_client_a9f81bc2",
  "client_secret": "iax_sec_9934f82810d7a4e9b623",
  "api_key": "iax_agent_live_9934f82810d7a4e9b623881273849102",
  "expires_in": 31536000,
  "scopes_granted": ["agent:read", "agent:write", "diagnostic:create"]
}
```

---

## 4. Política de Rate Limiting y Seguridad

- **Límites de Petición**:
  - Peticiones anónimas: 60 req/min.
  - Peticiones autenticadas: 300 req/min.
- **Revocación de Credenciales**:
  - Para revocar tokens o API Keys de agentes comprometidos, enviar solicitud a `https://iaxion.cl/oauth/revoke`.
- **Compatibilidad con Agentes**:
  - Model Context Protocol (MCP): `/.well-known/mcp/server-card.json`
  - Agent Skills Discovery: `/.well-known/agent-skills/index.json`
  - Agentic Resource Discovery: `/.well-known/ai-catalog.json`
