ภาพรวมการรับรองความถูกต้องของ Windows แบบรวม
Integrated Windows Authentication (IWA) เป็นกลไกที่ให้ข้อมูลการรับรองความถูกต้องของผู้ใช้กับ IIS โดยอัตโนมัติเมื่อ IIS และผู้ใช้เข้าสู่ระบบในโดเมนเดียวกัน เมื่อคุณสร้างไซต์ด้วย ASP.NET C# คุณสามารถรับการกำหนดการรับรองความถูกต้องของผู้ใช้และข้อมูลผู้ใช้ที่ได้รับการรับรองความถูกต้องได้
ซึ่งช่วยให้ผู้ใช้สามารถเข้าถึงแอปพลิเคชันเว็บที่โฮสต์ (หรือเชื่อมโยง) โดย IIS โดยไม่ต้องดำเนินการเข้าสู่ระบบเพิ่มเติม และเปิดใช้งานการรวม SSO กับแอปพลิเคชันเซิร์ฟเวอร์อื่น ๆ
*หากคุณไม่ได้เข้าร่วมในโดเมนเดียวกัน หรือหากผู้ใช้ที่ไม่ผ่านการรับรองความถูกต้องเข้าถึงหน้า IIS การโทรเข้าระบบจะปรากฏขึ้น และหากคุณไม่ตรวจสอบความถูกต้องอย่างถูกต้อง จะเกิดข้อผิดพลาด HTTP 401.1 – ไม่ได้รับอนุญาตเกิดขึ้น

ขั้นตอน SSO (การลงชื่อเพียงครั้งเดียว)
แผนขั้นสูงสุดของ Chat&Messenger On-Premise ช่วยให้ SSO มีการรับรองความถูกต้องของ Windows ในตัว ขั้นตอน SSO มีดังนี้
- ไคลเอ็นต์จะเข้าถึงเพจที่ได้รับการรับรองความถูกต้องของ Windows แบบรวม /cam-iissso ก่อน
- หน้า /cam-iissso ใช้ ASP.NET เพื่อตรวจสอบว่ามีการรับรองความถูกต้องหรือไม่ และลิงก์ไปยัง CAMServer
- CAMServer ทำการค้นหา LDAP เพื่อยืนยันว่าเป็นผู้ใช้ AD ปกติ สร้าง ssoToken (ค่าสุ่มที่ไม่ซ้ำกัน 30 ไบต์ขึ้นไป) และ URL เพื่อเข้าถึง CAMServer และร้องขอการเปลี่ยนเส้นทาง
- เข้าถึง CAMServer และตรวจสอบสิทธิ์โดยใช้ ssoToken หากการตรวจสอบสิทธิ์สำเร็จ ระบบจะกำหนดรหัสเซสชันสำหรับการเข้าถึง API

ข้อกำหนดสำหรับการบรรลุสปส
เข้าร่วม Windows Server กับโดเมน
โปรดเข้าร่วม Windows Server ที่รัน CAMServer/IIS กับโดเมน Active Directory
หากต้องการตรวจสอบโดเมนที่ Windows Server ที่มีอยู่เข้าร่วม ให้ไปที่ "ตัวจัดการเซิร์ฟเวอร์" → คลิก "เซิร์ฟเวอร์ภายใน" บนเมนูทางด้านซ้าย → คลิก "ชื่อคอมพิวเตอร์" และดูคอลัมน์โดเมน
นอกจากนี้ IIS ควรอยู่บนเซิร์ฟเวอร์เดียวกันกับ CAMServer และทำงานที่พอร์ต 80 หากคุณวาง LoadBalancer ไว้ด้านหน้า CAMServer, CAMServer จะทำงานที่พอร์ต 8080 ดังนั้น IIS จึงสามารถใช้พอร์ต 443 ได้ด้วย
การติดตั้ง IIS
ติดตั้ง IIS จากบทบาทเซิร์ฟเวอร์
เมื่อติดตั้ง IIS โปรดตรวจสอบสิ่งต่อไปนี้ในตัวเลือกการเลือกบริการบทบาท
- การรับรองความถูกต้องของ Windows
- ตัวกรอง ISAPI
- การติดตั้งส่วนขยาย ISAPI แยกต่างหาก

ตัวกรอง ISAPI: รองรับการโหลดโมดูลส่วนขยายใน IIS จำเป็นต้องโหลด AspNetCoreModuleV2.
ส่วนขยาย ISAPI: เพิ่มส่วนขยาย ISAPI ให้กับ IIS จำเป็นสำหรับการดำเนินการ AspNetCoreModuleV2 เริ่มตัวจัดการ IIS (iisreset)
ติดตั้ง ASP.NET Core Hosting Bundle
ชุดโฮสติ้งหลัก ASP.NET กรุณาติดตั้ง.
หลังการติดตั้ง ให้รีสตาร์ท IIS และตรวจสอบให้แน่ใจว่า AspNetCoreModuleV2 มีอยู่ในการแมปตัวจัดการ



เพิ่มแอปพลิเคชัน (cam-iissso)
เพิ่มแอปพลิเคชัน cam-iissso ไปยังเว็บไซต์เริ่มต้น
- นามแฝง: cam-iissso
- เส้นทางทางกายภาพ: \sys\cam-iissso-net8.0
นอกจากนี้ ให้สิทธิ์ในการดู (อ่านและดำเนินการ แสดงรายการเนื้อหาโฟลเดอร์ อ่าน) ให้กับโฟลเดอร์ cam-iissso-net8.0 ให้กับกลุ่ม IIS_IUSRS


เปิดใช้งานการรับรองความถูกต้องของ Windows
คลิกขวาที่ "Windows Authentication" และเลือก "Enable"

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


การตั้งค่า LDAP
เมื่อดำเนินการลงชื่อเข้าระบบครั้งเดียวโดยใช้ IISการตั้งค่า LDAP(ผู้ใช้ LDAPUrl, LDAPBaseDN, AD ดำเนินการตรวจสอบพร็อกซี)

เข้าถึงผ่าน FQDN (ชื่อโดเมนที่มีคุณสมบัติครบถ้วน) และลงทะเบียน SPN
สิ่งนี้ไม่จำเป็นหากคุณเข้าถึงหน้า IIS Windows Integrated Authentication โดยใช้ชื่อโฮสต์ (ชื่อ NetBIOS) แต่คุณต้องลงทะเบียน SPN หากคุณเข้าถึงโดยใช้ FQDN (ชื่อโดเมนที่มีคุณสมบัติครบถ้วน เช่น sso.example.com)
SPN (ชื่อหลักของบริการ) เป็นชื่อที่ระบุบริการเฉพาะบน Active Directory ในการรับรองความถูกต้อง Kerberos อย่างไม่ซ้ำกัน หากคุณเข้าถึงบริการโดยใช้ FQDN การลงทะเบียน SPN จะทำให้ไคลเอนต์สามารถขอตั๋ว Kerberos สำหรับบริการที่คุณกำลังเข้าถึงได้สำเร็จ
ตัวอย่างเช่น https://sso.example.com
เมื่อเข้าถึง ไคลเอนต์ (เบราว์เซอร์) จะขอตั๋วจาก Active Directory โดยแจ้งว่า "ฉันต้องการเชื่อมต่อกับบริการที่เรียกว่า HTTP/sso.example.com" Active Directory กำหนดว่า SPN เชื่อมโยงกับบัญชีใดและออกตั๋วบริการที่สอดคล้องกัน หาก SPN ไม่ได้รับการลงทะเบียนอย่างถูกต้อง การตรวจสอบสิทธิ์ Kerberos จะล้มเหลว ส่งผลให้มีการแสดงกล่องโต้ตอบการตรวจสอบสิทธิ์
การลงทะเบียน SPN ดำเนินการบนบัญชีคอมพิวเตอร์ที่โฮสต์ IIS ตัวอย่างเช่น,โฆษณา
สำหรับ IIS ที่ทำงานด้วยชื่อโฮสต์ ให้ลงทะเบียน SPN ดังต่อไปนี้:
setspn -S HTTP/sso.example.com ad$
เมื่อลงทะเบียนแล้ว คุณสามารถตรวจสอบได้ด้วยคำสั่งต่อไปนี้:
เซ็ตสปน-L ad$
ผลลัพธ์นี้ HTTP/sso.ตัวอย่าง.com
หากแสดงขึ้นมา แสดงว่าการลงทะเบียน SPN สำเร็จแล้ว
ไม่พร้อมใช้งานภายใต้สภาพแวดล้อมการเชื่อมต่อพร็อกซี HTTP
โปรดทราบว่า SSO ไม่สามารถใช้ในสภาพแวดล้อมการเชื่อมต่อพร็อกซี HTTP
การกำหนดค่าในสภาพแวดล้อม LoadBalancer + SSL
หากคุณใช้การตรวจสอบสิทธิ์ Windows แบบรวมของ IIS ในสภาพแวดล้อม LoadBalancer + SSL โปรดดูบทความบล็อกต่อไปนี้
