ภาพรวม
บทความต่อไปนี้จะอธิบายวิธีการกำหนดค่าการตรวจสอบสิทธิ์แบบรวมของ Windows (IWA) ใน IIS ในสภาพแวดล้อมที่มีโหลดบาลานเซอร์ระดับ L4 และการยุติ SSL

เมื่อกำหนดค่าวิธีการนี้ การตรวจสอบสิทธิ์มักล้มเหลวเนื่องจากการตั้งค่า SPN (Service Principal Name) ไม่ถูกต้องหรือซ้ำกัน
บทความนี้ให้คำอธิบายอย่างละเอียดเกี่ยวกับการลงทะเบียน SPN และขั้นตอนที่จำเป็น
ตัวอย่างโครงสร้างในบทความนี้
[เบราว์เซอร์ไคลเอ็นต์] | | การเข้าถึง HTTPS v [ตัวกระจายโหลด L4 (TCP 443)] | | vv [เซิร์ฟเวอร์ 1 (IIS)] [เซิร์ฟเวอร์ 2 (IIS)]
- ชื่อโดเมนแบบเต็ม (FQDN):
sso.chat-messenger.com - ชื่อโฮสต์ IIS:
เซิร์ฟเวอร์1,เซิร์ฟเวอร์ 2 - บัญชีบริการร่วม:
CAMTEST\cam-svc
ปัญหา: ข้อผิดพลาด SPN ซ้ำซ้อน
ในการตรวจสอบสิทธิ์แบบรวมของ Windows ไคลเอ็นต์จะค้นหา SPN สำหรับ FQDN ของบริการที่กำลังเข้าถึง และรับตั๋ว Kerberos สำหรับบัญชีบริการที่เกี่ยวข้อง
setspn -S HTTP/sso.chat-messenger.com Server1$ setspn -S HTTP/sso.chat-messenger.com Server2$
ตามที่กล่าวไว้ข้างต้น FQDN เดียวกัน (sso.chat-messenger.comเมื่อลงทะเบียน SPN สำหรับโฮสต์ที่แตกต่างกัน (Server1, Server2) จะเกิดข้อผิดพลาดดังต่อไปนี้:
พบ SPN ซ้ำกัน ระบบจึงยกเลิกการทำงาน.
วิธีแก้ปัญหา: ลงทะเบียน SPN กับบัญชีบริการที่ใช้ร่วมกัน
เมื่อใช้ชื่อโดเมนแบบเต็ม (FQDN) เดียวกันในโฮสต์หลายเครื่อง จะต้องลงทะเบียนหมายเลขบริการเฉพาะ (SPN) เพียงหมายเลขเดียวในบัญชีบริการที่ใช้ร่วมกัน
การสร้างบัญชีบริการที่ใช้ร่วมกัน
แม้ว่าบัญชีบริการที่ทำงานอยู่ในกลุ่มแอปพลิเคชัน IIS อาจเป็นผู้ใช้โดเมน (ตราบใดที่อยู่ในกลุ่มผู้ใช้โดเมน) แต่โดยทั่วไปแล้วแนะนำให้แยกบัญชีบริการออกจากผู้ใช้ทั่วไปเพื่อป้องกันข้อผิดพลาดโดยไม่ตั้งใจและเพื่อชี้แจงขอบเขตของการบังคับใช้นโยบายรหัสผ่านOU = บัญชีบริการ แบบนี้แหละ OU ผู้ใช้ เพื่อแยกความแตกต่างจากตัวควบคุมโดเมน Active Directoryแคม-เซอร์วิส สร้างมันขึ้นมา

ลงทะเบียนใช้งาน SPN ด้วยบัญชีบริการของคุณ
เราจะลงทะเบียน SPN โดยใช้บัญชีบริการที่สร้างไว้ข้างต้น
setspn -S HTTP/sso.chat-messenger.com CAMTEST\cam-svc
อุปกรณ์ใดก็ได้ที่เชื่อมต่อกับโดเมนสามารถใช้งานได้ อย่างไรก็ตาม ต้องมีสิทธิ์ผู้ดูแลระบบโดเมนด้วย
• SPN ยังถูกใช้ในการสื่อสารผ่าน HTTPS ด้วยHTTP/ชื่อโฮสต์คุณต้องลงทะเบียนในรูปแบบนี้
การกำหนดค่า Application Pool ของ IIS
เซิร์ฟเวอร์1, เซิร์ฟเวอร์ 2 ผู้ใช้ที่ใช้ในการเรียกใช้งาน Application Pool บนเซิร์ฟเวอร์ทั้งสองเครื่องคือบัญชีบริการที่คุณสร้างไว้ CAMTEST\cam-svc ชุด

ตัวแก้ไขการกำหนดค่า (Configuration Editor) ของ IIS Manager
ในการเปลี่ยนกลุ่มแอปพลิเคชัน IIS ไปใช้บัญชีบริการและตรวจสอบให้แน่ใจว่าการตรวจสอบสิทธิ์ของ Windows ทำงานได้อย่างถูกต้องกับ Kerberos คุณต้องกำหนดค่าการตั้งค่าต่อไปนี้ในคุณสมบัติ "ตัวแก้ไขการกำหนดค่า" ของ IIS Manager:
system.webServer/security/authentication/windowsAuthenticationส่วนใช้ AppPoolCredentialsをจริงชุดใช้โหมดเคอร์เนลをเท็จชุด

ตั้งค่าสิทธิ์ "เข้าสู่ระบบในฐานะงานแบบแบตช์" สำหรับบัญชีบริการที่ใช้ร่วมกัน
กลุ่มแอปพลิเคชันจะตอบสนองต่อคำขอจากเว็บ w3wp.exeกระบวนการทำงานเริ่มต้นขึ้นแล้ว เมื่อเรียกใช้กระบวนการนี้โดยใช้บัญชีบริการที่ใช้ร่วมกัน กระบวนการจะถูกปฏิเสธและจะเกิดข้อผิดพลาด HTTP 503 หากไม่ได้รับอนุญาตให้ "เข้าสู่ระบบในฐานะงานแบตช์" ดังนั้น บัญชีบริการที่ใช้ร่วมกันจึงต้องมีสิทธิ์ "เข้าสู่ระบบในฐานะงานแบตช์" (ตาม GPO)
นอกจากนี้ ยังสามารถควบคุมการตั้งค่าต่างๆ ได้ด้วยนโยบายความปลอดภัยภายในเครื่องของแต่ละเทอร์มินัล IIS แต่ก็อาจมีข้อจำกัดที่กำหนดโดยนโยบายขององค์กรใน Group Policy Object (GPO) บนตัวควบคุมโดเมน Active Directory ในกรณีนั้น จำเป็นต้องควบคุมที่ระดับ GPO และส่วนนี้จะอธิบายวิธีการดำเนินการดังกล่าว
ขั้นตอนการเชื่อมโยง GPO กับ OU=ServiceAccounts
บัญชีบริการCAMTEST\cam-svcをOU = บัญชีบริการหากสร้างขึ้นใน
หากคุณไม่ได้เชื่อมโยงนโยบายกลุ่ม (เช่น IIS-BatchLogon-GPO) กับ OU นี้แคม-เซอร์วิสนโยบายดังกล่าวใช้ไม่ได้ เนื่องจากความเหมาะสมในการใช้งานของ GPO นั้นถูกกำหนดโดย "OU ที่เชื่อมโยงอยู่" ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องจับคู่ตำแหน่งที่ตั้งของบัญชีกับตำแหน่งที่ตั้งของ GPO ที่เชื่อมโยงอยู่
gpmc.mscเรียกใช้คำสั่งและเปิด "โปรแกรมแก้ไขการจัดการนโยบายกลุ่ม"- ในบานหน้าต่างด้านซ้าย
camtest.com/ServiceAccountsคลิกขวาที่ OU → "สร้าง GPO สำหรับโดเมนนี้และเชื่อมโยงเข้ากับคอนเทนเนอร์นี้→ ป้อนชื่อใดก็ได้ (ตัวอย่าง)IIS-BatchLogon-GPO) - สร้าง
IIS-BatchLogon-GPOแก้ไข - การกำหนดค่าคอมพิวเตอร์ → การตั้งค่า Windows → การตั้งค่าความปลอดภัย → นโยบายภายในเครื่อง → การกำหนดสิทธิ์ผู้ใช้ → เข้าสู่ระบบในรูปแบบงานแบตช์
- ดับเบิ้ลคลิกเพื่อเปิดกล่องโต้ตอบ
CAMTEST\cam-svcเพิ่มผู้ใช้





เกี่ยวกับการใช้งานการตั้งค่า GPO
เพื่อให้แน่ใจว่า GPO ถูกนำไปใช้อย่างถูกต้องบนเซิร์ฟเวอร์ IIS เป้าหมาย... gpupdate /force การดำเนินการนี้มีความสำคัญอย่างยิ่ง เพื่อให้แน่ใจว่าการตั้งค่า GPO มีผลทันที โดยเฉพาะอย่างยิ่งเมื่อให้สิทธิ์ "เข้าสู่ระบบในฐานะงานแบบแบตช์" เนื่องจากอาจมีความล่าช้าในการนำนโยบายไปใช้ w3wp.exe สิ่งนี้อาจนำไปสู่ความล้มเหลวในการเริ่มต้นธุรกิจได้
