pracuję nad aplikacji MVC z tej struktury:PHP - Gdzie umieścić RBAC i Uwierzytelnianie w aplikacji MVC?
Request
V
FrontController <-> Router
V
Controller <-> Model
V
View
mam dwa inne składniki, które trzeba umieścić w tej strukturze:
Authentification
kłody użytkownikowi w korzystaniu z$_SESSION
zmienna globalna;RBAC
: Rola Kontrola dostępu oparta, które mogą sprawdzić, czy rola ma dostęp przyznanego „Ressource” (Controller
metody) .
Każdy użytkownik może mieć dowolną liczbę ról (nie może ich również mieć).
Teraz muszę umieścić te dwa składniki w mojej aplikacji, muszę im być w stanie:
- Jeżeli
User
nie authed i żeRequest
wymaga authedUser
do wykonania, klient powinien zostać przekierowany na stronę logowania; - Jeśli
RBAC
widzi, że authedUser
nie posiada rolę, jaką ma dostęp przyznany wymaganej „Ressource” do wykonaniaController
„metoda S, aController
” s metoda powinna być nadal realizowane, ale ze świadomością, żeUser
nie miał na to zgody (Przykład: aUser
pisze artykuł, ale nie mają prawa do ich publikacji, a więc artykuł jest zapisany jako szkic iUser
dowiaduje się, że będzie miałModerator
opublikować go).
mam już kilka pomysłów, gdzie zlokalizować Authentification
i RBAC
ale nie jestem pewien:
Authentification
może pójść wFrontController
lubRouter
;RBAC
może przejść wFrontController
lubController
.
Widziałem kogoś, kto wstawił RBAC
w modelu, ale nie rozumiem, dlaczego.
Chciałbym uzyskać pewien wgląd w ten temat. Gdzie powinienem umieścić komponenty Authentification
i RBAC
?
Dziękujemy!
Mówisz o różnicy między uwierzytelnieniem a autoryzacją. A RBAC nie jest "wyłącznie twoją implementacją": http://csrc.nist.gov/rbac/sandhu-ferraiolo-kuhn-00.pdf –