Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> rola based access control, pytania...
aleksander
post 7.01.2005, 21:42:34
Post #1





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


Witam,

od kilku dni próbuję opanować logikę autoryzacji opartej na rolach. Niestety literatura dostępna jest właściwie tylko po angielsku, co tylko utrudnia zadanie smile.gif. Studiując materiały binarycloud, nist.gov oraz tego, co streścił mi bela_666:
Cytat(bela_666)
masz 3 tabele: z grupami, userami, dostepnymi rolami

1. W tabeli groups masz uprawnienia dla danej grupy
2. W tabeli users masz uzytkownikow
2.1. User moze byc przypisany do grupy, wtedy dziedziczy uprawnienia dla danej grupy
2.2. User moze miec zakazane role
2.3. User moze miec osobiste role
wyciągnąłem następujące wnioski:

- uprawnienia (permissions) - są to konkretne zezwolenia na określone akcje typu dodawaj_artykul, edytuj_newsa czy usuwaj_komentarze

- role - są to obiekty witrualnie grupujące zezwolenia w jedną "całość". Przykładem może być rola "Administrator", "Moderator" itd.

-userzy - co to user wiadomo. Każdy user może być przypisany do określonej roli (lub na odwrót - rola może być ;przypisana do usera lub iluś tam userów). Dodatkowo do usera mogą być przypisane indywidualne uprawnienia.

No ale jakoś to za prosto dla mnie. To dla mnie przypomina zwykły system grup w forach dyskusyjnych smile.gif

Poza tym zastanawiam się, co to są te obiekty. W MVC chyba to będą akcje prawda? (bo na mvc sie skupiam)

Jeszcze jedna kwesta: jak to technicznie rozplanowac. Tzn jak rozplanowac kolumny w bazie danych dla usera, zeby byla mozliwosc przypisania i roli i uprawnienia ( a czesto wiecej niz jednego)

ok, na razie tyle. Poproszę o konstruktywne odpowiedzi biggrin.gif

Ten post edytował olo 7.01.2005, 21:54:42
Go to the top of the page
+Quote Post
bela
post 7.01.2005, 22:45:46
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


ee tam tongue.gif skad ty uprawnienia wytrzasneles smile.gif

masz poprostu role, które możesz przypisac użytkownikom, i jesli user posiada wszystkie role do wykonanie akcji jesrt przepuszczany dalej

dane o rolach dla akcji masz zapisane w konfigu ( db, xml, txt obojetnie )


--------------------
Go to the top of the page
+Quote Post
aleksander
post 7.01.2005, 23:01:05
Post #3





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


bela_666: moze troche jasniej? bo te twoje opisy nie sa zbyt tłumaczące. Podaj jakies proste przykłady albo co tongue.gif
Go to the top of the page
+Quote Post
bela
post 8.01.2005, 00:36:21
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


1 .pobierasz info o akcji ( wymagane role do jej uruchomienia, fallbacki, innne pierdoly )
2. kontroler przed uruchomieniem sprawdza czy user jest uwierzytelniony ( zalogowany )
3. jesli tak to pobiera jego role ( np. zserializowane dane w sesji tongue.gif )
4. sprawdza czy user posiada wszystkie role ktore sa wymagane do uruchomienia akcji ( moze miec wiecej rol, ale nigdy mniej )
5. jesli true przepuszcza dalej


--------------------
Go to the top of the page
+Quote Post
aleksander
post 8.01.2005, 17:31:43
Post #5





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


a czy dla każdej akcji musze miec role? Bo przeciez wiadomo ze teoretycznie każdy user bedzie mogl ogladac newsy (zwyjatkiem zbanowanych ale to tutaj pomijam) wiec nie ma sensu robic do tego dodatkowej roli viewNews. Moim zdaniem role powinny być przypisane tylko dla tych akcji, które nie są dostępne dla ogółu np edytowanie newsa. W ten sposób zwykły user będzie bez żadnych ról, co byłoby równoznacze gdyby miał same role typu view np viewNews itd.

Pytam sie bo chce jakoś rozwiązać kwestię "gościa" w systemie. W powyższy sposób nie musiałbym mu przypisywać żadnych ról, byłoby prościej...
Go to the top of the page
+Quote Post
rogrog
post 8.01.2005, 19:45:36
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


mam nadzieję że czytałes opis autoryzacji jaka jest w Phiendzie na php.pl - ja po przeczytaniu od razu załapałem o co chodzi;)

oczywiscie nie musi być ról dla akcji które moga być wywołanie przez każdego. Tylko pytanie czy kiedys nie będziesz chciał ograniczyć do nich dostępu.


--------------------
Go to the top of the page
+Quote Post
aleksander
post 8.01.2005, 19:47:20
Post #7





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


kiedys czytalem o tym ale to bylo dawno i nieprawda smile.gif Zara przeczytam jeszcze raz smile.gif

Jezeli bede chcual ograniczyc dostep do jakijes akcji wystarczy ze w pliku config.xml wypelnie tag <requiredRoles> i juz smile.gif
Go to the top of the page
+Quote Post
singollo
post 17.01.2005, 14:20:44
Post #8





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 25.11.2003

Ostrzeżenie: (0%)
-----


Cytat
Pytam sie bo chce jakoś rozwiązać kwestię "gościa" w systemie.  W powyższy sposób nie musiałbym mu przypisywać żadnych ról, byłoby prościej...


Ja robie to nastepujaco: kazda akcja, poza innymi danymi, ma ustawiony wymog logowania lub jego brak. Uzytkownik, ktory sprobuje wykonac akcje wymagajaca logowania jest cofany do ekranu logowania (a po poprawnym logowaniu - wykonuje akcje, jesli ma do tego uprawnienia); jezeli akcja nie wymaga logowania, to moze ja wykonac... i tak przeciez nie moge go zidentyfikowac.

Role (u mnie - grupy) pojawiaja sie pozniej, po zalogowaniu.
Go to the top of the page
+Quote Post
bela
post 17.01.2005, 15:50:47
Post #9


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


role to nie grupy, rola to pojedyncze uprawnienie, typu dodajNews, usunNews


--------------------
Go to the top of the page
+Quote Post
halfik
post 5.02.2005, 17:11:03
Post #10





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


ano tak tez mozna.

choc ja rzecz zawsze robilem ciut inaczej: user, grupa, nazwy dzialow i uprawnienia dla grup dla na kazdy z dzialow. uprawnienia zawsze mialem z zakresu <0-2> i tyle. 0 nawet nie byly zapiywane w bazie bo i po co? jesli wpisu na dany dzial nie ma na bazie to uprawnienie domyslnie przyjmuje wartosc na 0. 1 np. mogl w danym dziale roboc to i tamto etc. a 2 wszystko.


--------------------


"Nie wiedziałem tylko, że Bóg też był na grzybach, gdy majstrował przy wszechświecie" (Janusz Wisniewski)
dev: gazeta.ie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 19:57