Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Autoryzacja + Uwierzytelnianie - koncepcja
Vengeance
post 22.07.2005, 19:20:34
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Oto mały diagram UML mający na celu opisać moją koncepcję klas Autoryzacji i Uwierzytelniania oraz zależności miedzy nimi. Co o tym sądzicie?

  1. <?php
  2.  
  3.    interface IAuthorization
  4.    {
  5.       public function IsAllowed($sAction);
  6.       public function SetDataSource(IAuthorizationDataSource $oDataSource);
  7.    }
  8.  
  9.    interface IAuthorizationDataSource
  10.    {
  11.       public function GetAuthorizationData();
  12.    }
  13.  
  14.    interface IAuthentication 
  15.    {
  16.       public function Login($sUsername, $sPassword);
  17.       public function Logout();
  18.    }
  19.  
  20. ?>


Umożliwiło by to dowolny sposób autoryzacji użytkownika. Role, phpGACL itp.
Można by także zaimplementować intefejs IAuthorizationDataSource pod którąś z klas warstwy modelu. Czekam na krytyke :]

ps. ciekawe czy ktoś doceni moje umiejętności robienia diagramów UML w MS Paint :]

Ten post edytował Vengeance 22.07.2005, 19:21:12


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hawk
post 22.07.2005, 19:31:42
Post #2





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Ciężko powiedzieć, bo cała sztuka w tym, jak to się będzie integrowało z sesjami itd.

Dwie uwagi:
1) Nazwa klasy IAuthentication, IAuthorization jest IMHO zła, bo to nazwa czynności. Może lepiej IAuthorizer, IAuthenticator?
2) Ostatnio znalazłem jakiś dziwny framework, który jednakowoż miał kilka fajnych pomysłów odnośnie uwierzytelniania. M.in. oddzielne klasy do weryfikacji username+password i do wyciągania grup, do których user należy. Miało to sens, bo hasło sprawdzali np w htpasswd, etc/passwd i takich. A grupy z pliku ini.
3) Widzę, że próbujesz uniezależnić się od rodzaju autoryzacji. Co wtedy musi zwracać IAutorizationDataSource? Tablicę nazw akcji? Wtedy problem pojawi się znowu, tylko na niższym poziomie.
4) Ja się skłaniam (jak widać w punkcie 2) na rozwiązanie oparte o grupy. Bo znam tylko 2 rozwiązania: zagnieżdżone grupy lub RBAC. Ale role można przedstawić za pomocą grup winksmiley.jpg. Oczywiście, co się później zrobi z listą grup użytkownika, to inna sprawa i tutaj będzie więcej możliwości...
5) Naprawdę MS Paint?! Jak tak, to kongratulejszynz, ale nie chce mi się wierzyć... A próbowałeś php2xmi? Bardzo wysoko na mojej liście todo.
6) Miały być dwie uwagi, ale jakoś tak wyszło winksmiley.jpg
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 16:27