ทำไมเมื่อฉันเพิ่มการเข้าถึง IIS_IUSRS RW ในโฟลเดอร์มันไม่อนุญาตการเข้าถึง ISUR RW โดยอัตโนมัติ


11

ฉันใช้ IIS7 (Windows Server 2008 x64) และฉันมีการตั้งค่าเว็บไซต์โดยใช้การรับรองความถูกต้องแบบไม่ระบุชื่อ ข้อมูลประจำตัวของผู้ใช้ anon ถูกกำหนดค่าเป็น IUSR แอปพลิเคชันเขียนไฟล์ไปยังโฟลเดอร์และฉันให้สิทธิ์ RW กลุ่ม IIS_IUSRS กับโฟลเดอร์ มันใช้งานไม่ได้ ฉันต้องให้ IUSR RW perms อย่างชัดเจนเพื่ออนุญาตให้แอปพลิเคชันเขียนลงในโฟลเดอร์

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

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

ทุกคนสามารถอธิบายได้ว่า IUSR เป็นสมาชิกของกลุ่ม IIS_IUSRS หรือไม่?

ฉันได้ตรวจสอบเอกสารต่อไปนี้แล้วและไม่พบคำตอบที่ชัดเจน

การทำความเข้าใจบัญชีผู้ใช้และกลุ่มภายในใน IIS 7

Application Pool Identities

คำตอบ:


14

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

ถึงแม้ว่าคุณจะไม่ได้พูดให้ฉันเดา - แอพนี้เป็นแอปคลาสสิคหรือ? (มิฉะนั้นถ้าเป็น. Net คุณจะต้องใช้การแอบอ้างบุคคลอื่น) ไม่ว่าจะด้วยวิธีใดสิ่งที่เกิดขึ้นคือทรัพยากรถูกเข้าถึงเป็นข้อมูลประจำตัวที่มีการเลียนแบบความหมายผู้ใช้ที่ไม่ระบุชื่อในกรณีของคุณหมายถึง IUSR นั่นคือเหตุผลที่คุณต้องให้สิทธิ์ ใน. Net หากคุณปิดการแอบอ้างบุคคลอื่นคุณจะพบว่า IIS_IUSRS จะเข้ามาเล่นตามที่คุณคาดหวัง ใน Classic ASP (และสำหรับไฟล์คงที่) คุณไม่มีทางเลือกการเลียนแบบจะเปิดใช้งานเสมอ "; ดังนั้นจึงเป็นข้อมูลประจำตัวของผู้ใช้ที่ใช้ไม่ใช่ข้อมูลประจำตัวของพูล ดังนั้นเนื่องจาก IIS_IUSRS สำหรับข้อมูลเฉพาะตัวของพูลจึงไม่อยู่ในการเล่น


แก้ไขหลังจาก OP เพิ่มข้อมูลเพิ่มเติม:

ง่ายต่อการสับสน IUSR และ IIS_IUSRS เนื่องจากชื่อของพวกเขา วิธีที่จะเห็นว่าพวกเขาแตกต่างกันคือการจำไว้ว่า IIS_IUSRS เป็นสิ่งทดแทนสำหรับ IIS_WPG ใน IIS6 ซึ่งเป็นกลุ่มกระบวนการของผู้ปฏิบัติงาน ในกลุ่มเหล่านี้คุณเพิ่มบัญชีที่คุณต้องการเรียกใช้พูลของคุณภายใต้ไม่ใช่ข้อมูลประจำตัวไม่ได้สิทธิ์ anon ควรจะ จำกัด มากขึ้น เช่น. บางครั้งคุณอาจต้องการใช้บัญชีโดเมนเพื่อเรียกใช้พูลสำหรับการมอบหมาย kerberos ไปยังทรัพยากรเครือข่ายอื่น ๆ จากนั้นคุณจะเพิ่มบัญชีบริการนั้นลงในกลุ่มนี้

เมื่อมีการเปิดใช้งานการเลียนแบบพูล / กระบวนการอ้างว่าเป็นผู้ใช้เนื่องจากถูกแจ้งให้ทราบ ในกรณีที่มีการรับรองความถูกต้อง (กรณีของคุณ) ผู้ใช้นั้นคือ IUSR ในกรณีของ windows auth ก็จะเป็น windows \ domain identity ของผู้ใช้ นี่คือเหตุผลที่คุณได้รับผลกระทบจากการเลียนแบบเนื่องจากกระบวนการต้องเปลี่ยนเป็นข้อมูลเฉพาะตัวอื่นสำหรับการเข้าถึงทรัพยากร

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

ดังนั้นหลังจากนี้คุณจะต้องจัดการกับกลุ่ม IIS_IUSRS เท่านั้น แต่อย่าสับสนนี่ยังไม่ได้หมายความว่าสองคนนี้เหมือนกัน! อาจเป็นไปได้ที่กระบวนการระบุตัวตนแทน IUSR แต่ไม่ใช่วิธีอื่น ๆ !

เคล็ดลับ IIS7 เพิ่มเติมที่ต้องระวัง: หากคุณดู IIS_IUSRS มันอาจว่างเปล่า นั่นเป็นเพราะข้อมูลประจำตัวพูลเสมือนของคุณจะถูกเพิ่มโดยอัตโนมัติเมื่อเริ่มพูลดังนั้นคุณไม่ต้องกังวลเกี่ยวกับสิ่งเหล่านี้

ตารางนี้ควรช่วยชี้แจงให้ดีขึ้นถึงวิธีพิจารณาตัวตนการดำเนินการเธรด:

ทรัพยากรการเข้าถึงตัวตนแบบไม่ระบุชื่อเข้าถึงเป็น

เปิดใช้งาน IUSR_computer ที่เปิดใช้งานใน IIS5 / 6 หรือ
                                       IUSR ใน IIS7 หรือ
                                       หากคุณเปลี่ยนบัญชีผู้ใช้ anon 
                                       ใน IIS สิ่งที่คุณตั้งไว้ที่นั่น
Enabled Disabled MYDOM \ MyName
ปิดใช้งานบริการ Authority \ Network ของ NT (เครือข่ายรวม)
ปิดใช้งานปิดใช้งานบริการ NT Authority \ Network ของ NT (พูลข้อมูลประจำตัว)


เราใช้ definatley โดยใช้. Net (เป้าหมาย 3.5) แต่อาจใช้การเลียนแบบ ฉันจะต้องตรวจสอบกับผู้พัฒนาของฉันให้แน่ใจ ความสับสนของฉันเกิดจากความจริงที่ว่าฉันสันนิษฐาน (ดูเหมือนว่าไม่ถูกต้อง) ว่าข้อมูลเฉพาะตัวของผู้ใช้ที่ไม่ระบุชื่อนั้นเป็นสมาชิกของกลุ่ม IIS_IUSRS โดยอัตโนมัติ เนื่องจากเขาไม่อนุญาตให้ฉันอธิบายและโปรดแก้ไขให้ฉันถ้าฉันสวมใส่

1) การใช้ ASP แบบคลาสสิกสิทธิ์การเข้าถึงไฟล์ใช้ข้อมูลประจำตัวของผู้ใช้ที่ไม่ระบุชื่อ ใน IIS 7 หรือใหม่กว่าผู้ใช้นี้ไม่ได้เป็นสมาชิกของกลุ่ม IIS_IUSRS โดยค่าเริ่มต้น 2) การใช้ ASP.Net สิทธิ์การเข้าถึงไฟล์ใช้ข้อมูลประจำตัวผู้ใช้ที่ไม่ระบุตัวตนหากเปิดใช้งานการรับบทบาท ใน IIS 7 หรือใหม่กว่าผู้ใช้นี้ไม่ได้เป็นสมาชิกของกลุ่ม IIS_IUSRS โดยค่าเริ่มต้น 3) การใช้ ASP.Net สิทธิ์การเข้าถึงไฟล์จะใช้ข้อมูลประจำตัวของกระบวนการของผู้ปฏิบัติงานหากการแอบอ้างบุคคลอื่นถูกปิดใช้งาน ใน IIS 7 หรือใหม่กว่าผู้ใช้นี้เป็นสมาชิกของกลุ่ม IIS_IUSRS เสมอตามค่าเริ่มต้น

ใช่ถูกต้องทุกจุด! เพื่อความชัดเจนอย่างสมบูรณ์ใน # 1 และ # 2 คุณควรเพิ่ม "ถ้าเปิดใช้งาน IIS anon auth" ซึ่งฉันไม่จำเป็นต้องใส่ไว้ก่อนหน้านี้เพราะคุณบอกว่าคุณใช้อานนท์อยู่แล้ว ดูตารางที่ฉันเพิ่มเพื่ออธิบายสิ่งนี้ได้ดียิ่งขึ้น
Amit Naidu

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