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.

Prijavljeni preglednik ne može pozvati API

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.