ข้อมูลใดที่ควรเก็บไว้เป็น "อ้างสิทธิ์"


9

ใน ASP.Net Core ฉันพบว่าการClaimsอนุญาตเป็นวิธีที่ไม่เป็นรูปธรรมมาก เราสามารถเพิ่มอะไรก็ได้ClaimTypeและClaimValueจับคู่; กลุ่ม, ชื่อ, นามสกุล, brithdate, canAccessThisURI, isEditor, ฯลฯ อย่างไรก็ตามวิธีการนี้ (การจัดเก็บสิ่งที่สามารถจัดเก็บเป็นสิทธิเรียกร้อง) จะทำให้ตารางการเรียกร้องจำนวนมากซึ่งรวมถึง 50% ของข้อมูลแอปพลิเคชันของฉัน

ฉันสงสัยว่าเป็นวิธีปฏิบัติที่ดีข้อมูลทั่วไปที่ควรจัดเก็บเป็นการอ้างสิทธิ์คืออะไร


4
คุณจะเก็บข้อมูลใด ๆ ที่คุณต้องการเพื่อตรวจสอบ / อนุญาตผู้ใช้ ที่เกือบจะแน่นอนไม่รวม 50% ของข้อมูลแอปพลิเคชันของคุณ
Robert Harvey

คำตอบ:


3

การอ้างสิทธิ์นั้นเป็นข้อเท็จจริงเกี่ยวกับผู้ใช้ที่สามารถใช้เพื่อระบุตัวตนหรือมอบอำนาจให้ใครบางคนในระบบของคุณ ข้อ จำกัด ทั้งสองนี้ควรเพียงพอที่จะ จำกัด สิ่งที่คุณจะอ้างสิทธิ์

แนวคิดบางประการสำหรับการอ้างสิทธิ์ ได้แก่ :

  • ID ผู้ใช้
  • ชื่อผู้ใช้
  • อีเมลผู้ใช้
  • บทบาท
  • สมาชิกกลุ่ม

ข้อมูลเมตาของผู้ใช้ควรถูก จำกัด ในสิ่งที่จำเป็นในการปรับแต่งแอพสำหรับผู้ใช้และเพื่อเชื่อมโยงผู้ใช้กับข้อมูลของพวกเขา ID ของผู้ใช้เพียงพอที่จะเชื่อมโยงผู้ใช้กับข้อมูลหรือให้หลักฐานการตรวจสอบ อย่าโลภ

บทบาทและความเป็นสมาชิกกลุ่มคือการอ้างสิทธิ์ ตัวอย่างเช่นหากคุณมีกลุ่มในแอปพลิเคชันของคุณแล้วรายชื่อกลุ่มที่ผู้ใช้เป็นเจ้าของจะช่วยให้คุณตรวจสอบได้อย่างรวดเร็วว่าพวกเขาสามารถเข้าถึงกลุ่มส่วนตัวหรือไม่ บทบาทนั้นละเอียดเล็ก ๆ น้อย ๆ และพูดคุยถึงสิทธิพิเศษที่ผู้ใช้มี โดยทั่วไปจะเป็นแอปพลิเคชันที่เฉพาะเจาะจงดังนั้นเพิ่มเฉพาะสิ่งที่คุณต้องการบังคับใช้


0

มีหลายระบบโดยเฉพาะอย่างยิ่งระบบ STS / สหพันธรัฐที่ทำเช่นนี้:

  • การอ้างสิทธิ์หนึ่งรายการที่อธิบายผู้ใช้โดยเฉพาะ
  • การแบ่งประเภทของการเรียกร้องที่อธิบายถึงสิ่งที่เป็นแนวคิดทั่วไปที่พวกเขา (และอื่น ๆ ) สามารถเข้าถึงได้

ข้อมูล "โปรไฟล์" ของผู้ใช้ภายในแอพอาจไม่แปลเป็น / จากแหล่งรับรองความถูกต้องที่คุณใช้และคุณไม่สามารถใช้จุดปลายเดียวกันตลอดเวลาหรือผู้ใช้ทั้งหมด

หากคุณคุ้นเคยกับการรับรองความถูกต้องแบบฟอร์มแบบเก่ามันจะคล้ายกับชื่อผู้ใช้และบทบาทและสิ่งต่าง ๆ ในตัวยังคงดูเหมือนว่าถ้าคุณใช้ System.Security.Claims.ClaimTypes ของชื่อและบทบาทอย่างเหมาะสม

ไม่ว่าโมเดลเก่าหรือใหม่จะให้ประโยชน์กับคุณในการอ้างสิทธิ์หรือรับมรดก แต่นั่นไม่ใช่เรื่องยากที่จะนำไปใช้และการนำไปใช้จริงจะช่วยให้คุณลดปริมาณการเรียกร้องหรือบทบาทที่คุณต้องการไม่ให้เล่น การร้องขอ.

หากแอปพลิเคชันของคุณต้องการติดตามวันเกิด แต่ไม่จำเป็นต้องใช้ในกลไกการรักษาความปลอดภัยแสดงว่าไม่มีประโยชน์ใด ๆ ในการเก็บในการเรียกร้อง วางไว้ในชุดข้อมูลโปรไฟล์แยกต่างหากหรือบางอย่าง

หากแอปพลิเคชันของคุณต้องการรับวันเกิดเป็นข้อเรียกร้องจากระบบอื่นคุณกำลังมองหาบางสิ่งที่มากกว่าเช่นการกำหนดค่าการตรวจสอบภายนอกแบบสหพันธรัฐหรืออนุญาตให้มีการอ้างสิทธิ์เพิ่มเติมเพื่อยืนยัน

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