เมนู

การกำหนดค่า IIS เพื่อให้การตรวจสอบสิทธิ์ Windows แบบบูรณาการประสบความสำเร็จในสภาพแวดล้อมโหลดบาลานเซอร์ระดับ L4

สารบัญ

ภาพรวม

บทความต่อไปนี้จะอธิบายวิธีการกำหนดค่าการตรวจสอบสิทธิ์แบบรวมของ 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จริง ชุด
  • ใช้โหมดเคอร์เนลเท็จ ชุด

หาก IIS ทำงานอยู่บนตัวควบคุมโดเมน การตั้งค่านี้อาจไม่จำเป็น

ตั้งค่าสิทธิ์ "เข้าสู่ระบบในฐานะงานแบบแบตช์" สำหรับบัญชีบริการที่ใช้ร่วมกัน

กลุ่มแอปพลิเคชันจะตอบสนองต่อคำขอจากเว็บ w3wp.exeกระบวนการทำงานเริ่มต้นขึ้นแล้ว เมื่อเรียกใช้กระบวนการนี้โดยใช้บัญชีบริการที่ใช้ร่วมกัน กระบวนการจะถูกปฏิเสธและจะเกิดข้อผิดพลาด HTTP 503 หากไม่ได้รับอนุญาตให้ "เข้าสู่ระบบในฐานะงานแบตช์" ดังนั้น บัญชีบริการที่ใช้ร่วมกันจึงต้องมีสิทธิ์ "เข้าสู่ระบบในฐานะงานแบตช์" (ตาม GPO)

นอกจากนี้ ยังสามารถควบคุมการตั้งค่าต่างๆ ได้ด้วยนโยบายความปลอดภัยภายในเครื่องของแต่ละเทอร์มินัล IIS แต่ก็อาจมีข้อจำกัดที่กำหนดโดยนโยบายขององค์กรใน Group Policy Object (GPO) บนตัวควบคุมโดเมน Active Directory ในกรณีนั้น จำเป็นต้องควบคุมที่ระดับ GPO และส่วนนี้จะอธิบายวิธีการดำเนินการดังกล่าว

หาก IIS ทำงานอยู่บนตัวควบคุมโดเมน คุณอาจไม่จำเป็นต้องใช้ "เข้าสู่ระบบในฐานะงานแบบแบตช์"

ขั้นตอนการเชื่อมโยง GPO กับ OU=ServiceAccounts

บัญชีบริการCAMTEST\cam-svcOU = บัญชีบริการหากสร้างขึ้นใน
หากคุณไม่ได้เชื่อมโยงนโยบายกลุ่ม (เช่น IIS-BatchLogon-GPO) กับ OU นี้แคม-เซอร์วิสนโยบายดังกล่าวใช้ไม่ได้ เนื่องจากความเหมาะสมในการใช้งานของ GPO นั้นถูกกำหนดโดย "OU ที่เชื่อมโยงอยู่" ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องจับคู่ตำแหน่งที่ตั้งของบัญชีกับตำแหน่งที่ตั้งของ GPO ที่เชื่อมโยงอยู่

  1. gpmc.msc เรียกใช้คำสั่งและเปิด "โปรแกรมแก้ไขการจัดการนโยบายกลุ่ม"
  2. ในบานหน้าต่างด้านซ้ายcamtest.com/ServiceAccounts คลิกขวาที่ OU → "สร้าง GPO สำหรับโดเมนนี้และเชื่อมโยงเข้ากับคอนเทนเนอร์นี้→ ป้อนชื่อใดก็ได้ (ตัวอย่าง)IIS-BatchLogon-GPO
  3. สร้างIIS-BatchLogon-GPOแก้ไข
  4. การกำหนดค่าคอมพิวเตอร์ → การตั้งค่า Windows → การตั้งค่าความปลอดภัย → นโยบายภายในเครื่อง → การกำหนดสิทธิ์ผู้ใช้ → เข้าสู่ระบบในรูปแบบงานแบตช์
  5. ดับเบิ้ลคลิกเพื่อเปิดกล่องโต้ตอบCAMTEST\cam-svc เพิ่มผู้ใช้

เกี่ยวกับการใช้งานการตั้งค่า GPO

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

  • URL をkoピーしました!
สารบัญ