Autenticazione
Due credenziali — una chiave API per le macchine, una sessione per la console — e le regole che le tengono separate.
Due tipi di credenziale
L'API accetta una chiave API. La console accetta un cookie di sessione. Non sono intercambiabili, e l'API lo impone invece di decidere richiesta per richiesta se un cookie dovesse essere presente.
Una richiesta autenticata con un cookie di sessione riceve 403 api_key_required, con un messaggio che rimanda alla pagina delle chiavi della console. Questo è intenzionale: senza un percorso autenticato tramite cookie verso l'API, non c'è nulla che una richiesta cross-site possa falsificare.
L'header
Invia la chiave come bearer token. Una chiave è un prefisso, un punto e un segreto; il prefisso identifica la riga, quindi la revoca è immediata e costa una singola ricerca.
curl https://api.llmeu.com/v1/chat/completions \
-H "Authorization: Bearer llmeu_live_xxxxxxxx.your-secret" \
-H "Content-Type: application/json" \
-d '{"model":"llmeu-auto","messages":[{"role":"user","content":"Hello"}]}'
Ambiti
Una chiave porta uno o più ambiti. Una richiesta la cui chiave manca dell'ambito richiesto da un endpoint viene rifiutata con 403 insufficient_scope, prima che il corpo venga analizzato.
| Ambito | Sblocca |
|---|---|
| inference | Chat completions, embeddings e gli endpoint di elenco e dettaglio dei modelli. |
| platform_read | Legge la tua organizzazione: profilo, chiavi, utilizzo, tracce e policy. |
| platform_write | Crea e revoca chiavi, e crea o modifica policy. Questo è l'ambito che cambia chi può fare cosa, quindi rilascialo con cautela. |
Gli ambiti vengono controllati per endpoint, non per chiave. Una chiave con platform_read non può spendere credito tramite il playground.
Creare una chiave
Nella console, oppure tramite l'API della piattaforma con una chiave che porta già platform_write. Il segreto viene mostrato una sola volta, al momento della creazione: viene memorizzato solo un hash scrypt, quindi nessuno — noi compresi — può rileggerlo.
curl -X POST https://api.llmeu.com/platform/v1/api-keys \
-H "Authorization: Bearer llmeu_live_xxxxxxxx.a-platform-write-key" \
-H "Content-Type: application/json" \
-d '{"name":"ci","scopes":["inference"]}'
Le azioni amministrative nella console — policy, team, impostazioni, credito, revoca delle chiavi — sono riservate al proprietario o all'amministratore, indipendentemente dagli ambiti di una chiave.
Revoca, e cosa non è una chiave
Una chiave appartiene a un'organizzazione, e l'organizzazione viene risolta dalla chiave stessa — mai da un campo nel corpo della richiesta, quindi un chiamante non può indirizzare un altro tenant chiedendo gentilmente. La revoca ha effetto alla richiesta successiva. La rotazione significa creare una seconda chiave, spostare il traffico, poi revocare la prima; non c'è una finestra di sovrapposizione da configurare.
Per la console, invece
Accesso, recupero password e verifica dell'indirizzo sono documentati insieme alla console. Non c'è OAuth, né SAML, né token di accesso personale: la console usa un cookie di sessione, l'API usa chiavi.