ค้นหาเว็บไซต์

เปิดใช้งานการยืนยันตัวตนแบบ Single Sign-On (SSO) บน RDS Windows Server


Single Sign-On (SSO) อนุญาตให้ผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์ (ลงชื่อเข้าใช้แล้ว) เข้าถึงบริการโดเมนอื่นๆ โดยไม่ต้องตรวจสอบสิทธิ์ซ้ำ (ป้อนรหัสผ่านอีกครั้ง) และไม่ต้อง โดยใช้ข้อมูลประจำตัวที่บันทึกไว้ (รวมถึง RDP) สามารถใช้ SSO เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ Remote Desktop Services (เทอร์มินัล) วิธีนี้จะป้องกันไม่ให้ผู้ใช้เข้าสู่ระบบคอมพิวเตอร์โดเมนจากการป้อนชื่อบัญชีผู้ใช้และรหัสผ่านหลายครั้งในหน้าต่างไคลเอนต์ RDP เมื่อเชื่อมต่อกับโฮสต์ RDS อื่นหรือเรียกใช้ RemoteApps ที่เผยแพร่

บทความนี้แสดงวิธีกำหนดค่า SSO แบบโปร่งใส (Single Sign-On) สำหรับผู้ใช้เซิร์ฟเวอร์ RDS ที่ใช้ Windows Server 2022/2019/2016

ความต้องการของระบบ:

  • เซิร์ฟเวอร์ Connection Broker และโฮสต์ RDS ทั้งหมดต้องใช้งาน Windows Server 2012 หรือใหม่กว่า

  • คุณสามารถใช้ Windows 11,10,8.1 กับรุ่น Pro/Enterprise เป็นไคลเอ็นต์เวิร์กสเตชัน

  • SSO ทำงานในสภาพแวดล้อมของโดเมนเท่านั้น: ต้องใช้บัญชีผู้ใช้ Active Directory เซิร์ฟเวอร์ RDS และเวิร์กสเตชันของผู้ใช้ต้องเข้าร่วมกับโดเมน AD เดียวกัน

  • ต้องใช้ RDP 8.0 หรือใหม่กว่าบนไคลเอนต์ RDP

  • SSO ใช้งานได้กับการตรวจสอบรหัสผ่านเท่านั้น (ไม่รองรับสมาร์ทการ์ด)

  • RDP Security Layer ในการตั้งค่าการเชื่อมต่อควรตั้งค่าเป็น Negotiate หรือ SSL (TLS 1.0) และโหมดการเข้ารหัสเป็น High หรือ เป็นไปตามมาตรฐาน FIPS

กระบวนการตั้งค่าการลงชื่อเพียงครั้งเดียวประกอบด้วยขั้นตอนต่อไปนี้:

  • คุณต้องออกและกำหนดใบรับรอง SSL บนเซิร์ฟเวอร์ RD Gateway, RD Web และ RD Connection Broker

  • ต้องเปิดใช้งาน Web SSO บนเซิร์ฟเวอร์ RDWeb

  • กำหนดค่านโยบายกลุ่มการมอบสิทธิ์ข้อมูลรับรอง

  • เพิ่มรหัสประจำตัวของใบรับรอง RDS ไปยังผู้เผยแพร่ .rdp ที่เชื่อถือได้โดยใช้ GPO

เปิดใช้งานการตรวจสอบสิทธิ์ SSO บนโฮสต์ RDS ด้วย Windows Server 2022/2019/2016

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

เรียนรู้เพิ่มเติมเกี่ยวกับการใช้ใบรับรอง SST/TLS เพื่อรักษาความปลอดภัยการเชื่อมต่อ RDP

ใบรับรองถูกกำหนดในส่วน ใบรับรอง ของคุณสมบัติ RDS Deployment

จากนั้น บนเซิร์ฟเวอร์ทั้งหมดที่มีบทบาท RD Web Access ให้เปิดใช้งาน การรับรองความถูกต้องของ Windows สำหรับไดเรกทอรี IIS RDWeb และปิดใช้งาน การตรวจสอบสิทธิ์แบบไม่ระบุตัวตน

หลังจากที่คุณบันทึกการเปลี่ยนแปลงแล้ว ให้รีสตาร์ท IIS:

iisreset /noforce

หากใช้เกตเวย์เดสก์ท็อประยะไกล ตรวจสอบให้แน่ใจว่าไม่ได้ใช้เพื่อเชื่อมต่อไคลเอ็นต์ภายใน (ควรเลือกตัวเลือก เลี่ยงเซิร์ฟเวอร์เกตเวย์ RD สำหรับที่อยู่ในเครื่อง)

ตอนนี้คุณต้องได้รับรหัสประจำตัวใบรับรอง SSL ของ RD Connection Broker และเพิ่มลงในรายชื่อผู้เผยแพร่ RDP ที่เชื่อถือได้ สำหรับสิ่งนั้น ให้รันคำสั่ง PowerShell ต่อไปนี้บนโฮสต์ RDS Connection Broker:

Get-Childitem CERT:\LocalMachine\My

คัดลอกค่ารหัสประจำตัวของใบรับรองและเพิ่มลงในนโยบายระบุรหัสประจำตัว SHA1 ของใบรับรองที่เป็นตัวแทนของผู้เผยแพร่ RDP (การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> บริการเดสก์ท็อป Windows -> ไคลเอนต์การเชื่อมต่อเดสก์ท็อประยะไกล)

กำหนดค่า Remote Desktop Single Sign-on บนไคลเอนต์ Windows

ขั้นตอนต่อไปคือการกำหนดค่านโยบายการมอบหมายข้อมูลรับรองสำหรับคอมพิวเตอร์ของผู้ใช้

  1. เปิดคอนโซลการจัดการนโยบายกลุ่มของโดเมน (

    gpmc.msc

    );

  2. สร้าง GPO โดเมนใหม่และเชื่อมโยงกับ OU กับผู้ใช้ (คอมพิวเตอร์) ที่ต้องได้รับอนุญาตให้ใช้ SSO เพื่อเข้าถึงเซิร์ฟเวอร์ RDS

  3. เปิดใช้งานนโยบาย อนุญาตข้อมูลรับรองเริ่มต้นของการมอบหมาย ภายใต้ การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ -> การมอบสิทธิ์ข้อมูลประจำตัว

  4. เพิ่มชื่อโฮสต์ RDS ซึ่งไคลเอนต์สามารถส่งข้อมูลรับรองผู้ใช้โดยอัตโนมัติเพื่อดำเนินการตรวจสอบสิทธิ์ SSO ใช้รูปแบบต่อไปนี้สำหรับโฮสต์ RDS: TERMSRV/rd.contoso.com (อักขระ TERMSRV ทั้งหมดต้องเป็นตัวพิมพ์ใหญ่) หากคุณต้องการอนุญาตให้ส่งข้อมูลประจำตัวไปยังเทอร์มินัลทั้งหมดในโดเมน (มีความปลอดภัยน้อยกว่า) คุณสามารถใช้โครงสร้างนี้:

    TERMSRV/*.contoso.com

นโยบายข้างต้นจะใช้ได้หากคุณใช้การตรวจสอบสิทธิ์ Kerberos หากไม่ได้ปิดใช้งานโปรโตคอลการตรวจสอบสิทธิ์ NTLM ในโดเมน คุณต้องกำหนดค่านโยบายอนุญาตข้อมูลประจำตัวเริ่มต้นของการมอบสิทธิ์ด้วยการตรวจสอบสิทธิ์เซิร์ฟเวอร์ NTLM เท่านั้นด้วยวิธีเดียวกัน

จากนั้น เพื่อป้องกันไม่ให้หน้าต่างเตือนว่าผู้เผยแพร่แอปพลิเคชันระยะไกลไม่น่าเชื่อถือ ให้เพิ่มที่อยู่ของเซิร์ฟเวอร์ที่เรียกใช้บทบาทนายหน้าการเชื่อมต่อ RD ไปยังโซนที่เชื่อถือได้บนคอมพิวเตอร์ไคลเอ็นต์โดยใช้นโยบาย “รายการการกำหนดไซต์ไปยังโซน ” (คล้ายบทความ วิธีปิดใช้งานคำเตือนความปลอดภัยของ Open File บน Windows 10):

  1. ไปที่ส่วน GPO การกำหนดค่าผู้ใช้/คอมพิวเตอร์ -> เครื่องมือการดูแลระบบ -> ส่วนประกอบของ Windows -> Internet Explorer -> แผงควบคุมอินเทอร์เน็ต -> หน้าความปลอดภัย

  2. เปิดใช้งานนโยบาย รายการกำหนดไซต์ต่อโซน

  3. ระบุ FQDN ของชื่อโฮสต์ของนายหน้าการเชื่อมต่อ RD และตั้งค่าโซน 2 (ไซต์ที่เชื่อถือได้)

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

จากนั้นไปที่ การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ ->ส่วนประกอบของ Windows -> บริการเดสก์ท็อประยะไกล ->ไคลเอนต์การเชื่อมต่อเดสก์ท็อประยะไกล และปิดใช้งานนโยบาย การแจ้งข้อมูลประจำตัวบนคอมพิวเตอร์ไคลเอนต์

หลังจากอัปเดตการตั้งค่านโยบายกลุ่มบนไคลเอ็นต์แล้ว ให้เปิดไคลเอ็นต์ mstsc.exe (การเชื่อมต่อเดสก์ท็อประยะไกล) และระบุ FQDN ของโฮสต์ RDS ช่องชื่อผู้ใช้จะแสดงชื่อของคุณในรูปแบบโดยอัตโนมัติ

user@domain.com
Your Windows logon credentials will be used to connect.

ตอนนี้ เมื่อคุณเริ่ม RemoteApp หรือเชื่อมต่อโดยตรงกับโฮสต์ของ Remote Desktop Services คุณจะไม่ต้องใส่รหัสผ่าน

หากต้องการใช้เกตเวย์ RD กับ SSO ให้เปิดใช้งานนโยบาย ตั้งค่าวิธีการตรวจสอบความถูกต้องของเกตเวย์ RD การกำหนดค่าผู้ใช้ -> นโยบาย -> เทมเพลตการดูแลระบบ -> ส่วนประกอบของ Windows -> บริการเดสก์ท็อประยะไกล -> เกตเวย์ RD) และตั้งค่า เพื่อ ใช้ข้อมูลประจำตัวที่เข้าสู่ระบบในเครื่อง

หากต้องการใช้ Web SSO บน RD Web Access โปรดทราบว่าขอแนะนำให้ใช้ Internet Explorer พร้อมเปิดใช้งานคอมโพเนนต์ Active X ที่ชื่อว่า Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell, MsRdpWebAccess.dll)

ใน Windows รุ่นใหม่ Internet Explorer จะปิดใช้งานตามค่าเริ่มต้น และคุณจะต้องใช้ Microsoft Edge แทน คุณต้องเปิด URL นี้ใน Microsoft Edge ในโหมดความเข้ากันได้เพื่อใช้ RD Web กับ SSO (Edge จะไม่เรียกใช้ส่วนประกอบ Active-X หากไม่มีโหมดความเข้ากันได้)

เพื่อให้คอมพิวเตอร์ไคลเอ็นต์ทั้งหมดสามารถเปิด RDWeb ในโหมดความเข้ากันได้ คุณจะต้องติดตั้ง GPO เทมเพลตการดูแลระบบของ MS Edge และกำหนดการตั้งค่านโยบายภายใต้การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> Microsoft:

  • กำหนดค่าการรวม Internet Explorer=โหมด Internet Explorer;

  • กำหนดค่ารายการไซต์โหมดองค์กร - ระบุเส้นทาง UNC ไปยังไฟล์ SiteList.xml ที่มีรายการไซต์ที่เชื่อถือได้

    ค้นหาวิธีกำหนดค่าโหมดความเข้ากันได้ของ Internet Explorer (IE) ใน Microsoft Edge

ข้อผิดพลาดที่อาจเกิดขึ้น:

  • ในกรณีของเรา RDP SSO หยุดทำงานในฟาร์ม RDS ที่มีโปรไฟล์ User Profile Disks หลังจากติดตั้งการอัปเดตความปลอดภัย KB5018410 (Windows 10) หรือ KB5018418 (Windows 11) ในฤดูใบไม้ร่วงปี 2022 หากต้องการแก้ปัญหา ให้แก้ไขไฟล์การเชื่อมต่อ *.rdp และเปลี่ยน บรรทัดต่อไปนี้:

    use redirection server name:i:1

  • หากคุณไม่ได้เพิ่มรหัสประจำตัว SSL ของใบรับรอง RDCB ไปยัง Trusted RDP Publishers คำเตือนจะปรากฏขึ้นเมื่อพยายามเชื่อมต่อ:

    Do you trust the publisher of this RemoteApp program?

  • An authentication error has occured (Code: 0x607)

    ตรวจสอบว่าคุณได้กำหนดใบรับรองที่ถูกต้องให้กับบทบาท RDS

บทความที่เกี่ยวข้อง