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 sola 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"}]}'
Scope
Una chiave porta uno o più scope. Una richiesta la cui chiave manca dello scope richiesto da un endpoint viene rifiutata con 403 insufficient_scope, prima che il corpo venga analizzato.
| Scope | Sblocca |
|---|---|
| inference | Chat completions, embeddings, e gli endpoint di elenco e dettaglio dei modelli. |
| platform_read | Leggi la tua organizzazione: profilo, chiavi, utilizzo, tracce e policy. |
| platform_write | Crea e revoca chiavi, e crea o modifica policy. Questo è lo scope che cambia chi può fare cosa, quindi crealo con attenzione. |
Gli scope vengono controllati per endpoint, non per chiave. Una chiave con platform_read non può spendere credito tramite il playground.
Creazione di una chiave
Nella console, o tramite l'API della piattaforma con una chiave che ha già platform_write. Il segreto viene mostrato una volta, al momento della creazione: viene memorizzato solo un hash scrypt, quindi nessuno — compresi noi — 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 scope 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ò rivolgersi a un altro tenant chiedendo gentilmente. La revoca ha effetto dalla 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 con la console. Non ci sono OAuth, SAML o personal access token: la console usa un cookie di sessione, l'API usa chiavi.