ภาพรวม
ในสภาพแวดล้อม Active Directory การใช้การตรวจสอบสิทธิ์แบบรวมของ Windows (Kerberos) ช่วยให้ผู้ใช้สามารถใช้ข้อมูลประจำตัวการตรวจสอบสิทธิ์เดียวกันกับที่ใช้ในการเข้าสู่ระบบ Windows ได้การเข้าสู่ระบบแบบ Single Sign-On (SSO) อัตโนมัติไปยัง CAMServer โดยไม่ต้องเข้าสู่ระบบ C&M เพิ่มเติม สามารถ.
โดยปกติแล้ว ระบบนี้จำเป็นต้องสร้างโดยใช้ IIS/ASP.NET แต่ด้วยคุณสมบัตินี้ CAMServer จะจัดการการตรวจสอบสิทธิ์ Kerberos โดยตรง ทำให้การกำหนดค่า SSO ทำได้ง่ายขึ้นโดยใช้การตรวจสอบสิทธิ์ Windows ในตัวโดยไม่จำเป็นต้องใช้เซิร์ฟเวอร์เพิ่มเติม เช่น IIS

การไหลของ SSO

ขั้นตอนการประมวลผล SSO
- เข้าถึง CAMServer
ผู้ใช้เข้าถึง CAMServer ผ่านทางเว็บเบราว์เซอร์ เมื่อเข้าถึงแล้ว โทเค็นชั่วคราวสำหรับแอปพลิเคชันจะถูกส่งผ่านทาง POST - คำขอการตรวจสอบสิทธิ์
หลังจากตรวจสอบโทเค็นชั่วคราวแล้ว CAMServer จะร้องขอการตรวจสอบสิทธิ์ Windows (Negotiate) จากเบราว์เซอร์ - การรับตั๋ว Kerberos
เบราว์เซอร์ใช้ข้อมูลการเข้าสู่ระบบของ Windows
ขอรับตั๋วบริการ Kerberos จาก Active Directory KDC - การส่งตั๋ว Kerberos
เบราว์เซอร์ใช้ตั๋ว Kerberos ที่ได้รับมา
มีการเพิ่มส่วนหัว HTTP และส่งข้อความไปยัง CAMServer อีกครั้ง - การตรวจสอบตั๋ว
CAMServer ใช้ keytab เพื่อตรวจสอบความถูกต้องของตั๋ว Kerberos หากการตรวจสอบสำเร็จ ระบบจะดึงข้อมูล Kerberos principal ที่อยู่ในตั๋วนั้นออกมา - การค้นหา LDAP และการจับคู่ผู้ใช้ CAM
ระบบจะทำการค้นหา LADP โดยใช้หลักการ Kerberos ที่ดึงมาได้ เพื่อดึงข้อมูลผู้ใช้จาก AD และเปรียบเทียบกับผู้ใช้ที่ลงทะเบียนไว้ใน CAMServer หากพบข้อมูลที่ตรงกัน ระบบจะอนุญาตให้เข้าสู่ระบบได้ - เข้าสู่ระบบเสร็จสมบูรณ์
CAMServer สร้างเซสชันการเข้าสู่ระบบ
ผู้ใช้สามารถใช้งาน CAMServer ได้โดยไม่ต้องแสดงหน้าจอเข้าสู่ระบบ
หากคุณเข้าถึงเว็บไซต์โดยใช้ชื่อโดเมนอื่นที่ไม่ใช่ FQDN ที่ใช้สำหรับการตรวจสอบสิทธิ์ของ Windows หรือหากคุณเข้าถึงจากพีซีที่ไม่ได้เข้าร่วมโดเมน การตรวจสอบสิทธิ์การเข้าสู่ระบบจะดำเนินการบนเซิร์ฟเวอร์คำสั่งและการจัดการ (C&M)
ข้อกำหนดในการดำเนินงาน
จำเป็นต้องมีสภาพแวดล้อมดังต่อไปนี้เพื่อใช้งานคุณสมบัตินี้
สภาพแวดล้อม Active Directory
- ต้องสร้างโดเมน Active Directory ก่อน
CAMServer
- แผนขั้นสุดยอดโดยใช้
- CAMServer ต้องสามารถเข้าถึงได้ผ่านชื่อโดเมนแบบเต็ม (FQDN)
- เซิร์ฟเวอร์ Windows ที่ใช้งาน CAMServer ต้องเข้าร่วมโดเมน Active Directory
ในการตรวจสอบว่า Windows Server ที่มีอยู่เชื่อมต่อกับโดเมนใดบ้าง ให้ไปที่ "Server Manager" → คลิก "Local Server" ในเมนูด้านซ้าย → คลิก "Computer Name" และดูในช่องโดเมน
ผู้ใช้
- คอมพิวเตอร์ของผู้ใช้จะต้องเชื่อมต่อกับโดเมนและเข้าสู่ระบบ Windows ผ่านทางโดเมนนั้น
- ผู้ใช้ที่มีสิทธิ์ใช้งาน SSO คือผู้ใช้ที่มีรหัสผู้ใช้เป็น ชื่อผู้ใช้หลัก (คุณต้องลงทะเบียนล่วงหน้ากับ CAMServer ในรูปแบบ UPN ก่อน) (เช่น user@camtest.com)
เบราว์เซอร์ที่รองรับ
การตรวจสอบสิทธิ์ Windows SSO สามารถใช้งานได้ในเบราว์เซอร์ต่อไปนี้
- ไมโครซอฟต์ เอดจ์
- กูเกิล โครม
- แคมแอป
เกี่ยวกับการกำหนดค่าโหลดบาลานเซอร์
การตรวจสอบสิทธิ์ของ Windows (Kerberos) เป็นวิธีการตรวจสอบสิทธิ์ที่ใช้ส่วนหัวการตรวจสอบสิทธิ์ HTTP ในการเจรจา ดังนั้น CAMServer ต้องทำงานอยู่บนพอร์ต 443 ตลอดเวลา และตัวกระจายโหลดต้องเป็นระดับ L4 (TLS passthrough)
การกำหนดค่าที่แนะนำ
ผู้ใช้ ──HTTPS──▶ ตัวกระจายโหลด L4 (TLS Passthrough) ──HTTPS──▶ CAMServer(443)
การกำหนดค่า NG
ผู้ใช้──HTTPS──▶ ตัวกระจายโหลด L7 (การยุติ SSL) ──HTTP──▶ CAMServer(8080)
ขั้นตอนการก่อสร้าง
ขั้นตอนการตั้งค่าต่อไปนี้จะอธิบายโดยอ้างอิงจาก "ตัวอย่างการกำหนดค่า"
ตัวอย่างการกำหนดค่า
- FQDN สำหรับการตรวจสอบสิทธิ์ Windows:
https://test.chat-messenger.com - ชื่อโดเมน Active Directory:
camtest.com - บัญชีบริการ:
cam-svc@camtest.com(CAMTEST\cam-svc)
ภาพรวมการลงทะเบียน SPN
Service Principal Name (SPN) คือชื่อที่ใช้ในการตรวจสอบสิทธิ์ Kerberos เพื่อระบุบริการเฉพาะบน Active Directory อย่างไม่ซ้ำกัน เมื่อเข้าถึงบริการโดยใช้ชื่อโดเมนแบบเต็ม (FQDN) การลงทะเบียน SPN จะช่วยให้ไคลเอ็นต์สามารถขอตั๋ว Kerberos สำหรับบริการที่กำลังเข้าถึงได้อย่างถูกต้อง
ตัวอย่างเช่น https://test.chat-messenger.com เมื่อเข้าใช้งานบริการ ไคลเอนต์ (เบราว์เซอร์) จะร้องขอตั๋วจาก Active Directory โดยระบุว่า "ฉันต้องการเชื่อมต่อกับบริการที่ชื่อ HTTP/test.chat-messenger.com" Active Directory จะตรวจสอบว่า SPN นั้นเชื่อมโยงกับบัญชีใด และออกตั๋วบริการที่เกี่ยวข้อง หาก SPN ไม่ได้รับการลงทะเบียนอย่างถูกต้อง การตรวจสอบสิทธิ์ Kerberos จะล้มเหลว
บัญชีบริการ
สร้างบัญชีบริการสำหรับการตรวจสอบสิทธิ์ Kerberos แม้ว่าจะสามารถทำได้ด้วยบัญชีผู้ใช้โดเมน แต่โดยทั่วไปแล้วแนะนำให้แยกบัญชีผู้ใช้และบัญชีบริการออกจากกัน เพื่อป้องกันข้อผิดพลาดโดยไม่ตั้งใจและเพื่อให้ขอบเขตของการบังคับใช้นโยบายรหัสผ่านชัดเจนยิ่งขึ้นOU = บัญชีบริการ แบบนี้แหละ OU ผู้ใช้ เพื่อแยกความแตกต่างจากตัวควบคุมโดเมน Active Directoryแคม-เซอร์วิส สร้างมันขึ้นมา
โปรดตรวจสอบตัวเลือกต่อไปนี้ในตัวเลือกบัญชีของคุณ
- ตั้งค่ารหัสผ่านของคุณให้ไม่มีวันหมดอายุ
- บัญชีนี้รองรับการเข้ารหัส Kerberos AES 256 บิต


ลงทะเบียนใช้งาน SPN ด้วยบัญชีบริการของคุณ
setspn -S HTTP/test.chat-messenger.com CAMTEST\cam-svcเราจะลงทะเบียน SPN โดยใช้บัญชีบริการที่สร้างไว้ข้างต้น
อุปกรณ์ใดก็ได้ที่เชื่อมต่อกับโดเมนสามารถใช้งานได้ อย่างไรก็ตาม ต้องมีสิทธิ์ผู้ดูแลระบบโดเมนด้วย
• SPN ยังถูกใช้ในการสื่อสารผ่าน HTTPS ด้วยHTTP/ชื่อโฮสต์คุณต้องลงทะเบียนในรูปแบบนี้
ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่า SPN ได้รับการลงทะเบียนแล้ว
setspn -L CAMTEST\cam-svcสร้างคีย์แท็บ
เพื่อให้ CAMServer สามารถตรวจสอบความถูกต้องของตั๋ว Kerberos ได้ ให้สร้างไฟล์ keytab สำหรับบัญชีบริการ โดยเรียกใช้คำสั่งต่อไปนี้บนเซิร์ฟเวอร์การจัดการ Active Directory:
ktpass /out CAMServer\config\windowsAuth\cam.keytab /princ HTTP/test.chat-messenger.com@CAMTEST.COM /mapuser CAMTEST\cam-svc /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 /pass "*******"การตั้งค่า CAMServer
หากต้องการใช้การตรวจสอบสิทธิ์แบบ Windows ให้เพิ่มข้อความต่อไปนี้ลงในไฟล์การกำหนดค่า CAMServer (boot.ini) โปรดแทนที่ค่าแต่ละค่าตามสภาพแวดล้อมของคุณ
# Kerberos レルム(通常は Active Directory ドメイン名を大文字で指定)
# 例: camtest.com ドメイン → CAMTEST.COM
cam.windowsAuth.realm=CAMTEST.COM
# Windows認証を行うFQDN
cam.windowsAuth.FQDN=test.chat-messenger.com
# Kerberos KDC
# 通常は Active Directory のドメインコントローラのFQDN。ポートTCP/UDP 88 は Kerberos 標準ポートでリッスンされている
cam.windowsAuth.kdc=ad.camtest.com:88
การตั้งค่าตัวเลือกอินเทอร์เน็ต
เพิ่มชื่อโดเมนแบบเต็ม (FQDN) ของ CAMServer ลงในโซนอินทราเน็ต
เลือกตัวเลือกอินเทอร์เน็ต คลิกแท็บ "ความปลอดภัย" และเลือก "อินทราเน็ตภายใน" คลิกปุ่ม "ไซต์" เลือก "ขั้นสูง" และเพิ่ม URL ของไซต์ (https://test.chat-messenger.com)
ตรวจสอบการเข้าสู่ระบบอัตโนมัติ
คลิก "กำหนดระดับเอง" จากนั้นภายใต้ "การตรวจสอบสิทธิ์ผู้ใช้" → "เข้าสู่ระบบ" ตรวจสอบให้แน่ใจว่าได้เลือก "เข้าสู่ระบบอัตโนมัติในโซนอินทราเน็ต" แล้ว


การย้ายข้อมูลจาก SSO โดยใช้การตรวจสอบสิทธิ์ Windows แบบบูรณาการของ IIS
- การถอนการติดตั้งฟังก์ชันการทำงานของ IIS (ตัวจัดการเซิร์ฟเวอร์ > ผู้ดูแลระบบ > ลบบทบาทและคุณสมบัติ)
- การถอนการติดตั้ง ASP.NET Core Hosting Bundle
- บัญชีบริการคือบัญชีนี้รองรับการเข้ารหัส Kerberos AES 256 บิต"ตรวจสอบ
- คีย์แท็บ สร้าง
- ในการตั้งค่าตัวเลือกอินเทอร์เน็ต ให้เพิ่ม FQDN ของ CAMServer ลงในโซนอินทราเน็ต (หากยังไม่ได้เพิ่ม)
- หากตัว Load Balancer เชื่อมต่อกับ CAMServer ที่เลเยอร์ 7 ให้ติดตั้งใบรับรอง SSL บน CAMServer และเชื่อมต่อที่เลเยอร์ 4
