Autentificering
To legitimationsoplysninger — en API-nøgle til maskiner, en session til konsollen — og reglerne, der holder dem adskilt.
To typer legitimationsoplysninger
API'en tager en API-nøgle. Konsollen tager en session-cookie. De kan ikke bruges i flæng, og API'en håndhæver det i stedet for at afgøre fra anmodning til anmodning, om en cookie var ment at være der.
En anmodning, der er autentificeret med en session-cookie, får 403 api_key_required, med en meddelelse der peger på konsollens nøgleside. Dette er bevidst: uden en cookie-autentificeret vej ind i API'en er der intet for en cross-site-anmodning at forfalske.
Headeren
Send nøglen som et bearer-token. En nøgle er et præfiks, et punktum og en hemmelighed; præfikset identificerer rækken, så tilbagekaldelse er øjeblikkelig og koster ét opslag.
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
En nøgle bærer et eller flere scopes. En anmodning, hvis nøgle mangler det scope, et endpoint kræver, afvises med 403 insufficient_scope, før bodyen parses.
| Scope | Giver adgang til |
|---|---|
| inference | Chat completions, embeddings og endpointene til modelliste og modeldetaljer. |
| platform_read | Læs din organisation: profil, nøgler, forbrug, traces og politikker. |
| platform_write | Opret og tilbagekald nøgler, og opret eller rediger politikker. Dette er scopet, der ændrer, hvem der må gøre hvad, så udsted det med omtanke. |
Scopes kontrolleres pr. endpoint, ikke pr. nøgle. En nøgle med platform_read kan ikke bruge kredit gennem playground.
Oprettelse af en nøgle
I konsollen, eller via platform-API'en med en nøgle, der allerede bærer platform_write. Hemmeligheden vises én gang, når den oprettes: der gemmes kun en scrypt-hash, så ingen — heller ikke vi — kan læse den tilbage.
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"]}'
Administrative handlinger i konsollen — politikker, team, indstillinger, kredit, tilbagekaldelse af nøgler — er kun for ejer eller admin, uanset hvilke scopes en nøgle bærer.
Tilbagekaldelse, og hvad en nøgle ikke er
En nøgle tilhører en organisation, og organisationen bestemmes ud fra nøglen selv — aldrig ud fra et felt i request-bodyen, så en kalder ikke kan henvende sig til en anden tenant ved at spørge pænt. Tilbagekaldelse træder i kraft ved næste anmodning. Rotation betyder at oprette en ny nøgle, flytte trafik og derefter tilbagekalde den første; der er intet overlap-vindue at konfigurere.
For konsollen i stedet
Log ind, gendannelse af adgangskode og adresseverifikation er dokumenteret sammen med konsollen. Der er ingen OAuth, ingen SAML og ingen personligt adgangstoken: konsollen bruger en session-cookie, API'en bruger nøgler.