1s ไม่มีบทบาทสำหรับผู้ใช้รายนี้ กล่องโต้ตอบที่สับสนที่สุดใน Active Directory วิธีที่เราทดสอบและสิ่งที่เราใส่ใจ

2 คำตอบ

แก้ได้

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

แม้จะมีคำแนะนำของข้อความแสดงข้อผิดพลาด แต่นี่ไม่ใช่ปัญหากับแบบจำลองแนวคิด (CSDL) แต่เป็นปัญหาการแมปคอลัมน์ที่สร้างขึ้นใหม่เป็นระยะๆ

โมเดลเชิงแนวคิดถูกสร้างขึ้นโดยใช้ EdmxWriter เพื่อแยกวิเคราะห์ DbContext และส่วนหลักของมัน

จากนั้นแบบจำลองจะถูกนำมาใช้เพื่อสร้างสคริปต์ SQL เพื่อแปลสคีมาลงในฐานข้อมูลใหม่ เคล็ดลับคือฐานข้อมูลคือ Oracle

Oracle ยังเป็นเด็กและไม่ยอมรับชื่อคอลัมน์ที่ยาว ดังนั้น สคริปต์ EDMX และ SQL ที่สร้างขึ้นจึงต้องได้รับการแก้ไขเพื่อสร้างและแมปส่วนของโมเดลแนวความคิดด้วยชื่อคอลัมน์ที่สั้นลง

ไม่ใช่เรื่องใหญ่. มันทำงานได้ดี แล้วมันผิดพลาดตรงไหนล่ะ?

Oracle ไม่รองรับ "โค้ดมาก่อน" แม้ว่าจะดำเนินการด้วยตนเอง แต่การใช้ EdmxWriter ก็เป็นแนวทางที่ใช้โค้ดใน Oracle ดังนั้น เมื่อวงจร EDMX แรกถูกแยกชิ้นส่วน มันเป็นไบนารีเกี่ยวกับการแม็ปลอจิคัล วิธีแก้ไขคือการลบบูลออกจากโมเดล C# ของฉันชั่วคราว เพิ่มลงใน EDMX ด้วยตนเอง และทำการแมป Oracle web.config (การแมปบูลเป็น NUMBER(1,0))

ทุกอย่างกลับมาเฮฮาอีกครั้ง แต่ทำไมมันถึงยังซ้ำรอยอยู่อีก?

ในช่วงเวลาต่างๆ ตลอดกระบวนการพัฒนา จุดสิ้นสุดของแบบแผนบางส่วน - ไม่ว่าจะเป็น C#, EDMX หรือ Oracle - มีการเปลี่ยนแปลง และทุกครั้งที่ดูเหมือนว่าคอลัมน์จะถูกกำหนดใหม่โดยอัตโนมัติโดยที่ฉันไม่รู้ หากโมเดล EDMX ได้รับการอัปเดตจาก Oracle การแมปจะชี้ไปที่คุณสมบัติ C# ที่ไม่มีอยู่ที่นั่น (ชื่อคอลัมน์แบบสั้น) หากโมเดลได้รับการอัปเดตจากโค้ด C# การแมปจะไม่ถูกบันทึก และจะพยายามแมปชื่อคอลัมน์แบบยาวที่ไม่ได้อยู่ใน Oracle

สิ่งที่น่ารังเกียจสำหรับแนวทางนี้ (โค้ดและโมเดลแรกแบบไฮบริด) คือหากฉันต้องการจัดการโมเดลของตัวเองต่อไปและจัดการการตั้งค่าที่จำเป็นสำหรับความสัมพันธ์แบบเด็กเล็ก ฉันจะต้องระมัดระวังอย่างมากและจับตาดูลักษณะของไฟล์ EDMX

29/10/2012 ทิม สปริงสตัน

ในบทความนี้ ฉันจะพยายามอธิบายบางแง่มุมของ "กล่องโต้ตอบที่สับสนที่สุดใน AD" ซึ่งก็คือแท็บการมอบหมายในหน้าต่างคุณสมบัติออบเจ็กต์ของสแน็ปอินผู้ใช้ Active Directory และคอมพิวเตอร์ของ Microsoft Management Console (MMC) (dsa .msc) เราจะดูค่าแอตทริบิวต์สำหรับการกำหนดค่าต่างๆ การทำความเข้าใจวัตถุประสงค์ของการตั้งค่าจะช่วยให้คุณสามารถกำหนดค่าแอปพลิเคชันและบริการที่ใช้การมอบหมาย Kerberos ใน AD ได้อย่างถูกต้อง

ทิม สปริงสตัน ( [ป้องกันอีเมล]) – วิศวกรบริการอาวุโส การสนับสนุนทางเทคนิคแผนกสนับสนุนด้านเทคนิคเชิงพาณิชย์ของ Microsoft รับผิดชอบด้านความปลอดภัยและการอนุญาต

หนึ่งในการพูดคุยกันอย่างแข็งขันที่สุดในบล็อก เทคโนโลยีของไมโครซอฟต์– การรับรองความถูกต้องโดยใช้โปรโตคอล Kerberos นี่เป็นเรื่องที่แปลกเมื่อพิจารณาว่าเทคโนโลยีและฟังก์ชันต่างๆ ของมันไม่ได้รับการเปลี่ยนแปลงที่สำคัญนับตั้งแต่เปิดตัว วินโดวส์เซิร์ฟเวอร์พ.ศ. 2546 อย่างไรก็ตาม Kerberos ยังคงเป็นหัวข้อในการจัดทำเอกสารเพิ่มเติม

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

ในบทความนี้ ฉันจะพยายามอธิบายบางแง่มุมของ "กล่องโต้ตอบที่สับสนที่สุดใน AD" ซึ่งก็คือแท็บการมอบหมายในหน้าต่างคุณสมบัติออบเจ็กต์ของสแน็ปอินผู้ใช้ Active Directory และคอมพิวเตอร์ของ Microsoft Management Console (MMC) (dsa .msc) เราจะดูค่าแอตทริบิวต์สำหรับการกำหนดค่าต่างๆ การทำความเข้าใจวัตถุประสงค์ของการตั้งค่าจะช่วยให้คุณสามารถกำหนดค่าแอปพลิเคชันและบริการที่ใช้การมอบหมาย Kerberos ใน AD ได้อย่างถูกต้อง

อินเตอร์เฟซที่เรียบง่าย

เหตุใดจึงต้องเสียเวลาเรียนรู้อินเทอร์เฟซที่ "เรียบง่าย" จำเป็นต้องลงรายละเอียดเนื่องจากการทำความเข้าใจด้านเทคนิคของการทำงานของพารามิเตอร์ต่างๆ จะช่วยให้คุณแก้ไขข้อผิดพลาดในการกำหนดค่าได้สำเร็จมากขึ้น ดังนั้นเรามาเริ่มด้วยการทำความเข้าใจความหมายของทัศนคติกันก่อน หากคุณเปิดสแนปอินผู้ใช้ Active Directory และคอมพิวเตอร์ และไปที่คุณสมบัติบัญชีคอมพิวเตอร์ คุณจะเห็นแท็บการมอบหมาย (สมมติว่าฟอเรสต์ของคุณอยู่ที่ระดับการทำงานของ Server 2003) แท็บนี้แสดงในรูปที่ 1 เพื่อช่วยอธิบายวัตถุประสงค์ของสวิตช์บนแท็บนี้ รูปที่ 2 จะแนะนำชื่ออื่นที่คุณสามารถตั้งชื่อได้

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

ตัวเลือกสองอันดับแรก (“อย่าไว้ใจให้คอมพิวเตอร์มอบหมาย” และ “เชื่อถือคอมพิวเตอร์ในการมอบหมายบริการใดๆ”) ในรูปที่ 1 อธิบายได้ในตัว ตัวเลือกที่สามคือ Kerberos Constrained Delegation (KCD) ซึ่งโดยพื้นฐานแล้วเหมือนกับการมอบหมายแบบธรรมดา แต่จะมอบหมายข้อมูลระบุตัวตนที่แอบอ้างให้กับบริการหรือคอมพิวเตอร์ที่ระบุเท่านั้น ตัวเลือกนี้ให้ระดับการรักษาความปลอดภัยที่สูงขึ้นโดยการจำกัดขอบเขตของการมอบหมายข้อมูลประจำตัวของผู้ใช้ที่แอบอ้าง ดังนั้นหากข้อมูลประจำตัวของบริการที่เชื่อถือได้สำหรับการมอบหมายถูกบุกรุก ผลที่ตามมาจะถูกจำกัดอยู่ที่ความสามารถในการเข้าถึงเฉพาะทรัพยากรเหล่านั้นบน เซิร์ฟเวอร์ระยะไกลซึ่งได้รับการเลือกด้วยตนเองสำหรับการมอบหมายที่มีข้อจำกัด

ตัวเลือกที่สี่ในรูปที่ 1 อนุญาตให้ใช้ส่วนขยาย KCD และบริการสำหรับผู้ใช้ (หรือ S4U) ส่วนขยาย S4U มีฟังก์ชันขั้นสูงเพิ่มเติม เช่น การเปลี่ยนโปรโตคอล การสลับโปรโตคอลเกิดขึ้นเมื่อไคลเอนต์รับรองความถูกต้องด้วยโปรโตคอลอื่นที่ไม่ใช่ Kerberos ในการเชื่อมต่อขาเข้าเป็นครั้งแรก จากนั้นสลับไปยัง Kerberos คำอธิบายโดยละเอียด S4U มีอยู่ในเอกสารประกอบ "การสำรวจส่วนขยาย Kerberos ของ S4U ใน Windows Server 2003" (msdn.microsoft.com/en-us/magazine/cc188757.aspx) และ "การเปลี่ยนโปรโตคอลพร้อมส่วนเสริมด้านเทคนิคการมอบหมายแบบจำกัด" (msdn.microsoft.com/ enus/library/ff650469.aspx) ทรัพยากรเหล่านี้มุ่งเป้าไปที่โปรแกรมเมอร์ ไม่ใช่ผู้ดูแลระบบ แต่ผู้ดูแลระบบก็ควรเข้าใจว่า S4U คืออะไร วิธีกำหนดค่า และเมื่อใดจึงจะใช้ เพื่อจุดประสงค์นี้ นี่คือรายการสั้นๆ ของความสามารถ S4U ที่มีไว้สำหรับผู้ดูแลระบบ

การได้รับข้อมูลเกี่ยวกับโทเค็นของผู้ใช้โดยไม่ได้รับโทเค็นนั้นจริงๆ และไม่มีบริการตั๋วที่เชื่อถือได้ได้รับตั๋วการอนุญาตตั๋ว (TGT) จากผู้ใช้ที่ไว้วางใจหรือการเข้าถึงข้อมูลประจำตัว ข้อมูลที่ได้รับสามารถนำไปใช้ได้ เช่น สำหรับการตรวจสอบการอนุญาต ส่วนขยายนี้เรียกว่าบริการสำหรับผู้ใช้เพื่อตนเอง (S4U2Self)

การรับตั๋วโดยไม่ต้องมีตั๋วบริการ Kerberos โดยไม่ต้องเข้าถึงข้อมูลประจำตัว ผ่าน TGT หรือไม่ต้องมีการตรวจสอบสิทธิ์เลย - Services-For-User-To-Proxy (S4U2Proxy)

ทำการเปลี่ยนแปลงโปรโตคอลที่กล่าวถึงก่อนหน้านี้ ไคลเอนต์ที่เข้าถึงบริการระดับองค์กรจะตรวจสอบสิทธิ์โดยใช้วิธีการอื่นที่ไม่ใช่ Kerberos ในขั้นต้น และ S4U จะอนุญาตให้บริการที่เชื่อถือได้สลับเซสชันของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แล้วไปใช้ Kerberos นี่คือจุดที่ความล้มเหลวที่เกิดจากข้อผิดพลาดในการกำหนดค่ามักเกิดขึ้น เนื่องจากเอกสารประกอบของแอปพลิเคชันมักไม่ได้อธิบายอย่างชัดเจนว่าจำเป็นต้องเปลี่ยนโปรโตคอลหรือวิธีกำหนดค่าใน AD อย่างไรก็ตาม หัวข้อนี้มีความเกี่ยวข้อง เนื่องจากในปัจจุบันแทบไม่มีบทความใดที่สมบูรณ์เลยหากไม่ได้กล่าวถึง "คลาวด์" ไคลเอนต์ที่เชื่อมต่อผ่านคลาวด์มักจะใช้การรับรองความถูกต้องของ NTLM เนื่องจากไม่มีตัวควบคุมโดเมน (DC) ที่จัดการคำขอตั๋วบริการ Kerberos ผ่านทางอินเทอร์เน็ต การเปลี่ยนโปรโตคอลทำให้ผู้ใช้โดเมนนี้สามารถเชื่อมต่อผ่านได้ ซอฟต์แวร์ ไฟร์วอลล์หรือพร็อกซีโดยใช้วิธีการตรวจสอบความถูกต้องวิธีใดวิธีหนึ่ง (เช่น NTLM) จากนั้นสลับไปใช้การตรวจสอบความถูกต้อง Kerberos เพื่อดำเนินการ การดำเนินการเพิ่มเติมข้างใน เครือข่ายองค์กร. เนื่องจาก "คลาวด์" หมายถึงการเชื่อมต่อผ่านอินเทอร์เน็ต คุณจึงมั่นใจได้ว่าหากคุณใช้โซลูชันคลาวด์ใดๆ ไม่ช้าก็เร็วคุณจะต้องใช้ตัวเปลี่ยนโปรโตคอล Kerberos

ใต้เปลือกนอก

ตอนนี้เรามาดูสิ่งที่เกิดขึ้นจริงเมื่อตั้งค่าพารามิเตอร์ทั้งสี่แต่ละตัวโดยใช้ LDP เพื่อดูค่าของแอตทริบิวต์ที่ตั้งค่าไว้สำหรับการกำหนดค่าแต่ละรายการ LDP ได้รับการติดตั้งพร้อมกับบทบาท AD Domain Services ตามค่าเริ่มต้น และสามารถใช้เป็นเครื่องมือประมวลผลคำค้นหา LDAP ได้ อินเตอร์เฟซแบบกราฟิก. LDP ช่วยให้คุณสร้างการสืบค้น LDAP ของคุณเองและดูผลลัพธ์ในรูปแบบที่อ่านง่าย ประโยชน์เพิ่มเติมของการใช้ LDP เพื่อดูค่าแอตทริบิวต์ (เช่น userAccountControl) คือการแปลค่าพารามิเตอร์ที่คำนวณให้เป็นรูปแบบที่มนุษย์อ่านได้แทนการรวมตัวเลข อย่างไรก็ตาม adsiedit.msc เวอร์ชันใหม่กว่ายังมีการประมวลผลค่าพารามิเตอร์จากการคำนวณที่คล้ายกันอีกด้วย

ดังนั้นใน Windows Server 2008 และใหม่กว่า ldp.exe และ adsiedit.msc จึงมีการแปลค่าแอตทริบิวต์โดยอัตโนมัติ (เช่น userAccountControl) ซึ่งช่วยลดความจำเป็นในการเปิด calc.exe และศึกษาเอกสารประกอบ MSDN ออนไลน์หรือฐานความรู้ของ Microsoft

ตอนนี้เรามาดูการเปลี่ยนแปลงค่าแอตทริบิวต์ใน LDP ขึ้นอยู่กับการตั้งค่าที่ทำ เริ่มจากบัญชีที่ไม่น่าเชื่อถือสำหรับการมอบสิทธิ์ รูปที่ 3 แสดงว่าบัญชี Test2 ไม่น่าเชื่อถือ และค่าเลขฐานสิบหก 1020 ของแอตทริบิวต์ userAccountControl (ตรงกับทศนิยม 4128) ได้รับการแปลเป็น WORKSTATION_TRUST_ACCOUNT และ PASSWD_NOTREQD

รูปที่ 4 แสดงบัญชีที่เชื่อถือได้สำหรับการมอบหมาย เราสามารถเห็นค่าแอตทริบิวต์ userAccountControl ที่แปลเป็น TRUSTED_FOR_DELEGATION ซึ่งบ่งชี้ว่าการมอบหมาย Kerberos แบบธรรมดาที่ไม่จำกัดนั้นได้รับอนุญาตให้ระบุตัวตนของบริการนี้

การมอบหมายความไว้วางใจให้กับบริการเฉพาะ

การตั้งค่าต่อไปนี้มีความสำคัญหากคุณต้องการใช้ S4U หรือ KCD กรณีแรกสอดคล้องกับการเลือกเชื่อถือตัวเลือกนี้ คอมพิวเตอร์สำหรับการมอบหมายบริการที่ระบุเท่านั้น และใช้ Kerberos เท่านั้น รูปที่ 5 แสดงให้เห็นว่าด้วยการเลือกนี้ คุณลักษณะ userAccountControl จะถูกตั้งค่าเป็น WORKSTATION_TRUST_ACCOUNT อีกครั้ง และแอตทริบิวต์ MsDS-AllowedToDelegateTo จะถูกเติมโดยอัตโนมัติด้วยบริการที่เลือกซึ่งได้รับอนุญาตให้มอบหมาย แอตทริบิวต์นี้ไม่ได้รับการเติมข้อมูลหรือได้รับผลกระทบจากขั้นตอนอื่นใด รายการนี้จะแสดงรายการบริการเฉพาะบนคอมพิวเตอร์ที่เปิดใช้งานการมอบหมาย

ตัวเลือกที่สองมีความปลอดภัยน้อยกว่า - ใช้โปรโตคอลการตรวจสอบสิทธิ์ใด ๆ ซึ่งอนุญาตให้เปลี่ยนโปรโตคอลและตัวเลือกส่วนขยายอื่น ๆ นอกเหนือจากรายการในแอตทริบิวต์ MsDS-AllowedToDelegateTo แล้ว การตั้งค่านี้จะเปลี่ยนแอตทริบิวต์ userAccountControl ซึ่งได้รับ TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION (T2A4D) ดังรูปที่ 6 แสดง หากไม่มีแฟล็ก T2A4D คุณอาจพบข้อผิดพลาดในการเปลี่ยนแปลงโปรโตคอล คอมโพเนนต์อื่นไม่ได้ใช้แฟล็กนี้ โปรดทราบว่าสวิตช์แบบธรรมดานี้มีความสำคัญอย่างยิ่ง เนื่องจากหากไม่ได้เลือกไว้ การเปลี่ยนแปลง S4U2Self, S4U2Proxy และโปรโตคอลจะทำงานแตกต่างออกไป ซึ่งอาจทำให้เกิดปัญหากับแอปพลิเคชันและบริการที่คาดหวังประเภทตั๋วที่เกี่ยวข้อง โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงโปรโตคอลจะล้มเหลวและจะไม่มีการออกตั๋ว S4U2Proxy และ S4U2Self จะไม่มีแฟล็กที่สามารถส่งต่อได้ ซึ่งจะส่งผลให้เกิดข้อผิดพลาด: สำหรับ S4U2Proxy - ไม่ว่าในกรณีใด และสำหรับ S4U2Self - ในสถานการณ์ที่คุณต้องส่งตั๋วไปยังบริการหรือโหนดอื่น

"ทำด้วยตัวคุณเอง"

จะเกิดอะไรขึ้นหากบัญชีบริการที่ใช้โดยแอปพลิเคชันหรือบริการจำเป็นต้องดำเนินการที่จำเป็นต้องมีการเปลี่ยนแปลงโปรโตคอล และแท็บการมอบหมายถูกตั้งค่าเป็นใช้ Kerberos เท่านั้น แทนที่จะใช้การรับรองความถูกต้องของโปรโตคอลการตรวจสอบความถูกต้องใดๆ") สำหรับแอปพลิเคชันไคลเอนต์ ข้อผิดพลาดอาจเป็น: แบบฟอร์มการเข้าถึงถูกปฏิเสธเมื่อพยายามเข้าถึงทรัพยากรผ่านเครือข่าย หรือมีข้อผิดพลาดในการรับรองความถูกต้อง NTLM โดยไม่มีการแจ้งเตือน หรืออาจเกิดข้อผิดพลาดขึ้นอยู่กับแอปพลิเคชันที่ไม่คาดคิด ความไม่แน่นอนของรูปแบบที่ข้อผิดพลาดจะแสดงออกมาทำให้งานซับซ้อนยิ่งขึ้น อย่างไรก็ตาม ผลลัพธ์ที่เป็นไปได้มากที่สุดคือ Access Denied ในสถานการณ์นี้ โปรดตรวจสอบเอกสารการสมัครหรือบริการเพื่อดูว่าจะมีการเปลี่ยนแปลงโปรโตคอลหรือคำขอตั๋วจากบริการโดยไม่มี TGT หรือไม่ ปัญหาคือผู้เขียนเอกสารส่วนใหญ่ไม่เข้าใจความหมายของการกำหนดค่า KCD จริงๆ ดังนั้นจึงให้คำอธิบายเพียงเล็กน้อยหรือไม่มีเลย

วิธีการระบุสาเหตุของข้อผิดพลาดด้วยตนเองสามารถทำได้โดยการรวบรวมข้อมูลการติดตามเครือข่ายจากเซิร์ฟเวอร์ที่เชื่อถือได้สำหรับการมอบหมาย กรองข้อมูลที่รวบรวมตาม Kerberos (Kerberosv5 ใน Microsoft Network Monitor หรือ kerberos ใน Wireshark) คำขอบริการการออกตั๋ว (TGS_REQ) จะถูกส่งไปยัง AD Kerberos Distribution Center (KDC) และมีพารามิเตอร์ KDC พร้อมชุดแฟล็กการมอบหมายที่มีข้อจำกัด หากตั๋วถูกปฏิเสธ การตอบสนองของเซิร์ฟเวอร์ (TGS_REP) จะมีข้อผิดพลาด KDC_ERR_BAD_OPTION ซึ่งสามารถเห็นได้ง่ายในผลลัพธ์การติดตามเครือข่าย

มากกว่า รายละเอียดข้อมูลคุณสามารถดูการทำงานของการใช้งาน Microsoft Kerberos ได้ใน Open Protocols Specification ออนไลน์ "ส่วนขยายโปรโตคอล Kerberos" (msdn.microsoft.com/en-us/library/cc233855%28v=PROT.13%29.aspx) มีเอกสารทั่วไปเกี่ยวกับ Kerberos และ "ส่วนขยายโปรโตคอล Kerberos: บริการสำหรับผู้ใช้และข้อกำหนดโปรโตคอลการมอบหมายการมอบหมายที่มีข้อจำกัด » (msdn.microsoft.com/en-us/library/cc246071%28v=PROT.13%29.aspx) – เอกสารเกี่ยวกับการมอบหมายที่จำกัดของ Kerberos และ S4U

โลกที่สมบูรณ์แบบ

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



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

บนไซต์ดังกล่าว 3 บทบาท "อยู่" ด้วยสิทธิ์และความรับผิดชอบของตนเอง:

1.

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

2.

บุคคลนิรนามที่ผ่านการรับรองความถูกต้องและการอนุญาตจะได้รับ บทบาทใหม่. เฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถจัดการได้ บัญชีส่วนตัว, เพิ่มและแก้ไขข้อมูลส่วนตัว, ดูข้อมูลเกี่ยวกับตัวละครอื่นๆ ผู้ใช้ที่ไม่ได้ลงทะเบียนจะไม่ได้รับอนุญาตให้ดำเนินการเหล่านี้

3. ผู้ดูแลระบบ

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

เราจะทดสอบอย่างไรและเราใส่ใจกับสิ่งใด?

ก่อนอื่น เราจะพยายามไม่ลบ “ผู้ดูแลระบบขั้นสูง” ด้วยการเล่นกับการตั้งค่า

  • การสร้างตัวละครที่ปลอดภัย

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

  • กำลังตรวจสอบเบราว์เซอร์หลายตัว

เราทำไปพร้อมๆ กัน โดยอันหนึ่งเราเปลี่ยน PD และอีกอันเราตรวจสอบการใช้สิทธิ์สำหรับผู้ใช้ จึงแยกเซสชันผู้ใช้ออกจากกัน

  • ตามลิงค์โดยตรง

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

  • การทดสอบการบล็อกเอนทิตี

สำหรับทรัพยากร เช่น บริการจองตั๋วและบริการทัวร์ สิ่งสำคัญคือต้องล็อกองค์ประกอบเมื่อผู้ใช้หลายคนสามารถเข้าถึงได้ในคราวเดียว มีสองตัวเลือกในการบล็อก:

+ การปิดกั้นในแง่ดีเมื่อทำการบันทึกให้ตรวจสอบฐานข้อมูลเพิ่มเติม เวอร์ชั่นใหม่ข้อมูลที่เหลือโดยผู้ใช้รายอื่น ถ้ามันมีอยู่แล้วล่ะ ผู้ใช้ปัจจุบันดาวน์โหลดซ้ำ สำเนานี้แก่นแท้.

+ การปิดกั้นในแง่ร้ายเอนทิตีถูกใช้เมื่อการมองโลกในแง่ดีทำให้เกิดการชนกันมากเกินไป ในกรณีนี้ มีผู้ใช้เพียงรายเดียวในเวลาปัจจุบันที่ใช้และเปลี่ยนแปลงเวอร์ชันของเอนทิตีนี้

คุณสามารถทดสอบจากคอมพิวเตอร์เครื่องเดียวในเบราว์เซอร์หลายตัวหรือด้วยบัญชีที่แตกต่างกัน

  • การใช้เมทริกซ์ทดสอบ

ช่วยให้การทำงานของผู้ทดสอบง่ายขึ้น แสดงการกระทำที่ได้รับอนุญาตและต้องห้ามอย่างชัดเจน และช่วยให้ไม่พลาดสิ่งใดๆ เราอธิบายบทบาท ผู้ใช้ รูปแบบต่างๆ ของข้อจำกัดของตัวละครของเราไว้ในนั้น

และนี่คือตัวอย่างที่ง่ายที่สุดของเมทริกซ์ทดสอบ:

การควบคุมการเข้าถึงเป็นหนึ่งในการตรวจสอบหลักภายในกรอบงาน แม้แต่การทดสอบเว็บไซต์ห้องสมุดท้องถิ่นที่มีสามบทบาทก็ยังก่อให้เกิดความท้าทายสำหรับผู้ทดสอบ แต่แหล่งข้อมูลยอดนิยมที่มีบทบาทมากมาย ผู้ใช้หลายพันคน และการอนุญาตนับล้านต้องใช้ผู้ดูแลระบบทั้งหมด! เป็นเรื่องยากสำหรับเราที่จะจินตนาการถึงระดับความเสียหายหากมือสมัครเล่นทำการทดสอบ จ้างผู้เชี่ยวชาญที่มีความสามารถและหลีกเลี่ยงช่องว่างด้านความปลอดภัยของผลิตภัณฑ์ของคุณ!