Saltar al contingut

Autenticació

Cada crida /osl/* porta un token JWT Bearer. El motor autoritza contra els scopes i rols del token, i el punt d’aplicació de polítiques aplica l’ACL del cridador server-side.

Authorization: Bearer <jwt>

El JWT porta:

Claim Significat
chain[] La cadena de delegació, root → leaf (el subjecte actuant és l’última baula)
sub Opcional; si hi és, ha de ser igual a chain[-1]
roles[] Rols assignats
tenant La cel·la del tenant
scopes[] osl:read, osl:write, osl:execute, osl:admin
exp Caducitat (obligatòria)

L’accés s’avalua sobre una cadena de subjectes (root → leaf), no una sola identitat — vegeu Accés i capacitats. La cadena és dins del payload signat (HS256), així un cridador no la pot escurçar ni falsejar sense trencar la signatura:

{
"iss": "opendome",
"chain": ["ana@company.com", "agent://copilot-finance"],
"roles": ["analyst"],
"iat": 1750000000,
"exp": 1750000300
}
Edició Emisor
OSS standalone Apache-2.0 La cel·la encunya tokens HS256 localment. El chart tenant-semantic-api genera un Secret de signatura; usa scripts/osl-token.sh <tenant> --roles <r> per encunyar-ne un. El motor standalone no confia en la capçalera X-Actor-Roles — un cridador públic de l’Ingress no pot falsejar rols.
Enterprise / gestionat Enterprise El control-plane emet i rota els JWTs. També pots frontear el motor amb el teu propi proxy IdP-aware que estableix X-Actor-Roles i activar auth.trustActorRolesHeader=true (BYO-OIDC).

Per defecte, per subjecte:

Endpoint Límit
POST /osl/query 60 rps
POST /osl/sample 30 rps
GET /osl/schema 5 rps (cachejat)

Superat → 429 Too Many Requests amb Retry-After. Els límits es configuren per tenant en el tier gestionat.

Cada petició — 200 o no — produeix una entrada d’auditoria immutable i encadenada amb hash amb request_id, subjecte, acció, els FQNs dels objectes tocats, la decisió i un timestamp.