Authenticatie
Twee inloggegevens — een API-sleutel voor machines, een sessie voor de console — en de regels die ze gescheiden houden.
Twee soorten inloggegevens
De API gebruikt een API-sleutel. De console gebruikt een sessiecookie. Ze zijn niet uitwisselbaar, en de API handhaaft dat in plaats van per verzoek te bepalen of een cookie daar bedoeld was.
Een verzoek dat met een sessiecookie is geauthenticeerd, krijgt 403 api_key_required, met een bericht dat verwijst naar de sleutelpagina van de console. Dit is bewust: zonder cookiegeauthenticeerd pad naar de API valt er voor een cross-siteverzoek niets te vervalsen.
De header
Stuur de sleutel als bearer-token. Een sleutel bestaat uit een prefix, een punt en een geheim; de prefix identificeert de rij, zodat intrekking onmiddellijk is en één lookup kost.
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"}]}'
Scopes
Een sleutel draagt een of meer scopes. Een verzoek waarvan de sleutel de scope mist die een endpoint vereist, wordt geweigerd met 403 insufficient_scope, voordat de body wordt geparseerd.
| Scope | Ontgrendelt |
|---|---|
| inference | Chatcompletions, embeddings en de endpoints voor modellenlijst en -details. |
| platform_read | Lees uw organisatie: profiel, sleutels, gebruik, traces en beleid. |
| platform_write | Sleutels aanmaken en intrekken, en beleid aanmaken of bewerken. Dit is de scope die verandert wie wat mag doen, dus ken deze bewust toe. |
Scopes worden per endpoint gecontroleerd, niet per sleutel. Een sleutel met platform_read kan geen tegoed uitgeven via de playground.
Een sleutel aanmaken
In de console, of via de platform-API met een sleutel die al platform_write heeft. Het geheim wordt één keer getoond, bij het aanmaken: alleen een scrypt-hash wordt opgeslagen, dus niemand — ook wij niet — kan het teruglezen.
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"]}'
Beheeracties in de console — beleid, team, instellingen, tegoed, sleutels intrekken — zijn alleen voor owner of admin, ongeacht welke scopes een sleutel heeft.
Intrekking, en wat een sleutel niet is
Een sleutel hoort bij een organisatie, en de organisatie wordt uit de sleutel zelf bepaald — nooit uit een veld in de requestbody, zodat een aanroeper niet vriendelijk kan vragen om een andere tenant te adresseren. Intrekking wordt van kracht bij het volgende verzoek. Roteren betekent een tweede sleutel aanmaken, verkeer verplaatsen en dan de eerste intrekken; er is geen overlapvenster om te configureren.
In plaats daarvan voor de console
Inloggen, wachtwoordherstel en adresverificatie worden samen met de console gedocumenteerd. Er is geen OAuth, geen SAML en geen personal access token: de console gebruikt een sessiecookie, de API gebruikt sleutels.