Hitelesítés — áttekintés
Minden tenant API-hívás Authorization: Bearer <token> fejlécet visz. A tokent
mindig az identity (https://identity.vecton.hu) adja ki; a tenant-host minden
kérésnél nála ellenőrzi. Négyféle token létezik, a felhasználási módtól
függően:
| Helyzet | Token | Kinek a jogaival | Leírás |
|---|---|---|---|
| Alkalmazás, amibe a felhasználó maga lép be (webes, mobil, asztali) | OAuth hozzáférési token (Authorization Code + PKCE) | a belépett felhasználóéval | OAuth |
| Saját script, gyors integráció, egy emberhez kötve | Személyes hozzáférési token | a felhasználóéval, legfeljebb; csak olvasás is választható | Személyes tokenek |
| Gépi integráció, ami nem egy emberhez tartozik (ERP, futár, robot) | Szervezeti API-kulcs (szolgáltatásfiók) | a kulcshoz rendelt szerepkörével, a hatókörére szűkítve | Szolgáltatásfiókok |
| A Vecton felületébe épülő marketplace-app | App-token | a felhasználó jogainak és az app engedélyezett hatókörének metszetével | Marketplace-app |
Közös szabályok
- A token szervezethez kötött. A tenant-host csak akkor fogadja el, ha a token tulajdonosa az adott szervezet tagja (a személyes token és az API-kulcs eleve egy szervezetre szól). Ha a felhasználó több szervezetnek is tagja, mindegyik szervezet hostját ugyanazzal a tokennel hívhatja.
- Lejárat. Az OAuth hozzáférési token rövid életű (alapból 60 perc), a frissítő token 30 napig él. A személyes token és az API-kulcs lejárati idővel jön létre, és lejárat nélkül nem adható ki.
- A jog a hívás pillanatában dől el. A szerepkör vagy a jogok változása a már kiadott tokenekre is hat, nem kell új tokent kérni.
- A token titok. Csak a kiadás válaszában látszik egyszer; a Vecton csak a lenyomatát tárolja. Elveszett token helyett újat kell kiadni, a régit pedig visszavonni.
Emberi kliens ne kérjen hatókört
A tenant-host a nem üres scopes listát gépi (szolgáltatásfiók-) tokennek
tekinti, és onnantól minden kért jognak szerepelnie kell a hatókörök között.
Ha egy emberi felhasználó nevében kért OAuth-token hatókört kap (például
scope=tenant.access), a felhasználó minden tenant-hívása
403 service_account_scope_denied lesz, akármilyen jogai vannak.
Szabály: a felhasználó nevében futó OAuth-folyamatban a scope paramétert
hagyd üresen. Frissítő tokent hatókör nélkül is kapsz, offline_access nem
kell hozzá.