การลงชื่อเพียงครั้งเดียว (SSO) เป็นเทคโนโลยีที่อนุญาตให้ผู้ใช้ที่รับรองความถูกต้อง (ลงชื่อเข้าใช้) เข้าถึงบริการโดเมนอื่นโดยไม่ต้องตรวจสอบซ้ำ นำไปใช้กับบริการเดสก์ท็อประยะไกล SSO อนุญาตให้ผู้ใช้ที่เข้าสู่ระบบคอมพิวเตอร์โดเมนไม่ต้องป้อนข้อมูลประจำตัวของบัญชีอีกครั้ง (ชื่อผู้ใช้และรหัสผ่าน) เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ RDS หรือเปิดใช้ RemoteApps ที่เผยแพร่
ในบทความนี้ เราจะอธิบายลักษณะเฉพาะของการกำหนดค่าการตรวจสอบสิทธิ์ SSO (การลงชื่อเพียงครั้งเดียว) แบบโปร่งใสบนเซิร์ฟเวอร์ RDS ที่ใช้ Windows Server 2016 และ 2012 R2
ระบบ ข้อกำหนด:
- เซิร์ฟเวอร์ Connection Broker และเซิร์ฟเวอร์ RDS ทั้งหมดต้องใช้งาน Windows Server 2012 หรือใหม่กว่า
- SSO ทำงานได้เฉพาะในสภาพแวดล้อมของโดเมน:ต้องใช้บัญชีผู้ใช้ Active Directory เซิร์ฟเวอร์ RDS และเวิร์กสเตชันของผู้ใช้ต้องรวมอยู่ในโดเมน AD
- ต้องใช้ RDP 8.0 หรือใหม่กว่าบนไคลเอ็นต์ rdp (จะไม่สามารถติดตั้งไคลเอ็นต์ RDP เวอร์ชันนี้ใน Windows XP)
- ระบบปฏิบัติการรุ่นต่อไปนี้ได้รับการสนับสนุนในฝั่งไคลเอ็นต์ rdp:Windows 10, 8.1 หรือ 7;
- SSO ใช้งานได้กับการตรวจสอบสิทธิ์ด้วยรหัสผ่านเท่านั้น (ไม่รองรับสมาร์ทการ์ด)
- ควรตั้งค่า RDP Security Layer ในการตั้งค่าการเชื่อมต่อเป็น เจรจา หรือ SSL (TLS 1.0) และโหมดการเข้ารหัสเป็น สูง หรือได้มาตรฐาน FIPS .
ขั้นตอนการกำหนดค่าการลงชื่อเพียงครั้งเดียวประกอบด้วยขั้นตอนต่อไปนี้:
- คุณต้องออกและกำหนดใบรับรอง SSL บนเซิร์ฟเวอร์ RD Gateway, RD Web และ RD Connection Broker
- ต้องเปิดใช้งาน Web SSO บนเซิร์ฟเวอร์ RDWeb
- ต้องกำหนดค่านโยบายกลุ่มสำหรับการมอบสิทธิ์ข้อมูลประจำตัว
- ต้องเพิ่มรหัสประจำตัวของใบรับรองไปยังผู้เผยแพร่ .rdp ที่เชื่อถือได้โดยใช้ GPO
ประการแรก คุณต้องออกและกำหนดใบรับรอง SSL ในคุณสมบัติใบรับรอง EKU (การใช้งานคีย์ขั้นสูง) การตรวจสอบเซิร์ฟเวอร์ ต้องมีตัวระบุ เราจะไม่อธิบายขั้นตอนการรับใบรับรอง SSL เนื่องจากอยู่นอกเหนือขอบเขตของบทความนี้ (คุณสามารถสร้างใบรับรอง SSL ที่ลงนามเองได้ด้วยตัวเอง แต่คุณจะต้องปรับใช้กับใบรับรองที่เชื่อถือได้บนไคลเอนต์ทั้งหมดที่ใช้กลุ่ม นโยบาย)
ใบรับรองถูกกำหนดใน ใบรับรอง ส่วนของ การปรับใช้ RDS คุณสมบัติ.
จากนั้นคุณต้องเปิดใช้งาน “การรับรองความถูกต้องของ Windows ” บนเซิร์ฟเวอร์ทั้งหมดที่มีบทบาทการเข้าถึงเว็บสำหรับไดเร็กทอรี IIS RDWeb และปิดใช้งาน “การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ” .
หลังจากที่คุณบันทึกการเปลี่ยนแปลง ให้เริ่ม IIS ใหม่:
iisreset /noforce
หากคุณใช้ RD Gateway ตรวจสอบให้แน่ใจว่าไม่ได้ใช้สำหรับการเชื่อมต่อของไคลเอ็นต์ภายใน (ข้ามเซิร์ฟเวอร์ RD Gateway สำหรับที่อยู่ในเครื่อง ต้องตรวจสอบตัวเลือก)
ขั้นตอนต่อไปคือการกำหนดค่านโยบายการมอบสิทธิ์ข้อมูลรับรอง สร้าง GPO โดเมนใหม่และเชื่อมโยงไปยัง OU กับผู้ใช้ (คอมพิวเตอร์) ที่ต้องการอนุญาตให้ SSO เข้าถึงเซิร์ฟเวอร์ RDS หากคุณต้องการอนุญาต SSO สำหรับผู้ใช้โดเมนทั้งหมด การแก้ไขนโยบายโดเมนเริ่มต้นสามารถทำได้
นโยบายนี้อยู่ในส่วน GPO ต่อไปนี้:การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแลระบบ -> ระบบ -> การมอบหมายข้อมูลรับรอง -> อนุญาตข้อมูลประจำตัวเริ่มต้นของการมอบหมาย . นโยบายนี้อนุญาตให้เซิร์ฟเวอร์บางตัวเข้าถึงข้อมูลประจำตัวของผู้ใช้ Windows:
- ต้องเปิดใช้งานนโยบาย (เปิดใช้งาน );
- คุณต้องเพิ่มชื่อของเซิร์ฟเวอร์ RDS ในรายการเซิร์ฟเวอร์ที่ไคลเอ็นต์สามารถส่งข้อมูลรับรองผู้ใช้เพื่อดำเนินการตรวจสอบสิทธิ์ SSO ได้โดยอัตโนมัติ รูปแบบของการเพิ่มเซิร์ฟเวอร์มีดังนี้:TERMSRV/rd.contoso.com (โปรดทราบว่าอักขระ TERMSRV ทั้งหมดต้องเป็นตัวพิมพ์ใหญ่) หากคุณต้องให้สิทธิ์นี้กับเซิร์ฟเวอร์เทอร์มินัลทั้งหมดในโดเมน (ปลอดภัยน้อยกว่า) คุณสามารถใช้โครงสร้างนี้:TERMSRV/*.contoso.com
จากนั้น เพื่อป้องกันหน้าต่างคำเตือนของผู้เผยแพร่แอปพลิเคชันระยะไกลที่ไม่น่าเชื่อถือให้ปรากฏขึ้น ให้เพิ่มที่อยู่ของเซิร์ฟเวอร์ที่มีบทบาทนายหน้าการเชื่อมต่อไปยังโซนที่เชื่อถือบนคอมพิวเตอร์ไคลเอนต์โดยใช้นโยบาย “รายการกำหนดไซต์ไปยังโซน” (คล้ายกับบทความวิธีปิดใช้งานคำเตือนความปลอดภัย Open File ใน Windows 10):การกำหนดค่าผู้ใช้/คอมพิวเตอร์ -> เครื่องมือการดูแลระบบ -> คอมโพเนนต์ของ Windows -> Internet Explorer -> แผงควบคุมอินเทอร์เน็ต -> หน้าความปลอดภัย .
ระบุ FQDN ชื่อเซิร์ฟเวอร์ RDCB และโซน 2 (ไซต์ที่เชื่อถือได้)
จากนั้นเปิดใช้งาน ตัวเลือกการเข้าสู่ระบบ นโยบายใน การกำหนดค่าผู้ใช้/คอมพิวเตอร์ -> เครื่องมือการดูแลระบบ -> คอมโพเนนต์ของ Windows -> Internet Explorer -> แผงควบคุมอินเทอร์เน็ต -> ความปลอดภัย -> โซนไซต์ที่เชื่อถือได้ และในรายการแบบเลื่อนลง ให้เลือก “เข้าสู่ระบบอัตโนมัติด้วยชื่อผู้ใช้และรหัสผ่านปัจจุบัน” .
หลังจากอัปเดตนโยบายกลุ่มบนไคลเอนต์ หากคุณพยายามเริ่ม RemoteApp ข้อความแจ้งรหัสผ่านจะไม่ปรากฏขึ้น แต่หน้าต่างคำเตือนจะปรากฏขึ้น:
Do you trust the publisher of this RemoteApp program?
เพื่อป้องกันไม่ให้ข้อความนี้แสดงทุกครั้งที่เข้าสู่ระบบของผู้ใช้ คุณต้องรับรหัสประจำตัวของใบรับรอง SSL บนนายหน้าการเชื่อมต่อ RD และเพิ่มลงในรายชื่อผู้เผยแพร่ rdp ที่เชื่อถือได้ เมื่อต้องการทำเช่นนี้ เรียกใช้คำสั่ง PowerShell บนเซิร์ฟเวอร์ RDS Connection Broker:
Get-Childitem CERT:\LocalMachine\My
คัดลอกค่าของรหัสประจำตัวของใบรับรองและเพิ่มลงในรายการรหัสประจำตัวในนโยบาย ระบุรหัสประจำตัว SHA1 ของใบรับรองที่เป็นตัวแทนของผู้เผยแพร่ RDP (การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> Windows Desktop Services -> ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกล)
ตอนนี้การกำหนดค่า SSO สิ้นสุดลง และหลังจากใช้นโยบายแล้ว ผู้ใช้สามารถเชื่อมต่อกับฟาร์ม Windows Server RDS โดยใช้ RDP โดยไม่ต้องป้อนรหัสผ่านอีกครั้ง
ตอนนี้ เมื่อคุณเริ่ม mstsc.exe (ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกล) และระบุชื่อของเซิร์ฟเวอร์ RDS ฟิลด์ชื่อผู้ใช้จะแสดงชื่อผู้ใช้ในรูปแบบ ([email protected]) โดยอัตโนมัติพร้อมคำอธิบาย:
Your Windows logon credentials will be used to connect.
ในการใช้ RD Gateway กับ SSO คุณต้องเปิดใช้งานนโยบาย “ตั้งค่าวิธีการตรวจสอบสิทธิ์เกตเวย์ RD ” (การกำหนดค่าผู้ใช้ -> นโยบาย -> เทมเพลตการดูแล -> ส่วนประกอบ Windows -> บริการเดสก์ท็อประยะไกล -> RD Gateway) และตั้งค่าเป็น “ใช้ข้อมูลประจำตัวที่เข้าสู่ระบบในเครื่อง ”.
ในการใช้ Web SSO บน RD Web Access โปรดทราบว่าขอแนะนำให้ใช้ Internet Explorer พร้อมเปิดใช้งานคอมโพเนนต์ Active X ที่ชื่อ Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell)