Title: Autenticazione %E2%80%94 LLM EU Canonical: https://llmeu.com/it/docs/authentication/ Markdown mirror: https://llmeu.com/it/docs/authentication.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json Inizia - [Avvio rapido](/it/docs/quickstart/) - [Console](/it/docs/console/) - [Migrazione](/it/docs/migration/) - [Riferimento API](/it/docs/api/) Riferimento - [Autenticazione](/it/docs/authentication/) - [Endpoint](/it/docs/endpoints/) - [Errori](/it/docs/errors/) - [Limiti di frequenza](/it/docs/rate-limits/) - [Streaming](/it/docs/streaming/) - [Policy](/it/docs/policies/) - [Routing e policy](/it/docs/routing/) - [Residenza e regioni](/it/docs/residency/) - [Prove e verifica](/it/docs/evidence/) - [Compatibilit%C3%A0 OpenAI](/it/docs/openai-compat/) Operazioni - [Self-hosting](/it/docs/self-hosting/) # Autenticazione Due credenziali %E2%80%94 una chiave API per le macchine, una sessione per la console %E2%80%94 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 %C3%A8 intenzionale: senza un percorso autenticato tramite cookie verso l'API, non c'%C3%A8 nulla che una richiesta cross-site possa falsificare. ## L'header Invia la chiave come bearer token. Una chiave %C3%A8 un prefisso, un punto e un segreto; il prefisso identifica la riga, quindi la revoca %C3%A8 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%C3%B9 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. Gli scope vengono controllati per endpoint, non per chiave. Una chiave con platform_read non pu%C3%B2 spendere credito tramite il playground. ## Creazione di una chiave Nella console, o tramite l'API della piattaforma con una chiave che ha gi%C3%A0 platform_write. Il segreto viene mostrato una volta, al momento della creazione: viene memorizzato solo un hash scrypt, quindi nessuno %E2%80%94 compresi noi %E2%80%94 pu%C3%B2 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 %E2%80%94 policy, team, impostazioni, credito, revoca delle chiavi %E2%80%94 sono riservate al proprietario o all'amministratore, indipendentemente dagli scope di una chiave. ## Revoca, e cosa non %C3%A8 una chiave Una chiave appartiene a un'organizzazione, e l'organizzazione viene risolta dalla chiave stessa %E2%80%94 mai da un campo nel corpo della richiesta, quindi un chiamante non pu%C3%B2 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'%C3%A8 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.