กลไกการอ้างสิทธิ์หมายถึงอะไรใน ASP.NET Identity Core ใหม่
มีวิธีการอนุญาตทั่วไปสองวิธีที่อิงตามบทบาทและการอ้างสิทธิ์
การรักษาความปลอดภัยตามบทบาท
ผู้ใช้ได้รับบทบาทหนึ่งหรือหลายบทบาทที่ผู้ใช้ได้รับสิทธิ์การเข้าถึง นอกจากนี้ด้วยการกำหนดผู้ใช้ให้กับบทบาทผู้ใช้จะได้รับสิทธิ์การเข้าถึงทั้งหมดที่กำหนดไว้สำหรับบทบาทนั้นทันที
การรักษาความปลอดภัยตามการเรียกร้อง
ข้อมูลเฉพาะตัวตามการอ้างสิทธิ์คือชุดของการอ้างสิทธิ์ การอ้างสิทธิ์คือข้อความที่เอนทิตี (ผู้ใช้หรือแอปพลิเคชันอื่น) ทำเกี่ยวกับตัวมันเองมันเป็นแค่การอ้างสิทธิ์ ตัวอย่างเช่นรายการการอ้างสิทธิ์สามารถมีชื่อผู้ใช้อีเมลของผู้ใช้อายุของผู้ใช้การอนุญาตของผู้ใช้สำหรับการดำเนินการ ในการรักษาความปลอดภัยตามบทบาทผู้ใช้นำเสนอข้อมูลประจำตัวโดยตรงกับแอปพลิเคชัน ในโมเดลตามการอ้างสิทธิ์ผู้ใช้จะแสดงการอ้างสิทธิ์ไม่ใช่ข้อมูลประจำตัวสำหรับแอปพลิเคชัน เพื่อให้การเรียกร้องมีคุณค่าในทางปฏิบัตินั้นจะต้องมาจากเอนทิตีที่แอปพลิเคชันไว้วางใจ
ขั้นตอนด้านล่างแสดงให้เห็นถึงลำดับของสิ่งที่เกิดขึ้นในรูปแบบความปลอดภัยตามการอ้างสิทธิ์:
- ผู้ใช้ร้องขอการกระทำ แอปพลิเคชั่นปาร์ตี้ที่ต้องพึ่งพา (RP) ขอโทเค็น
- ผู้ใช้นำเสนอข้อมูลประจำตัวให้กับหน่วยงานผู้ออกที่แอปพลิเคชัน RP ไว้วางใจ
- ผู้มีสิทธิ์ออกปัญหาโทเค็นที่ลงนามด้วยการเรียกร้องหลังจากการตรวจสอบข้อมูลประจำตัวของผู้ใช้
- ผู้ใช้นำเสนอโทเค็นไปยังแอปพลิเคชัน RP แอปพลิเคชันตรวจสอบลายเซ็นโทเค็นแยกการอ้างสิทธิ์และขึ้นอยู่กับการอ้างสิทธิ์ยอมรับหรือปฏิเสธคำขอ
แต่ฉันยังคงไม่เข้าใจและค้นหาข้อมูลใด ๆ เมื่อข้อมูลเพิ่มเข้ากับ AspNetUserClaims และสถานการณ์นี้ใช้ตารางนี้ในสถานการณ์ใด
เมื่อคุณอยู่ในสถานการณ์ที่ไม่มีการใช้การรักษาความปลอดภัยตามบทบาทและคุณเลือกที่จะใช้การรักษาความปลอดภัยตามการอ้างสิทธิ์คุณจะต้องใช้ตาราง AspNetUserClaims สำหรับวิธีใช้การอ้างสิทธิ์ในข้อมูลประจำตัวของ ASP.NET ดูลิงค์ด้านล่างสำหรับข้อมูลเพิ่มเติม
http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html
ปรับปรุง
ฉันต้องใช้การรักษาความปลอดภัยตามบทบาทและเวลาใดตามการอ้างสิทธิ์ คุณช่วยเขียนตัวอย่างหน่อยได้ไหม?
มีสถานการณ์ที่ไม่ชัดเจนนักที่คุณจะใช้หรือไม่ใช้การรักษาความปลอดภัยตามบทบาทหรือการอ้างสิทธิ์ตามความต้องการไม่ใช่กรณีที่คุณใช้ A แทน B
แต่การควบคุมการเข้าถึงตามการอ้างสิทธิ์ช่วยให้แยกกฎการอนุญาตที่ดีขึ้นจากตรรกะทางธุรกิจหลัก เมื่อกฎการให้สิทธิ์เปลี่ยนไปตรรกะทางธุรกิจหลักยังคงไม่ได้รับผลกระทบ จะมีสถานการณ์ที่คุณอาจต้องการใช้วิธีเรียกร้องตาม
บางครั้งการเรียกร้องก็ไม่จำเป็น นี่เป็นข้อจำกัดความรับผิดชอบที่สำคัญ บริษัท ที่มีโฮสต์ของแอปพลิเคชันภายในสามารถใช้ Integrated Windows Authentication เพื่อรับสิทธิประโยชน์มากมายจากการอ้างสิทธิ์ Active Directory ทำงานได้อย่างยอดเยี่ยมในการจัดเก็บข้อมูลผู้ใช้และเนื่องจาก Kerberos เป็นส่วนหนึ่งของ Windows แอปพลิเคชันของคุณจึงไม่จำเป็นต้องมีตรรกะการตรวจสอบสิทธิ์จำนวนมาก ตราบใดที่ทุก ๆ แอปพลิเคชั่นที่คุณสร้างสามารถใช้การพิสูจน์ตัวจริงของ Windows แบบรวมคุณอาจมีตัวตนที่แท้จริง อย่างไรก็ตามมีสาเหตุหลายประการที่คุณอาจต้องการสิ่งอื่นนอกเหนือจากการตรวจสอบ Windows คุณอาจมีแอปพลิเคชั่นที่ใช้งานเว็บซึ่งผู้ที่ไม่มีบัญชีในโดเมน Windows ของคุณ อีกเหตุผลหนึ่งอาจเป็นเพราะ บริษัท ของคุณควบรวมกิจการกับ บริษัท อื่นและคุณ กำลังมีปัญหาในการตรวจสอบสิทธิ์ใน Windows ป่าทั้งสองที่ไม่มี (และอาจไม่เคย) มีความสัมพันธ์ที่เชื่อถือได้ บางทีคุณอาจต้องการแชร์ข้อมูลประจำตัวกับ บริษัท อื่นที่มีแอปพลิเคชั่นที่ไม่ใช่. NET Framework หรือคุณต้องการแชร์ข้อมูลระหว่างแอปพลิเคชันที่ทำงานบนแพลตฟอร์มที่แตกต่างกัน (ตัวอย่างเช่น Macintosh) นี่เป็นเพียงบางสถานการณ์ที่ข้อมูลประจำตัวที่อ้างสิทธิ์อาจเป็นตัวเลือกที่เหมาะสมสำหรับคุณ
สำหรับข้อมูลเพิ่มเติมกรุณาเยี่ยมชมhttp://msdn.microsoft.com/en-us/library/ff359101.aspx