สถาปัตยกรรมซอฟต์แวร์สำหรับการพิสูจน์ตัวตน / ควบคุมการเข้าถึงของ REST เว็บเซอร์วิส


12

ฉันกำลังตั้งค่าบริการเว็บสงบใหม่และฉันต้องการให้แบบจำลองการควบคุมการเข้าถึงตามบทบาท ฉันต้องสร้างสถาปัตยกรรมที่อนุญาตให้ผู้ใช้ระบุชื่อผู้ใช้และรหัสผ่านเพื่อเข้าถึงบริการและ จำกัด วิธีการใช้บริการ (บริการใดบ้างที่พวกเขาสามารถใช้อ่าน vs อ่าน / เขียน ฯลฯ ) ตามบทบาท มอบหมายให้กับผู้ใช้นั้น

ฉันได้ดูคำถามอื่น ๆ และพบสิ่งที่ฉันต้องการ ตัวอย่างเช่นมีการอภิปรายที่ดีหลายประการเกี่ยวกับวิธีการจัดการข้อมูลประจำตัวที่ผ่านการบริการที่ REST พักผ่อนสบายตลอดการตรวจสอบ , การปฏิบัติที่ดีที่สุด นอกจากนี้ยังมีตัวชี้ที่ยอดเยี่ยมเกี่ยวกับสิ่งที่โปรแกรมเมอร์ควรรู้เมื่อสร้างเว็บไซต์ ( สิ่งที่นักพัฒนาทุกคนควรรู้ก่อนสร้างเว็บไซต์สาธารณะ )

แต่ฉันไม่สามารถค้นหาบทความบทความหนังสือเกี่ยวกับแนวปฏิบัติและรูปแบบที่ดีสำหรับสถาปัตยกรรมซอฟต์แวร์ที่ใช้โซลูชันเหล่านี้

โดยเฉพาะ:

  • ควรจัดเก็บรายละเอียดผู้ใช้และสิทธิ์การเข้าถึงอย่างไร (ตัวแบบข้อมูล, สถานที่, รูปแบบ)
  • รูปแบบการออกแบบที่ดีสำหรับการแสดงและติดตามสิ่งเหล่านี้ในเซิร์ฟเวอร์มีอะไรบ้าง (เซสชันในหน่วยความจำการค้นหาฐานข้อมูลในแต่ละครั้ง ฯลฯ )
  • อะไรคือรูปแบบที่ดีสำหรับการจับคู่สิทธิเหล่านี้กับบริการในวิธีที่ปลอดภัยในรหัสฐาน
  • ตัวเลือกสถาปัตยกรรมใดบ้างที่สามารถช่วยให้ระบบปลอดภัยและเชื่อถือได้มากขึ้น
  • ผู้เรียนมีบทเรียนอะไรบ้างจากสนามเพลาะ?

ฉันกำลังมองหารูปแบบการออกแบบและคำแนะนำสำหรับสถาปัตยกรรมซอฟต์แวร์นอกเทคโนโลยีเฉพาะใด ๆ

(หากเทคโนโลยีมีความสำคัญฉันกำลังวางแผนที่จะใช้สิ่งนี้โดยใช้ python, twisted, และฐานข้อมูล postgresql)


ดูเหมือนว่าคุณแค่ต้องการใครสักคนที่จะเขียนให้คุณ;)
Martin Blore

น่าเสียดายที่มันดูเหมือนว่า ดูเหมือนว่าแปลกที่ส่วนนี้ของสแต็กไม่ได้อธิบายที่ใดก็ได้ แม้ว่าฉันจะได้พบกับการเขียนของเว็บไซต์เช่น newegg, digg หรือแม้กระทั่ง stackoverflow จัดการข้อมูลประจำตัวของผู้ใช้และการเข้าถึงในแบ็กเอนด์ที่จะช่วย
อัลเลน

คุณมีความคืบหน้าเกี่ยวกับเรื่องนี้หรือไม่?
ไบรอัน Agee

คุณพิจารณาoAuth2 แล้วหรือยัง มีไลบรารีเซิร์ฟเวอร์และไคลเอนต์พร้อมใช้งานในภาษายอดนิยมมากมายที่ควรทำให้ง่ายต่อการใช้งาน
Sam

คำตอบ:


5

OpenAM

http://forgerock.com/openam.html

ควรจัดเก็บรายละเอียดผู้ใช้และสิทธิ์การเข้าถึงอย่างไร (ตัวแบบข้อมูล, สถานที่, รูปแบบ)

ผู้จัดการเอกลักษณ์ แยกจากเว็บเซิร์ฟเวอร์ใด ๆ LDAP-based

รูปแบบการออกแบบที่ดีสำหรับการแสดงและติดตามสิ่งเหล่านี้ในเซิร์ฟเวอร์มีอะไรบ้าง (เซสชันในหน่วยความจำการค้นหาฐานข้อมูลในแต่ละครั้ง ฯลฯ )

แก้ไขตามกรอบของคุณ ไม่คิดมาก เพียงใช้รูปแบบการออกแบบที่ดีที่เฟรมเวิร์กสร้างขึ้น

อะไรคือรูปแบบที่ดีสำหรับการจับคู่สิทธิเหล่านี้กับบริการในวิธีที่ปลอดภัยในรหัสฐาน

แก้ไขตามกรอบของคุณ แต่ละเฟรมเวิร์กใช้วิธีการที่แตกต่างกันเล็กน้อย แต่ละภาษามีคุณสมบัติแตกต่างกันเล็กน้อย ตัวอย่างเช่น Django ใช้เครื่องมือตกแต่งของ Python อย่างมากสำหรับเรื่องนี้

ตัวเลือกสถาปัตยกรรมใดบ้างที่สามารถช่วยให้ระบบปลอดภัยและเชื่อถือได้มากขึ้น

มากกว่า? ยิ่งกว่าอะไร


ในการตั้งค่าเฉพาะของฉันฉันไม่คิดว่าฉันสามารถใช้บางอย่างเช่น OpenAM ฉันไม่ต้องการการลงชื่อเพียงครั้งเดียวทั่วทั้งองค์กร ฉันคิดว่าฉันต้องการบางสิ่งบางอย่างที่เล็กลง
Allen

@Allen เราไม่ใช้มันสำหรับการลงชื่อเพียงครั้งเดียวทั่วทั้งองค์กร เราใช้มันเพื่อการจัดการตัวตนที่เรียบง่าย
S.Lott
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.