Autentifikaciji, članstvu, pozivnicama i naplati potrebne su granice organizacije u modelu podataka i u sesiji, a ne samo u korisničkom interfejsu.
- 01Zahtev
- 02Sesija → aktivna organizacija
- 03Provera uloge
- 04Upit ograničen na tenanta
- 05Odgovor
Aktivna organizacija vezana za sesiju
API i korisnički interfejs treba da određuju aktivnu organizaciju iz sesije, a ne iz proizvoljnog ID-ja koji šalje klijent. To jedno pravilo sprečava većinu curenja podataka između tenanta i pojednostavljuje autorizaciju.
Sprovodite granice dvaput
Svaka tabela u vlasništvu tenanta sadrži ključ organizacije. Provere u aplikaciji filtriraju po njemu, a pravila baze podataka ga ponovo sprovode, tako da jedan propušten filter ne postane curenje podataka. Testovi namerno pokušavaju pristup između tenanta.
Članstvo i uloge kao deo proizvoda
Pozivnice, administratorske uloge i lične organizacije su funkcionalnosti proizvoda. Tretirajte ih sa istom pažnjom kao tokove namenjene korisnicima: jasna stanja, iskrene poruke o greškama i testovi oko teških putanja.
Naplata leži na istoj granici
Pretplate su vezane za organizacije. Osmislite to rano, čak i ako naplatu isporučujete kasnije; naknadno uvođenje tenancy-ja u naplatu košta više nego ostavljanje čiste granice.
Migracija postojećeg proizvoda
- Dodajte ključeve organizacije u tabele u vlasništvu tenanta.
- Popunite postojeće podatke u podrazumevanu organizaciju za svakog klijenta.
- Sprovedite ključeve u upitima i pravilima baze podataka.
- Uklonite stare putanje u kodu kada testovi prođu na podacima nalik produkcionim.
Studija Ledger opisuje kako smo izgradili autentifikaciju, autorizaciju i pretplate u finansijskom proizvodu. Za planiranje arhitekture pogledajte usluge razvoja proizvoda i arhitekture.