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

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

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

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



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


เปิดใช้งานการตรวจสอบสิทธิ์ Windows
คลิกขวาที่ "การตรวจสอบสิทธิ์ของ Windows" แล้วเลือก "เปิดใช้งาน"

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


การตั้งค่า LDAP
หากคุณต้องการใช้งาน Single Sign-On โดยใช้ IISการตั้งค่า LDAP(จำเป็นต้องระบุ LDAPUrl, LDAPBaseDN และผู้ใช้ AD ที่ทำการตรวจสอบสิทธิ์พร็อกซี)

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


