Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

นี่คือคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการกำหนดค่าการรับรองความถูกต้องผู้ใช้โดเมน Kerberos SSO (การลงชื่อเพียงครั้งเดียว) แบบโปร่งใสบนเว็บไซต์ IIS ที่ใช้ Windows Server 2012 R2

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

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

เปิดรายชื่อผู้ให้บริการที่พร้อมใช้งานสำหรับการตรวจสอบสิทธิ์ Windows (ผู้ให้บริการ ). โดยค่าเริ่มต้น ผู้ให้บริการสองรายจะพร้อมใช้งาน:เจรจา และ NTLM . Negotiate เป็นคอนเทนเนอร์ที่ใช้ Kerberos เป็นวิธีการตรวจสอบสิทธิ์แรก และหากการตรวจสอบล้มเหลว NTLM จะถูกใช้ จำเป็นต้องเจรจา มาก่อนในรายชื่อผู้ให้บริการ

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

ขั้นตอนต่อไปรวมถึงการลงทะเบียน Service Principal Name (SPN) รายการสำหรับชื่อเว็บไซต์ซึ่งผู้ใช้จะเข้าถึงได้ หากเว็บไซต์ IIS จะต้องใช้งานได้ตามชื่อของเซิร์ฟเวอร์เท่านั้น (https://server-name หรือ https://server-name.adatum.loc ) คุณไม่จำเป็นต้องสร้างรายการ SPN เพิ่มเติม (รายการ SPN มีอยู่แล้วในบัญชีเซิร์ฟเวอร์ใน AD) หากที่อยู่เว็บไซต์แตกต่างจากชื่อโฮสต์หรือหากคุณกำลังสร้างเว็บฟาร์มที่มีการจัดสรรภาระงาน คุณจะต้องเชื่อมต่อรายการ SPN เพิ่มเติมกับเซิร์ฟเวอร์หรือบัญชีผู้ใช้

สมมุติว่าเรามีฟาร์มของเซิร์ฟเวอร์ IIS ในกรณีนี้ คุณควรสร้างบัญชี AD แยกต่างหากและผูกรายการ SPN กับบัญชีดังกล่าว Application Pool เป้าหมายของเว็บไซต์ของเราจะเริ่มต้นจากบัญชีนี้

สร้างบัญชีโดเมน iis_service . ตรวจสอบให้แน่ใจว่าไม่ได้กำหนดรายการ SPN สำหรับวัตถุนี้ (แอตทริบิวต์ servicePrincipalName ว่างเปล่า)

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

สมมุติว่าเว็บไซต์ต้องตอบกลับที่ https://webportal และ https://webportal.adatum.loc . เราต้องระบุที่อยู่เหล่านี้ในแอตทริบิวต์ SPN ของบัญชีบริการ

Setspn /s HTTP/webportal adatum\iis_service
Setspn /s HTTP/webportal.adatum.loc adatum\iis_service

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

ดังนั้นเราจึงอนุญาตให้บัญชีนี้ถอดรหัสตั๋ว Kerberos เมื่อผู้ใช้เข้าถึงที่อยู่เหล่านี้และรับรองความถูกต้องของเซสชัน

คุณสามารถตรวจสอบการตั้งค่า SPN ของบัญชีได้ดังนี้:

setspn /l iis_service

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

เคล็ดลับ . Kerberos จะทำงานไม่ถูกต้องหากรายการโดเมนต่างกันใช้ SPN เดียวกัน ใช้คำสั่งต่อไปนี้ ตรวจสอบให้แน่ใจว่าไม่มี SPN ที่ซ้ำกันในโดเมน:setspn –x

ขั้นตอนต่อไปคือการกำหนดค่าของ IIS Application Pool เพื่อเปิดใช้งานจากบัญชีที่สร้างไว้ก่อนหน้านี้

เลือก Application Pool ของเว็บไซต์ของคุณ (ในตัวอย่างของเราคือ DefaultAppPool)

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

เปิด การตั้งค่าขั้นสูง และไปที่ ตัวตน

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

เปลี่ยนจาก ApplicationPoolIdentity ไปยัง adatum\iis_service .

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

จากนั้นไปที่เว็บไซต์ของคุณในตัวจัดการ IIS แล้วเลือก ตัวแก้ไขการกำหนดค่า .

ในเมนูแบบเลื่อนลง ให้เลือก system.webServer> ความปลอดภัย> การตรวจสอบสิทธิ์> windowsAuthentication

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

เปลี่ยน useAppPoolCredentials สู่ จริง .

ดังนั้นเราจึงอนุญาตให้ IIS ใช้บัญชีโดเมนเพื่อถอดรหัสตั๋ว Kerberos จากลูกค้า

รีเซ็ต IIS โดยใช้คำสั่งนี้:

iisreset

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS

ต้องกำหนดค่าเดียวกันบนเซิร์ฟเวอร์เว็บฟาร์มทั้งหมด

มาทดสอบการรับรองความถูกต้องของ Kerberos ในการดำเนินการ ให้เปิด https://webportal.adatum.loc ในเบราว์เซอร์ของลูกค้า

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

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

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

การกำหนดค่าการตรวจสอบสิทธิ์ Kerberos บนเว็บไซต์ IIS