Autentifikacija
Dvije vjerodajnice — API ključ za strojeve, sesija za konzolu — i pravila koja ih drže odvojenima.
Dvije vrste vjerodajnica
API prihvaća API ključ. Konzola prihvaća sesijski kolačić. Nisu zamjenjivi i API to provodi, a ne odlučuje za svaki zahtjev je li kolačić trebao biti prisutan.
Zahtjev autentificiran sesijskim kolačićem dobiva 403 api_key_required, s porukom koja upućuje na stranicu s ključevima u konzoli. To je namjerno: kad nema puta u API autentificiranog kolačićem, nema što međustranični zahtjev krivotvoriti.
Zaglavlje
Pošaljite ključ kao bearer token. Ključ je prefiks, točka i tajna; prefiks identificira redak pa je opoziv trenutačan i zahtijeva jedno pretraživanje.
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"}]}'
Opsezi
Ključ nosi jedan ili više opsega. Zahtjev čijem ključu nedostaje opseg koji endpoint zahtijeva odbija se s 403 insufficient_scope, prije nego što se tijelo parsira.
| Opseg | Otključava |
|---|---|
| inference | Dovršavanja razgovora, embeddingi i endpointi za popis i pojedinosti modela. |
| platform_read | Čitanje vaše organizacije: profil, ključevi, upotreba, tragovi i politike. |
| platform_write | Stvaranje i opoziv ključeva te stvaranje ili uređivanje politika. To je opseg koji mijenja tko što smije pa ga dodjeljujte namjerno. |
Opsezi se provjeravaju po endpointu, a ne po ključu. Ključ s platform_read ne može trošiti kredit putem playgrounda.
Stvaranje ključa
U konzoli ili preko platformskog API-ja ključem koji već nosi platform_write. Tajna se prikazuje jednom, pri stvaranju: pohranjuje se samo scrypt hash pa je nitko — ni mi — ne može pročitati.
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"]}'
Administrativne radnje u konzoli — politike, tim, postavke, kredit, opoziv ključeva — dostupne su samo vlasniku ili administratoru, neovisno o opsezima koje ključ nosi.
Opoziv i što ključ nije
Ključ pripada organizaciji, a organizacija se razrješava iz samog ključa — nikad iz polja u tijelu zahtjeva, pa se pozivatelj ne može obratiti drugom tenantu pristojnim pitanjem. Opoziv stupa na snagu pri sljedećem zahtjevu. Rotacija znači stvaranje drugog ključa, prebacivanje prometa, zatim opoziv prvog; nema prozora preklapanja koji se može konfigurirati.
Umjesto toga za konzolu
Prijava, oporavak lozinke i potvrda adrese dokumentirani su uz konzolu. Nema OAutha, nema SAML-a i nema osobnog pristupnog tokena: konzola upotrebljava sesijski kolačić, API upotrebljava ključeve.