Konfiguruję nową usługę sieci Web RESTful i muszę zapewnić oparty na rolach model kontroli dostępu . Muszę stworzyć architekturę, która pozwoli użytkownikom podać swoją nazwę użytkownika i hasło, aby uzyskać dostęp do usług, a następnie ograniczyć sposób, w jaki mogą korzystać z usług (z których usług mogą korzystać, czytać a czytać / pisać itp.) W zależności od ról przypisany do tych użytkowników.
Rozejrzałem się wokół innych pytań i znalazłem fragmenty tego, czego chcę. Na przykład istnieje kilka świetnych dyskusji na temat obsługi przekazywania poświadczeń usługom REST restful-authentication , najlepsze praktyki . Istnieją również świetne wskazówki na temat tego, co programiści powinni wiedzieć podczas tworzenia stron internetowych ( co każdy programista powinien wiedzieć przed budowaniem publicznej strony internetowej ).
Ale nie udało mi się znaleźć dobrego wpisu, artykułu, książki na temat najlepszych praktyk i wzorców dla architektury oprogramowania, która implementuje te rozwiązania.
Konkretnie:
- Jak należy przechowywać dane użytkownika i prawa dostępu? (model danych, lokalizacja, format)
- Jakie są dobre wzorce projektowe do reprezentowania i śledzenia ich na serwerze? (sesje w pamięci, wyszukiwania bazy danych za każdym razem itp.)
- Jakie są dobre wzorce mapowania tych praw do usług w bezpieczny sposób w bazie kodu?
- Jakie rozwiązania architektoniczne mogą pomóc w zapewnieniu bezpieczeństwa i niezawodności systemu?
- Czego się nauczyli ludzie z okopów?
Szukam wzorców projektowych i rekomendacji dla architektury oprogramowania poza konkretnymi technologiami.
(Jeśli technologie mają znaczenie, planuję wdrożyć to za pomocą Pythona, Twisted i bazy danych Postgresql)