เมนู

SSO พร้อมการตรวจสอบสิทธิ์ Windows ในตัว

สารบัญ

ภาพรวม

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

โดยปกติแล้ว ระบบนี้จำเป็นต้องสร้างโดยใช้ IIS/ASP.NET แต่ด้วยคุณสมบัตินี้ CAMServer จะจัดการการตรวจสอบสิทธิ์ Kerberos โดยตรง ทำให้การกำหนดค่า SSO ทำได้ง่ายขึ้นโดยใช้การตรวจสอบสิทธิ์ Windows ในตัวโดยไม่จำเป็นต้องใช้เซิร์ฟเวอร์เพิ่มเติม เช่น IIS

การไหลของ SSO

ขั้นตอนการประมวลผล SSO

  1. เข้าถึง CAMServer
    ผู้ใช้เข้าถึง CAMServer ผ่านทางเว็บเบราว์เซอร์ เมื่อเข้าถึงแล้ว โทเค็นชั่วคราวสำหรับแอปพลิเคชันจะถูกส่งผ่านทาง POST
  2. คำขอการตรวจสอบสิทธิ์
    หลังจากตรวจสอบโทเค็นชั่วคราวแล้ว CAMServer จะร้องขอการตรวจสอบสิทธิ์ Windows (Negotiate) จากเบราว์เซอร์
  3. การรับตั๋ว Kerberos
    เบราว์เซอร์ใช้ข้อมูลการเข้าสู่ระบบของ Windows
    ขอรับตั๋วบริการ Kerberos จาก Active Directory KDC
  4. การส่งตั๋ว Kerberos
    เบราว์เซอร์ใช้ตั๋ว Kerberos ที่ได้รับมา
    มีการเพิ่มส่วนหัว HTTP และส่งข้อความไปยัง CAMServer อีกครั้ง
  5. การตรวจสอบตั๋ว
    CAMServer ใช้ keytab เพื่อตรวจสอบความถูกต้องของตั๋ว Kerberos หากการตรวจสอบสำเร็จ ระบบจะดึงข้อมูล Kerberos principal ที่อยู่ในตั๋วนั้นออกมา
  6. การค้นหา LDAP และการจับคู่ผู้ใช้ CAM
    ระบบจะทำการค้นหา LADP โดยใช้หลักการ Kerberos ที่ดึงมาได้ เพื่อดึงข้อมูลผู้ใช้จาก AD และเปรียบเทียบกับผู้ใช้ที่ลงทะเบียนไว้ใน CAMServer หากพบข้อมูลที่ตรงกัน ระบบจะอนุญาตให้เข้าสู่ระบบได้
  7. เข้าสู่ระบบเสร็จสมบูรณ์
    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)

ในโหลดบาลานเซอร์ L7 จะเกิดการยุติ TLS และการสร้าง HTTP ใหม่
ดูเหมือนว่าระบบจำนวนมากจะไม่รองรับการเจรจาการตรวจสอบสิทธิ์ของ Windows (Kerberos)

ขั้นตอนการก่อสร้าง

ขั้นตอนการตั้งค่าต่อไปนี้จะอธิบายโดยอ้างอิงจาก "ตัวอย่างการกำหนดค่า"

ตัวอย่างการกำหนดค่า

  • 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แคม-เซอร์วิส สร้างมันขึ้นมา

หากคุณระบุบัญชีบริการเมื่อเริ่มต้น CAMServer ในฐานะบริการของ Windows คุณสามารถใช้ผู้ใช้คนเดียวกันได้

โปรดตรวจสอบตัวเลือกต่อไปนี้ในตัวเลือกบัญชีของคุณ

  • ตั้งค่ารหัสผ่านของคุณให้ไม่มีวันหมดอายุ
  • บัญชีนี้รองรับการเข้ารหัส Kerberos AES 256 บิต

ตามที่อธิบายไว้ด้านล่าง ktpass ในการระบุ AES256-SHA1 คุณต้องเปิดใช้งานการสนับสนุนการเข้ารหัส AES 256 บิต หากคุณไม่ระบุ ระบบจะใช้ RC4 เป็นค่าเริ่มต้น ซึ่งจะถูกยกเลิกในอนาคตเนื่องจากช่องโหว่ด้านความปลอดภัย

ลงทะเบียนใช้งาน 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 "*******"

- /out: สร้างโฟลเดอร์ชื่อ windowsAuth และส่งออกไปยัง CAMServer\config\windowsAuth\cam.keytab
/หลักการ: HTTP/ ตั้งค่าในรูปแบบ @<ชื่อโดเมนตัวพิมพ์ใหญ่>
- รหัสผ่านที่ระบุใน /pass: ควรเป็นรหัสผ่านของบัญชีบริการ
หากคุณเปลี่ยนรหัสผ่านบัญชีบริการ คุณจะต้องสร้างไฟล์ keytab ใหม่

การตั้งค่า 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)

ตรวจสอบการเข้าสู่ระบบอัตโนมัติ

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

การตั้งค่านี้จำเป็นสำหรับเทอร์มินัลไคลเอ็นต์ทั้งหมดของผู้ใช้ C&M แต่สามารถจัดการจากส่วนกลางได้โดยใช้คอนโซลการจัดการนโยบายกลุ่ม (Group Policy Management Console)

การย้ายข้อมูลจาก SSO โดยใช้การตรวจสอบสิทธิ์ Windows แบบบูรณาการของ IIS

  1. การถอนการติดตั้งฟังก์ชันการทำงานของ IIS (ตัวจัดการเซิร์ฟเวอร์ > ผู้ดูแลระบบ > ลบบทบาทและคุณสมบัติ)
  2. การถอนการติดตั้ง ASP.NET Core Hosting Bundle
  3. บัญชีบริการคือบัญชีนี้รองรับการเข้ารหัส Kerberos AES 256 บิต"ตรวจสอบ
  4. คีย์แท็บ สร้าง
  5. ในการตั้งค่าตัวเลือกอินเทอร์เน็ต ให้เพิ่ม FQDN ของ CAMServer ลงในโซนอินทราเน็ต (หากยังไม่ได้เพิ่ม)
  6.  หากตัว Load Balancer เชื่อมต่อกับ CAMServer ที่เลเยอร์ 7 ให้ติดตั้งใบรับรอง SSL บน CAMServer และเชื่อมต่อที่เลเยอร์ 4
  • URL をkoピーしました!
สารบัญ