REST web hizmetinin kimlik doğrulaması / erişim kontrolü için yazılım mimarisi


12

Yeni bir RESTful web hizmeti kuruyorum ve role dayalı bir erişim kontrol modeli sağlamam gerekiyor . Kullanıcıların hizmetlere erişmek için kullanıcı adlarını ve parolalarını sağlamasına ve daha sonra rollerine göre hizmetleri (hangi hizmetleri kullanabilecekleri, okuyabilir / okuyabilir, okuyabilir, vb.) Kullanabileceğini kısıtlayacak bir mimari oluşturmam gerekiyor bu kullanıcılara atanır.

Diğer sorulara baktım ve istediğim şeyleri buldum. Örneğin, REST hizmetlerine huzurlu kimlik doğrulaması , en iyi uygulamalar için kimlik bilgilerinin nasıl ele alınacağı hakkında birkaç büyük tartışma vardır . Ayrıca, programcıların web siteleri oluştururken neleri bilmesi gerektiğine ( her geliştiricinin herkese açık bir web sitesi oluşturmadan önce bilmesi gerekenler) bazı harika işaretçiler de vardır .

Ancak, bu çözümleri uygulayan yazılım mimarisi için en iyi uygulamalar ve desenler hakkında iyi bir yazı, makale, kitap bulamadım.

özellikle:

  • Kullanıcı bilgileri ve erişim hakları nasıl saklanmalıdır? (veri modeli, konum, biçim)
  • Bunları sunucuda temsil etmek ve izlemek için iyi tasarım modelleri nelerdir? (bellekteki oturumlar, her seferinde db aramaları vb.)
  • Kod haklarında bu hakları hizmetlere güvenli bir şekilde eşlemek için iyi modeller nelerdir?
  • Hangi mimari seçimler sistemi daha güvenli ve güvenilir tutmaya yardımcı olabilir?
  • İnsanların siperlerden aldığı dersler neler?

Herhangi bir özel teknolojinin dışında yazılım mimarisi için tasarım desenleri ve öneriler arıyorum.

(Teknolojiler önemliyse, bunu python, twisted ve postgresql veritabanı kullanarak uygulamayı planlıyorum)


Sizin için yazmak için birine ihtiyacınız var gibi görünüyor;)
Martin Blore

Ne yazık ki yol gibi görünüyor. Yığının bu kısmının hiçbir yerde açıklanmamış olması tuhaf görünüyordu. Newegg, digg ve hatta stackoverflow gibi bir sitenin kullanıcı kimlik bilgilerini ve arka uçta erişimi nasıl ele aldığına dair bir yazım bulabilseydim, bu yardımcı olacaktır.
Allen

Bu konuda ilerleme kaydettiniz mi?
Bryan Agee

Eğer kabul mü OAuth2 ? Orada sunucu ve istemci kütüphaneleri daha kolay uygulamak yapmalıdır birçok popüler dilde bunun için kullanılabilir.
Sam

Yanıtlar:


5

OpenAM.

http://forgerock.com/openam.html

Kullanıcı bilgileri ve erişim hakları nasıl saklanmalıdır? (veri modeli, konum, biçim)

Kimlik Yöneticisi. Herhangi bir web sunucusundan ayrı tutun. LDAP tabanlı.

Bunları sunucuda temsil etmek ve izlemek için iyi tasarım modelleri nelerdir? (bellekteki oturumlar, her seferinde db aramaları vb.)

Çerçeveniz tarafından çözüldü. Artık düşünmeyin. Çerçevenizin zaten oluşturulmuş iyi tasarım desenlerini kullanın.

Kod haklarında bu hakları hizmetlere güvenli bir şekilde eşlemek için iyi modeller nelerdir?

Çerçeveniz tarafından çözüldü. Her çerçeve biraz farklı bir yaklaşım kullanır. Her dilin biraz farklı özellikleri vardır. Örneğin Django, bunun için Python'un dekoratörlerini yoğun bir şekilde kullanıyor.

Hangi mimari seçimler sistemi daha güvenli ve güvenilir tutmaya yardımcı olabilir?

Daha? Ne daha fazla?


Özel kurulumumda OpenAM gibi bir şey kullanabileceğimi sanmıyorum. Kurum genelinde tek oturum açmaya ihtiyacım yok. Bence daha küçük ve daha bağımsız bir şeye ihtiyacım var.
Allen

@Allen. Kurumsal çapta tek oturum açma için kullanmıyoruz. Basit kimlik yönetimi için kullanıyoruz.
S.Lott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.