Single Sign-On (SSO) হল ऐसी প্রযুক্তি যা একটি অথেন্টিকেটেড (সাইন-ইন করা) ব্যবহারকারীকে পুনরায় অথেন্টিকেশন ছাড়া অন্যান্য ডোমেন সার্ভিস অ্যাক্সেস করতে দেয়। Remote Desktop Service-এ প্রয়োগ করলে SSO একটি ডোমেন কম্পিউটারে লগ-ইন করা ব্যবহারকারীকে RDS সার্ভার বা পাবলিশড RemoteApps-এ কানেক্ট করার সময় আবার অ্যাকাউন্ট ক্রেডেনশিয়াল (ইউজারনেম এবং পাসওয়ার্ড) দিতে হয় না।
এই নিবন্ধে আমরা Windows Server 2016 এবং 2012 R2 চলে RDS সার্ভারে ট্রান্সপারেন্ট SSO (Single Sign-On) অথেন্টিকেশন কনফিগার করার đặc徵 বর্ণনা করব।
সিস্টেম রিকোয়ারমেন্ট
- Connection Broker সার্ভার এবং সব RDS সার্ভার Windows Server 2012 বা উচ্চতর ভার্সনে চালু থাকতে হবে;
- SSO শুধু ডোমেন এনভায়রনমেন্টে কাজ করে: Active Directory ইউজার অ্যাকাউন্ট ব্যবহার করতে হবে, RDS সার্ভার এবং ব্যবহারকারীর ওয়ার্কস্টেশন AD ডোমেনে থাকতে হবে;
- RDP ক্লায়েন্টে RDP 8.0 বা উচ্চতর থাকতে হবে (Windows XP-এ এই ভার্সন ইনস্টল করা সম্ভব নয়);
- RDP ক্লায়েন্ট সাইডে সমর্থিত OS: Windows 10, 8.1 বা 7;
- SSO শুধু পাসওয়ার্ড অথেন্টিকেশনে কাজ করে (স্মার্ট কার্ড সাপোর্টেড নয়);
- কানেকশন সেটিংসে RDP Security Layer Negotiate বা SSL (TLS 1.0) এবং এনক্রিপশন মোড High বা FIPS Compliant হতে হবে।
Single Sign-On কনফিগারেশন প্রক্রিয়া
- RD Gateway, RD Web, এবং RD Connection Broker সার্ভারে SSL সার্টিফিকেট ইস্যু ও অ্যাসাইন করুন;
- RDWeb সার্ভারে Web SSO সক্ষম করুন;
- ক্রেডেনশিয়াল ডেলিগেশন গ্রুপ পলিসি কনফিগার করুন;
- সার্টিফিকেট থাম্বপ্রিন্ট trusted .rdp পাবলিশার লিস্টে GPO দিয়ে যোগ করুন।
প্রথমে SSL সার্টিফিকেট ইস্যু ও অ্যাসাইন করুন। সার্টিফিকেটের EKU (Enhanced Key Usage) প্রোপার্টিতে Server Authentication আইডেন্টিফায়ার থাকতে হবে। SSL সার্টিফিকেট প্রাপ্তির প্রক্রিয়া এই নিবন্ধের সুযোগের বাইরে (সেলফ-সাইনড SSL সার্টিফিকেট জেনারেট করা যায়, তবে সেটি সব ক্লায়েন্টে trusted cert হিসেবে GPO দিয়ে ডিপ্লয় করতে হবে)।
সার্টিফিকেট RDS Deployment প্রোপার্টিজের Certificates সেকশনে অ্যাসাইন করা হয়।
এরপর RD Web Access রোল বিশিষ্ট সব সার্ভারের IIS-এ RDWeb ডিরেক্টরির জন্য "Windows Authentication" সক্ষম করুন এবং "Anonymous Authentication" ডিজেবল করুন। পরিবর্তন সেভ করলে IIS রিস্টার্ট করুন: iisreset /noforce
RD Gateway ব্যবহার করলে নিশ্চিত করুন যে ইন্টারনাল ক্লায়েন্টের জন্য এটি ব্যবহার হচ্ছে না (Bypass RD Gateway server for local address অপশন চেক থাকতে হবে)।
পরবর্তী ধাপ: ক্রেডেনশিয়াল ডেলিগেশন পলিসি কনফিগারেশন। একটি নতুন ডোমেন GPO তৈরি করুন এবং এটিকে ইউজার (কম্পিউটার) যাদের RDS সার্ভারে SSO অ্যাক্সেস দিতে চান সেদের OU-এ লিংক করুন। সব ডোমেন ইউজারের জন্য SSO চাইলে Default Domain Policy এডিট করা যাবে।
এই পলিসি এই GPO সেকশনে আছে: Computer Configuration → Policies → Administrative Templates → System → Credential Delegation → Allow delegation defaults credential। এই পলিসি নির্দিষ্ট সার্ভারগুলোর উইন্ডোজ ইউজারের ক্রেডেনশিয়াল অ্যাক্সেস দেয় SSO অথেন্টিকেশন করার জন্য:
- পলিসি সক্রিয় করতে হবে (Enabled);
- RDS সার্ভারদের নাম যোগ করুন যাদের ক্লায়েন্ট আটোমেটিক্যালি ইউজার ক্রেডেনশিয়াল পাঠাতে পারবে। ফরম্যাট: TERMSRV/rd.contoso.com (সব TERMSRV ক্যারেক্টার আপারকেস হতে হবে)। ডোমেনের সব টার্মিনাল সার্ভারের জন্য অনুমতি দিতে চাইলে (কম সিকিউর): TERMSRV/*.contoso.com।
এরপর, রিমোট অ্যাপ্লিকেশন পাবলিশার untrusted হয়ে সতর্কতা উইন্ডো আসা থেকে বাধা দিতে, ক্লায়েন্ট কম্পিউটারে Connection Broker রোল বিশিষ্ট সার্ভারের ঠিকানা trusted zone-এ যোগ করুন পলিসি "Site to Zone Assignment List" দিয়ে (How to disable Open File security warning on Windows 10 নিবন্ধের মতো): User/Computer Configuration → Administrative Tools → Windows Components → Internet Explorer → Internet Control Panel → Security Page।
FQDN সার্ভার নাম RDCB এবং Zone ২ (Trusted sites) স্পেসিফাই করুন।
তারপর Logon options পলিসি সক্ষম করুন User/Computer Configuration → Administrative Tools → Windows Components → Internet Explorer → Internet Control Panel → Security → Trusted Sites Zone-এ এবং ড্রপডাউন লিস্ট থেকে "Automatic logon with current username and password" সিলেক্ট করুন।
ক্লায়েন্টে গ্রুপ পলিসি আপডেট होने পর RemoteApp চালু করলে পাসওয়ার্ড প্রম্পট আসবে না, কিন্তু সতর্কতা উইন্ডো আসবে: "Do you trust the publisher of this RemoteApp program?"
এই মেসেজ বারবার আসা থেকে বাধা দিতে RD Connection Broker-এ SSL সার্টিফিকেটের থাম্বপ্রিন্ট নিয়ে trusted rdp publishers লিস্টে যোগ করুন। RDS Connection Broker সার্ভারে PowerShell কমান্ড চালান:
Get-Childitem CERT:\LocalMachine\My
সার্টিফিকেট থাম্বপ্রিন্টের মান কপি করে পলিসি Specify SHA1 thumbprints of certificates representing RDP publishers-এ (Computer Configuration → Administrative Templates → Windows Desktop Services → Remote Desktop Connection Client) যোগ করুন।
এখন SSO কনফিগারেশন সম্পন্ন। পলিসি প্রয়োগ হওয়ার পর ব্যবহারকারী Windows Server RDS ফার্মে RDP দিয়ে পাসওয়ার্ড রি-এন্টার ছাড়া কানেক্ট করতে পারবে।
এখন mstsc.exe (Remote Desktop Connection client) চালু করে RDS সার্ভারের নাম দিলে UserName ফিল্ডে আটোমেটিক্যালি ইউজারনেম (user@domain.com ফরম্যাটে)見える সাথে ক্যাপশন: "Your Windows logon credentials will be used to connect."
RD Gateway-এ SSO ব্যবহার করতে পলিসি "Set RD Gateway Authentication Method" সক্ষম করুন (User Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → RD Gateway) এবং মান সেট করুন "Use Locally Logged-On Credentials"।
RD Web Access-এ Web SSO ব্যবহার করতে Internet Explorer রিকমেন্ড করা হয় যার Active X কম্পোনেন্ট Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell) সক্রিয় থাকতে হবে।