วิธีการกำหนดสิทธิ์ให้กับบัญชี ApplicationPoolIdentity


263

ใน IIS 7 บน Windows Server 2008 สามารถเรียกใช้กลุ่มแอปพลิเคชันเป็นบัญชี "ApplicationPoolIdentity" แทนบัญชี NetworkService

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

ฉันไม่ใช่คนเดียวที่มีปัญหานี้: ดูปัญหาเกี่ยวกับ ApplicationPoolIdentity ใน IIS 7.5 + Windows 7สำหรับตัวอย่าง


"นี่เป็นข้อ จำกัด ของตัวเลือกวัตถุใน Windows Server 2008 / Windows Vista - เนื่องจากมีหลายคนที่ค้นพบแล้วคุณยังสามารถจัดการ ACL สำหรับข้อมูลประจำตัวแอพโดยใช้เครื่องมือบรรทัดคำสั่งเช่นicacls "

คำตอบ:


289

อัปเดต:คำถามเดิมสำหรับ Windows Server 2008 แต่การแก้ปัญหานั้นง่ายกว่าสำหรับ Windows Server 2008 R2 และ Windows Server 2012 (และ Windows 7 และ 8) คุณสามารถเพิ่มผู้ใช้ผ่านทาง NTFS UI โดยการพิมพ์โดยตรง ชื่ออยู่ในรูปแบบของ IIS APPPOOL \ {ชื่อกลุ่มแอพ} ตัวอย่างเช่น: IIS APPPOOL \ DefaultAppPool

IIS APPPOOL\{app pool name}

หมายเหตุ: ตามความคิดเห็นด้านล่างมีสองสิ่งที่ต้องระวัง:

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

การอ้างอิงถึงบทความ Microsoft เอกสาร: Application Pool Identities> การรักษาความปลอดภัยทรัพยากร

คำตอบดั้งเดิม: (สำหรับ Windows Server 2008) นี่เป็นคุณสมบัติที่ยอดเยี่ยม แต่อย่างที่คุณพูดถึงมันยังไม่ได้ใช้งานอย่างสมบูรณ์ คุณสามารถเพิ่มข้อมูลประจำตัวของแอพได้จากพรอมต์คำสั่งด้วยสิ่งต่างๆเช่น icacls จากนั้นคุณสามารถจัดการได้จาก GUI ตัวอย่างเช่นเรียกใช้สิ่งนี้จากพรอมต์คำสั่ง:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

จากนั้นใน Windows Explorer ให้ไปที่โฟลเดอร์ wwwroot และแก้ไขการอนุญาตด้านความปลอดภัย คุณจะเห็นสิ่งที่ดูเหมือนกลุ่ม (ไอคอนกลุ่ม) ที่เรียกว่า DefaultAppPool ตอนนี้คุณสามารถแก้ไขการอนุญาต

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

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

หมายเหตุ: หากคุณไม่พบผู้ใช้กลุ่มแอพพลิเคชั่นให้ตรวจสอบว่าบริการ Windows ชื่อ Application Host Helper Service กำลังทำงานอยู่หรือไม่ เป็นบริการที่แมปผู้ใช้กลุ่มแอปพลิเคชันกับบัญชี Windows


1
มันเป็นสัตว์ประหลาดแปลก ๆ เพราะมันไม่เหมือนกับกลุ่มที่ผู้ใช้อยู่ในกลุ่มและมันก็ไม่เหมือนบัญชีคอมพิวเตอร์กับบัญชีผู้ใช้ที่แตกต่างจากกันอย่างสิ้นเชิง บัญชีกลุ่มแอป 'ทับซ้อน' ผู้ใช้ข้อมูลประจำตัวกลุ่มแอพ ตัวอย่างเช่นคุณสามารถมีแอพพูล 5 แอปที่ใช้บริการเครือข่ายและอีก 5 แอปที่ใช้บัญชีที่กำหนดเอง แต่เป็นแอพพลิเคชั่นที่จัดการโดยระบบ 10 บัญชี ข้อดีจะสังเกตเห็นได้ด้วยโฟลเดอร์ c: \ inetpub \ temp \ appPools ที่จัดการโดยอัตโนมัติและล็อคระบบอย่างหมดจด IIS ใช้ประโยชน์ได้ดี การใช้โฟลเดอร์ของเรานั้นเป็นตัวเลือก
Scott Forsyth - MVP

29
โปรดทราบว่าหากคุณป้อน "IIS APPPOOL \ DefaultAppPool" โดยตรงใน "เลือกผู้ใช้หรือกลุ่ม" (แทนที่จะค้นหา) เมื่อแก้ไขการอนุญาตจะได้รับการยอมรับ (ทดสอบบน Win7 x64 และ Win2k8 R2 x64)
Milan Gardian

5
คุณถูกต้องสำหรับ Win7 และ Win2k8 R2 ไม่ได้ใช้งานใน Win2k8 RTM แต่อยู่ใน R2
Scott Forsyth - MVP

9
ในที่สุดก็มีสิ่งนี้ - หากคุณพิมพ์ชื่อกลุ่มแอพโดยตรงเช่น @Milan Gardian พูดว่าข้างต้นและเปลี่ยนฟิลด์ที่ตั้งเป็นเครื่องท้องถิ่นจากนั้นก็ใช้งานได้
Ciaran Bruen

4
ขอบคุณมากสำหรับ 'สองสิ่งที่ต้องระวัง' ฉันสะดุดทั้งสองอย่างนี้และนี่เป็นคำอธิบายที่ชัดเจนและเรียบง่ายของปัญหาและวิธีการบรรลุสิ่งที่ฉันต้องการ เป็นเพียงความอัปยศไม่มีเอกสาร MSDN ชัดเจนนี้
Ian Grainger

22

คุณต้องตรวจสอบให้แน่ใจว่าFrom this locationเขตข้อมูลถูกตั้งค่าเป็นlocal machineและไม่ใช่โดเมน

ฉันมีปัญหาเดียวกันและเมื่อฉันเปลี่ยนมันทำงานได้ดี


4

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


3

หลังจากอ่าน @Scott Forsyth - คำตอบ MVP ฉันพยายามเริ่มบริการ Application Host Helper ใหม่ นั่นช่วยแก้ไขปัญหาให้ฉันได้


0

ฉันใช้งาน WS8 R2 และไม่สามารถเพิ่มIIS APPPOOL\DefaultAppPoolผ่าน Windows Explorer ได้ วิธีเดียวที่ทำงานคือผ่านบรรทัดคำสั่ง:

cacls [เส้นทางไฟล์] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


2
แปลกฉันต้องทำ "IIS AppPool \ DefaultAppPool" เพื่อให้เป็นที่ยอมรับ สังเกตุกรณีตัวพิมพ์เล็ก - ตัวพิมพ์ใหญ่ทั้งหมดอย่างที่ฉันทำในครั้งแรกไม่ได้รับการยอมรับจาก GUI
Jeff McJunkin

0

หากคำถามนี้เกี่ยวกับวิธีดำเนินการ _sp_send_dbmail ในฐานข้อมูล msdb (โดยใช้ SQL ส่งฐานข้อมูลจดหมายที่เก็บไว้ในขั้นตอน msdb) นี่คือการแก้ไขบางอย่าง เพิ่มชื่อผู้ใช้แอปพลิเคชัน. net ของฐานข้อมูลของคุณ (ซึ่งกำหนดไว้ในสตริงการเชื่อมต่อของคุณในแอป. net ของคุณ) ให้กับผู้ใช้ msdb ด้วยการเป็นสมาชิกบทบาท "DatabaseMailUserRole"

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