Dozvole i RBAC · Izrada
Ko šta smije u proizvodu s više vrsta korisnika
Kad „admin“ znači nešto drugo za svaku vrstu korisnika, pristup provjeravamo na serveru, a model držimo u jednoj tabeli, kao na marketplaceu s pet vrsta korisnika.
AngažmanPo satu · remote
Radno vrijeme9–18 CET · 4 h preklapanja
StackTypeScript · Node.js · NestJS
Dokaz3 projekta
Usluga u 4 dijela
01 · Za koga je
Proizvod u kojem „admin“ znači nešto drugo za svaku vrstu korisnika ili u kojem pristup zavisi od veze, na primjer sa sastankom, dokumentom ili timom.
02 · Šta smo napravili
- Na američkom marketplaceu pet vrsta korisnika radi u jednom codebaseu, a svaka ima najmanje dvije uloge. Dozvola se određuje prema tipu i ulozi zajedno, pa operater kod servisera i operater kod voznog parka imaju različite dozvole. Svih 506 API ruta podijeljeno je na javni i administratorski skup.Projekat 08 →
- Na platformi za sastanke u zdravstvu i finansijama neko smije otvoriti fajl zato što mu je pristup dodijeljen ili zato što je prisustvovao sastanku uz koji je fajl priložen, a jedan dokument može biti vezan za više sastanaka. Svaka osoba, sastanak, fajl i potpis čvor su u grafu, a provjera dozvole prati veze među njima, koliko god ih bilo.Projekat 15 →
- U regulisanoj provjeri identiteta za njemačku finansijsku instituciju dozvole operatera bile su određene po akciji, a ne po ulozi. Kada je akcija prelazila ovlasti jednog operatera, slučaj je išao kolegi koji je tu dozvolu imao, uz bilješku.Projekat 10 →
03 · Kako radimo
01 · PROVJERA U API-JUKad interfejs nekoj ulozi sakrije dugme, ekran je pregledniji. Samu dozvolu API provjerava pri svakom zahtjevu.
02 · RUTE PO VRSTI KORISNIKASvaka vrsta korisnika dobija zasebne rute. Da biste vidjeli šta serviser smije, dovoljno je pročitati njegove rute.
03 · PRVO TABELAPrije svega napišemo jednu tabelu vrsta korisnika i akcija. Na marketplaceu te tabele nije bilo, pa je svakom novom developeru model trebalo objasniti usmeno.
04 · Stack
TypeScriptNode.jsNestJSExpressPostgreSQLMySQLNeo4jReact
Dokaz
Gdje smo ovo već radili
Projekat 08 · Marketplace506 rutaNa američkom marketplaceu pet vrsta korisnika radi u jednom codebaseu, a svaka ima najmanje dvije uloge. Dozvola se određuje prema tipu i ulozi zajedno, pa operater kod servisera i operater kod voznog parka imaju različite dozvole. Svih 506 API ruta podijeljeno je na javni i administratorski skup.Pročitajte više o projektu →Projekat 15 · Poslovni sistemiProdanoNa platformi za sastanke u zdravstvu i finansijama neko smije otvoriti fajl zato što mu je pristup dodijeljen ili zato što je prisustvovao sastanku uz koji je fajl priložen, a jedan dokument može biti vezan za više sastanaka. Svaka osoba, sastanak, fajl i potpis čvor su u grafu, a provjera dozvole prati veze među njima, koliko god ih bilo.Pročitajte više o projektu →Projekat 10 · Identitet98%U regulisanoj provjeri identiteta za njemačku finansijsku instituciju dozvole operatera bile su određene po akciji, a ne po ulozi. Kada je akcija prelazila ovlasti jednog operatera, slučaj je išao kolegi koji je tu dozvolu imao, uz bilješku.Pročitajte više o projektu →
Česta pitanja
Pitanja o ovoj usluzi
Uloge koristite kada pristup zavisi od toga ko je neko, a veze kada zavisi od toga s čim je povezan, na primjer sa sastankom, dokumentom ili verzijom. Većini proizvoda treba oboje.
Ne uvijek. Na platformi za sastanke isplatila se, jer je dozvola zavisila od lanca veza koji je stalno rastao. U relacionoj šemi ta provjera postaje rekurzivni join, koji je sporiji sa svakom novom vrstom veze.
Može. Prvo pročitamo šta rute i API danas dozvoljavaju i zapišemo to u jednu tabelu. Tek onda nešto mijenjamo.
Sljedeći korak
Opišite problem i javit ćemo vam se s tri opcije.
Prvi poziv traje 30 minuta i ni na šta vas ne obavezuje.