Autentificering
To legitimationsoplysninger — en API-nøgle til maskiner, en session til konsollen — og reglerne, der holder dem adskilt.
To slags legitimationsoplysninger
API'en tager en API-nøgle. Konsollen tager en sessionscookie. De kan ikke udskiftes, og API'en håndhæver det i stedet for at afgøre anmodning for anmodning, om en cookie var ment at være der.
En anmodning, der er autentificeret med en sessionscookie, får 403 api_key_required med en meddelelse, der peger på konsollens nøgleside. Det er med vilje: Når der ikke er nogen cookie-autentificeret vej ind i API'en, er der intet for en anmodning på tværs af websteder 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, som et endpoint kræver, afvises med 403 insufficient_scope, før kroppen parses.
| Scope | Åbner |
|---|---|
| inference | Chat completions, embeddings samt endpointene til modelliste og modeldetaljer. |
| platform_read | Læs din organisation: profil, nøgler, forbrug, spor og politikker. |
| platform_write | Opret og tilbagekald nøgler, og opret eller redigér politikker. Dette er det scope, 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 legepladsen.
Oprettelse af en nøgle
I konsollen eller via platformens API med en nøgle, der allerede har 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 har.
Tilbagekaldelse, og hvad en nøgle ikke er
En nøgle tilhører en organisation, og organisationen findes ud fra nøglen selv — aldrig fra et felt i anmodningens krop, så en kalder kan ikke 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 ingen overlapningsperiode at konfigurere.
Til konsollen i stedet
Log ind, gendannelse af adgangskode og adressebekræftelse er dokumenteret sammen med konsollen. Der er ingen OAuth, ingen SAML og ingen personlig adgangstoken: Konsollen bruger en sessionscookie, API'en bruger nøgler.