Autentisering
Varje publik-API-request bär ett uppgiftspar — nb_pub_* (publik nyckel) + nb_sec_* (hemlighet). Hemligheten skickas som en Bearer-token. Uppgiften är begränsad till en enda org + en fast scope-katalog.
Utfärda uppgifter
- Logga in på din org på app.nexbasira.com.
- Gå till Admin → API-uppgifter.
- Klicka på Utfärda uppgift, välj ett namn + scopes, bekräfta.
- Kopiera paret
nb_pub_*+nb_sec_*. Hemligheten visas exakt en gång. Lagra den i din secrets manager omedelbart — vi behåller bara en SHA-256-hash på vår sida.
Använda uppgiften
Authorization: Bearer nb_sec_AbCdEf... Den publika nyckeln (nb_pub_*) identifierar uppgiften i våra loggar + dyker upp i webhook-leveransernas NB-Credential-Id-header. Hemligheten autentiserar.
curl https://app.nexbasira.com/api/v1/public/sessions \
-H "Authorization: Bearer nb_sec_..." Scope-katalog
Varje uppgift skapas med en explicit scope-uppsättning. Requests utanför de scopen returnerar 403. Scope-katalogen är fast (inga anpassade scopes i v1):
| Scope | Ger |
|---|---|
sessions:read | Lista + hämta sessions |
sessions:write | Skapa sessions + avsluta dem |
participants:read | Lista deltagare i en session |
participants:write | Prägla fältanvändar-inbjudningar |
evidence:read | Lista + hämta evidence-rader + signerade nedladdnings-URL:er |
recordings:read | Läs metadata för inspelningsartefakter + nedladdnings-URL:er |
audit:read | Läs granskningskedjan per session + TSA-förankringskoordinater |
webhooks:read | Lista registrerade webhook-endpoints + leveranslogg |
webhooks:write | Registrera / rotera hemlighet / radera webhook-endpoints |
branding:read | Läs org-branding (logotyp / färger / PDF-sidfot) |
branding:write | Mutera org-branding |
org:read | Läs org-metadata |
whiteboards:read | Lista whiteboards per session |
Rotation
Så här roterar du utan driftstopp:
- Utfärda en ny credential med samma uppsättning scopes.
- Distribuera den nya hemligheten till din applikation.
- Verifiera att den nya credentialen tar trafik (Admin → API-credentials visar en last-used-tidsstämpel).
- Mjuk-återkalla den gamla credentialen. Befintliga anrop som använder den ger 401; granskningsloggen över tidigare anrop förblir intakt.
Verifiering i konstant tid
På backend lagras hemligheter som SHA-256(secret + SECRET_KEY_pepper) och jämförs i konstant tid (hmac.compare_digest). En läckt hash-dump kan inte brute-forcas tillbaka till klartexten utan att också bryta peppern.
Vad denna credential INTE ger tillgång till
- SPA-adminåtkomst — det är separat (operatörsinloggning + RBAC).
- Anslutning på fältsidan — de använder engångssignerade URL:er som utfärdas via
sessions.invite(). - SCIM-provisionering — använder en separat per-org bearer-token, se SCIM-provisionering.
- Webhook-signering — det görs med den per-endpoint
whsec_*-hemligheten, se Webhooks.
Granskningslogg
Varje API-anrop loggas med credentialens publika nyckel + endpointen + status. Operationer som muterar state skriver dessutom granskningsrader i den berörda organisationen. Admin kan se credentialens aktivitet under Admin → API-credentials → [credential] → Aktivitet.