Služby vzdialenej plochy

Služby vzdialenej plochy (po anglicky Remote Desktop Services, RDS), známej ako Terminálové služby (po anglicky Terminal Services) v systéme Windows Server 2008 a v predchádzajúcich verziách, sú jednou zo súčastí systému Microsoft Windows, ktoré umožňujú užívateľovi prevziať kontrolu nad vzdialenými počítačmi alebo nad virtuálnymi strojmi cez sieťové pripojenie. RDS je implementácia tenkého klienta spoločnosti Microsoft, v ktorom sú Windows aplikácie a všetky pracovné plochy počítača, pri ktorých je spustený RDS, dostupné pre stroj vzdialeného klienta, ktorý podporuje Remote Desktop Protocol (skr. RDP). Prostrednictvom RDS sú do klientského systému prenášané jedine uživatelské rozhrania softwaru. Všetky vstupy z klientského systému sú prenášané na server, na ktorom je software spustený.

RDS bol prvýkrát vydaný ako „Terminálový Server“ v rámci „Windows NT Server 4.0 Terminal Server Edition“, čo bol samostatný operačný systém verzie SP3. Počnúc Windows 2000 bola rola RDS nepovinná a stala sa základom rodiny operačných systémov Windows NT a ďalej bola vylepšovaná s každou novou verziou Windows. Premenovanie na „Službu vzdialenej plochy“ sa objavilo od verzie Windows Server 2008 R2, v roku 2009.

To je v kontraste so systémami na streamovanie aplikácií, ako je Microsoft App-V, v ktorých sú počítačové programy na vyžiadanie klienta vykonávané na klientskom počítači.

Obchodná značka (brand) ktorá zahŕňa sadu technológií nad RDP, bola zavedená vo Windows Server 2008 R2 Service Pack 1.

Prehľad 
Windows obsahuje tri klientske komponenty, ktoré využívajú RDS:

 Windows Remote Assistance
 Remote Desktop Connection (RDC)
 Fast User Switching

Prvé dva komponenty sú jednotlivé nástroje, ktoré umožňujú užívateľovi prevziať kontrolu nad vzdialenými počítačmi v rámci počítačovej siete. V prípade komponentu Remote Assistance vzdialený užívateľ potrebuje obdržať pozvanie a následne sa spolupodieľa na ovládanie systému. V prípade RDC ale vzdialený klient otvára novú reláciu na vzdialenom počítači a má priradené všetky oprávnenia a obmedzenia dané používateľským účtom. Fast User Switching dovoľuje používateľom prepínať medzi používateľskými účtami na lokálnom počítači bez nutnosti vypnutia softvéru a odhlásenia. Fast User Switching je súčasťou Winlogon a využíva RDS na dosiahnutie jeho prepínacej funkcie. Vývojári tretích strán taktiež vytvorili klientsky softvér pre RDS. Napríklad rdesktop, ktorý podporuje Unix platformu.

Hoci je RDS dodávané vo väčšine edícií všetkých verzií Windows NT počnúc Windows 2000, tak sa jeho funkcionalita líši v každej verzii.  Windows XP Home Edition neprijíma vôbec žiadne RDC pripojenie, RDS tu bola vyhradená iba pre Fast User Switching a Remote Assistance. Ostatné klientske verzie Windows umožňujú maximálne jednému vzdialenému užívateľovi pripojiť sa k systému, na úkor už prihlásených užívateľov konzoly, ktorí sú vzápätí odhlásení. Windows server umožňuje dvom užívateľom pripojenie v ten istý čas. Tento licenčný systém bol nazvaný „Remote Desktop for Administration“ a uľahčuje administráciu počítačov, ktoré nemajú vlastný monitor a klávesnicu. Iba po zaistení dodatočných licencií (dodatočne k systému Windows) môže počítač so systémom Windows Server obsluhovať viac vzdialených užívateľov v jeden čas a tým dosiahnuť infraštruktúru virtuálnych plôch.

V organizáciách umožňuje RDS IT oddeleniam inštalovať aplikácie na centrálny server, čím odpadne potreba inštalovať aplikácie na každý počítač zvlášť. Vzdialení používatelia sa môžu prihlásiť a používať tieto aplikácie naprieč sieťou. Takáto centralizácia aplikácií môže uľahčiť údržbu a odstraňovanie problémov. Overovacie systémy RDS a Windows zabraňujú neoprávnenému prístupu k aplikáciám či k dátam.

Spoločnosť Microsoft má dlhodobú dohodu s firmou Citrix Systems, ktorá má uľahčiť zdieľanie technológií a patenty licencí medzi Microsoft Terminal Services a Citrix XenApp (predtým Citrix MetaFrame a Citrix Presentation Server). Citrix má v tomto usporiadaní prístup ku kľúčovému zdrojovému kódu pre platformu Windows, čo dovoľuje zlepšovať zabezpečenie a výkon platformy Terminálových služieb (Terminal Services).

Komponenty RDS 
Kľúčovým serverovým komponentom RDS je Terminal Server (termdd.sys), ktorý sa nachádza na TCP porte 3389. Keď sa klient Remote Desktop Protocol (RDP) pripojí k tomuto portu, označí sa jedinečným SessionID a priradí sa k čerstvo vytvorenej relácii konzoly [relácia(Session) 0, klávesnica, myš a znakový režim]. Potom sa inicializuje prihlasovací subsystém (winlogon.exe) a grafický subsystém GDI, ktorý sa stará o overenie používateľa a prezentáciu GUI. Tieto spustiteľné súbory sa načítajú v novej relácii, nie v relácii konzoly. Pri vytváraní novej relácie sa ovládače zariadení grafiky a klávesnice/myši nahradia ovládačmi špecifickými pre RDP: RdpDD.sys a RdpWD.sys. Ovládač zariadenia RdpDD.sys zachytáva hovory vykresľovania používateľského rozhrania do formátu, ktorý je prenosný cez RDP. RdpWD.sys slúži ako ovládač klávesnice a myši; prijíma vstupy z klávesnice a myši cez pripojenie TCP a prezentuje ich ako vstupy z klávesnice alebo myši. Taktiež umožňuje vytváranie virtuálnych kanálov, ktoré umožňujú presmerovanie iných zariadení, ako sú disky, audio, tlačiarne a COM porty, teda kanály slúžia ako náhrada za tieto zariadenia. Kanály sa pripájajú ku klientovi cez TCP spojenie; počas toho, ako sú kanály sprístupnené pre dáta, klient je informovaný o požiadavke, ktorá je potom prenesená cez TCP spojenie do aplikácie. Celý tento postup vykonáva terminálový server a klient, pričom RDP sprostredkuje správny prenos a je pre aplikácie úplne transparentný. Komunikácia RDP je šifrovaná pomocou 128-bitového šifrovania RC4. Windows Server 2003 a novší môže používať schémy šifrovania kompatibilné s FIPS 140.

Akonáhle klient iniciuje pripojenie a je informovaný o úspešnom vyvolaní zásobníka terminálových služieb na serveri, načíta zariadenie, ako aj ovládače klávesnice/myši. Údaje používateľského rozhrania prijaté cez RDP sa dekódujú a vykreslia ako používateľské rozhranie, zatiaľ čo vstupy z klávesnice a myši do okna hosťujúceho používateľské rozhranie sú zachytené ovládačmi a prenášané cez RDP na server. Vytvára aj ostatné virtuálne kanály a nastavuje presmerovanie. Komunikácia RDP môže byť šifrovaná; pomocou nízkeho, stredného alebo vysokého šifrovania. Pri nízkom šifrovaní je vstup používateľa (odchádzajúce dáta) šifrovaný pomocou slabej (40-bitovej RC4) šifry. Pri strednom šifrovaní sú pomocou tejto slabej šifry šifrované aj UI pakety (prichádzajúce dáta). Nastavenie „Vysoké šifrovanie (bez exportu)“ používa 128-bitové šifrovanie RC4 a nastavenie „Vysoké šifrovanie (Export)“ používa 40-bitové šifrovanie RC4.

Terminálový server 
Terminálový server je serverová súčasť Terminal Services. Úlohou tohto komponentu je overovanie klientov a sprístupňovanie aplikácií vzdialene. Táto súčasť je tiež poverená obmedzovaním klientov na základe ich stupňa prístupu. Terminálový server rešpektuje nakonfigurované obmedzenia podľa zásad daného softvéru tak, aby obmedzil prístup určitého softvéru iba pre poverených užívateľov. Informácie o vzdialenej relácii sú uložené v špecializovaných adresároch nazývaných Adresárom Relácií (Session Directory), ktoré sú uložené na serveri. Tieto adresáre sú používané na ukladanie informácií o stave relácií a tiež môžu byť použité na obnovenie prerušených relácií. Terminálový server musí tieto adresáre spravovať. Terminálový server môže byť tiež použitý v konfigurácii typu cluster.

Brána vzdialenej plochy 
Brána vzdialenej plochy (tiež RD Gateway) môže tunelovať RDP reláciu použitím HTTPS kanálu. To zvyšuje zabezpečenie RDS zapuzdrením relácie prostredníctvom služby Transport Layer Security (TLS). Tiež sprístupňuje možnosť použiť Internet Explorer ako klienta RDP. Oficiálne MS RDP klient pre Mac OS X podporuje Bránu vzdialenej plochy od verzie 8. K dispozícii je tiež pre systémy iOS a Android.

Táto funkcia bola predstavená v produktoch Windows Server 2008 a Windows Home Server.

Webový klient vzdialenej plochy HTML5 
Koncom roka 2018 spoločnosť Microsoft vydala webového klienta vzdialenej pracovnej plochy HTML5. Klient umožňuje používateľom pripojiť sa k ich vzdialeným aplikáciám alebo k ich vzdialenej ploche bez použitia nainštalovaného klienta vzdialenej pracovnej plochy. Webový klient používa zabezpečený port TLS 443 a nepoužíva bránu RD na prenos prevádzky, namiesto toho sa spolieha výlučne na aspekt hostiteľskej relácie vzdialenej pracovnej plochy služieb vzdialenej pracovnej plochy.

Role 

 Služby Brány Vzdialenej Plochy
 Umožňuje autorizovaným používateľom prihlásiť sa k virtuálnemu desktopu, vzdialeným aplikáciám a pod. prostredníctvom súkromnej siete alebo Internetu.

 Remote Desktop Connection Broker
 Umožňuje autorizovaným užívateľom prihlásiť sa k virtuálnym desktopom, vzdialeným aplikáciám a pod. prostredníctvom súkromnej siete alebo Internetu. Umožňuje používateľom pripojiť sa k ich už existujúcim virtuálnym desktopom, vzdialeným aplikáciám a session-based desktopom. Dokáže distribuovať záťaž medzi hosťovacie servery, ktoré sprostredkovávajú RD relácie, a poskytuje prístup k virtuálnym desktopom.

 Remote Desktop Session Host
 Umožňuje serveru hosťovať vzdialené aplikácie ako session-based desktop. Užívatelia sa môžu pripojiť k RD Session Host serveru a spúšťať tak vzdialene programy, ukladať súbory a využívať prostriedky, ktoré sú k dispozícii na týchto serveroch. Užívatelia môžu pristupovať k vzdialenej ploche prostredníctvom aplikácie Pripojenie k vzdialenej ploche alebo pomocou programu RemoteApp.

 Remote Desktop Virtualization Host
 Umožňuje používateľom pripojiť sa k virtuálnym počítačom a užívať vzdialené aplikácie a počítačové pripojenie.

 Remote Desktop Web Access
 Umožňuje používateľom prístup k vzdialeným aplikáciám a počítačovému pripojeniu prostredníctvom Ponuky Štart či prostredníctvom webového prehliadača. Umožňuje používateľom pripojiť sa k virtuálnym počítačom a užívať vzdialené aplikácie a počítačové pripojenie.

 Remote Desktop Licensing
 Dovoľuje serveru riadiť prístupové oprávnenia k RDS klientovi (RDS CALs), ktoré sú vyžadované pre každé zariadenie užívateľa, aby mu bolo umožnené pripojenie k relácii vzdialenej plochy hostiteľa. Licencie CAL pre službu RDS sú licencované prostredníctvom Správcu licencií k vzdialenej ploche.

Vzdialená aplikácia 
Vzdialená aplikácia (po anglicky RemoteApp alebo TS RemoteApp) je špeciálny režim RDS dostupný v systéme Windows Server 2008 R2 a novších, kde je konfigurácia vzdialenej relácie integrovaná do operačného systému klienta. Klient RDP 6.1 sa dodáva so systémom Windows XP SP3, KB952155 pre používateľov systému Windows XP SP2, Windows Vista SP1 a Windows Server 2008. Používateľské rozhranie pre RemoteApp sa vykresľuje v okne cez lokálnu pracovnú plochu a spravuje sa ako každé iné okno pre lokálne aplikácie. Konečným výsledkom je, že vzdialené aplikácie sa správajú do značnej miery ako lokálne aplikácie. Úloha vytvorenia vzdialenej relácie, ako aj presmerovania miestnych zdrojov do vzdialenej aplikácie, je pre koncového používateľa transparentná. V jednej relácii RemoteApp je možné spustiť viacero aplikácií, pričom každá má svoje vlastné okná.

RemoteApp môže byť uložená buď ako .rdp súbor alebo distribuované prostredníctvom .msi Windows Installer balíčka. Pri uložení ako .rdp súbor (ktorý obsahuje adresu servera RemoteApp, schémy overovania, ktoré sa majú použiť, a ďalšie nastavenia), RemoteApp možno spustiť dvojitým kliknutím na súbor. Vyvolá klienta Remote Desktop Connection, ktorý sa pripojí k serveru a vykreslí používateľské rozhranie. Aplikácia RemoteApp môže byť tiež zabalená v balíčku databázy Windows Installer - inštalácia, ktorá môže zaregistrovať aplikáciu RemoteApp v ponuke štart ako aj vytvoriť skratky na jeho spustenie. RemoteApp je možné zaregistrovať aj ako obslužný program pre typy súborov alebo identifikátory URI. Otvorenie súboru registrovaného pomocou aplikácie RemoteApp najprv vyvolá pripojenie k vzdialenej ploche, ktoré sa pripojí k terminálovému serveru a potom otvorí súbor. Akákoľvek aplikácia, ku ktorej je možné pristupovať cez vzdialenú plochu, môže slúžiť ako vzdialená aplikácia.

Windows 7 obsahuje vstavanú podporu pre publikovanie cez RemoteApp, ale musí sa povoliť manuálne v registri, pretože v klientskych verziách systému Microsoft Windows neexistuje konzola na správu RemoteApp.

Zdieľanie pracovnej plochy Windows 
V systéme Windows Vista a novších obsahujú terminálové služby aj možnosť zdieľania pracovnej plochy viacerými stranami, taktiež známe ako Windows Desktop Sharing. Na rozdiel od terminálových služieb, ktoré vytvárajú novú používateľskú reláciu pre každé pripojenie RDP, Windows Desktop Sharing môže hostovať vzdialenú reláciu v kontexte aktuálne prihláseného používateľa bez vytvorenia novej relácie a sprístupniť pracovnú plochu alebo jej podmnožinu cez RDP. Windows Desktop Sharing možno použiť na zdieľanie celej pracovnej plochy, konkrétneho regiónu alebo konkrétnej aplikácie. Windows Desktop Sharing je možné použiť aj na zdieľanie pracovnej plochy s viacerými monitormi. Pri samostatnom zdieľaní aplikácií (nie celej pracovnej plochy) okná sú spravované (či už sú minimalizované alebo maximalizované) nezávisle na strane servera a klienta.

Funkcia je poskytovaná iba prostredníctvom verejnej API, ktorú môže použiť akákoľvek aplikácia na poskytovanie funkcie zdieľania obrazovky. Windows Desktop Sharing API využíva dva objekty: RDPSessionpre reláciu zdieľania a RDPViewer pre pozorovateľa. Pre jeden objekt relácie možno vytvoriť inštanciu viacerých objektov pozorovateľa. Pozorovateľ môže byť buď pasívny, teda je len schopný sledovať aplikáciu ako screencast, alebo interaktívny, ktorý dokáže komunikovať v reálnom čase so vzdialenou aplikáciou. Objekt RDPSession obsahuje všetky zdieľané aplikácie reprezentované ako objekty Application, každý s objektami Window predstavujúce ich okná na obrazovke. Filtre pre jednotlivé aplikácie zachytávajú aplikácie Windows a ukladajú ich ako objekty Window. Pozorovateľ sa pred pripojením k relácii zdieľania musí overiť. To sa docieli vygenerovaním Invitation pomocou RDPSession. Obsahuje overovací lístok a heslo. Objekt je serializovaný a odoslaný pozorovateľom, ktorý sa pomocou Invitation prezentuje pri pripojení.

Windows Desktop Sharing API sa používa v Windows Meeting Space a Windows Remote Assistance na poskytovanie funkcií zdieľania aplikácií medzi network peers.

Klientsky softvér 
Pripojenie vzdialenej pracovnej plochy (po anglicky Remote Desktop Connection - RDC, taktiež známy ako Remote Desktop alebo iba RD, skôr Microsoft Terminal Services Client, mstsc alebo tsclient) je klientská aplikácia pre RDS.  Umožňuje používateľovi vzdialene sa prihlásiť do sieťového počítača so serverom terminálových služieb. RDC predstavuje desktopové rozhranie (alebo aplikačné GUI) vzdialeného systému, ako keby bol prístupný lokálne. Okrem bežného používateľského mena/hesla na autorizáciu pre vzdialenú reláciu podporuje RDC aj používanie čipových kariet na autorizáciu. Pomocou RDC 6.0 je možné nastaviť rozlíšenie vzdialenej relácie nezávisle od nastavení na vzdialenom počítači.

S verziou 6.0, ak je Desktop Experience komponentu zapojeného do vzdialeného servera, prvky používateľského rozhrania vzdialenej aplikácie (napr. okraje okien aplikácie, tlačidlá Maximalizovať, Minimalizovať a Zavrieť atď.) budú mať rovnaký vzhľad ako lokálne aplikácie. V tomto scenári budú vzdialené aplikácie používať Aero, ak sa používateľ pripojí k serveru z počítača so systémom Windows Vista, na ktorom beží Aero. Neskoršie verzie protokolu tiež podporujú vykresľovanie používateľského rozhrania v plnej 32-bitovej farbe, ako aj presmerovanie prostriedkov pre tlačiarne, porty COM, diskové jednotky, myši a klávesnice. Vďaka presmerovaniu prostriedkov môžu vzdialené aplikácie využívať prostriedky lokálneho počítača. Zvuk je presmerovaný taktiež, čiže všetky zvuky generované vzdialenou aplikáciou sa prehrávajú v klientskom systéme. Vzdialená relácia môže navyše zahŕňať viacero monitorov v klientskom systéme, nezávisle od nastavení viacerých monitorov na serveri. RDC možno použiť aj na pripojenie k vzdialeným reláciám Windows Media Center (WMC); keďže však WMC neprenáša video pomocou RDP, týmto spôsobom je možné prezerať iba aplikácie, nie akékoľvek médiá.

RDC uprednostňuje údaje používateľského rozhrania, ako aj vstupy z klávesnice a myši, na rozdiel od tlačových úloh alebo prenosu súborov, aby aplikácie mohli lepšie reagovať. Presmeruje plug and play zariadenia, ako sú fotoaparáty, prenosné hudobné prehrávače a skenery, takže vstup z týchto zariadení môžu využívať aj vzdialené aplikácie. RDC je možné použiť aj na pripojenie k počítačom, ktoré sú prístupné cez Windows Home Server RDP Gateway cez Internet. Na záver pár skratiek, ktoré sa vám zídu:

 Pre dosiahnutie efektu Ctrl + Alt + Del na vzdialenej ploche, môžete použiť kombináciu kľúčov Ctrl + Alt + End
 Ak sa chcete prepínať medzi režimom celej obrazovky a okna vzdialenej pracovnej plochy, môžete použiť kombináciu Ctrl + Alt + Break (prípadne Ctrl + Fn + Alt + Shift na niektorých HP laptopoch)

Ďalší klienti 
Microsoft je tvorcom oficiálneho klienta pre rôzne platformy mimo Windows:

 Windows Mobile
 MacOS: Microsoft Remote Desktop pre Mac
 Android: Microsoft Remote Desktop
 iOS and iPadOS: Microsoft Remote Desktop

Existuje mnoho implementácií klientov od iných spoločností ako Microsoft, ktorí tvoria podmnožiny funkcií Microsoftu pre celý rad platforiem. Najbežnejšie sú:

 FreeRDP - Open Source pod Apache license
 rdesktop pre Linux/Unix a Microsoft Windows
 Remmina pre Linux (založené na FreeRDP)
 CoRD pre macOS (ukončené v apríli 2020)
 Thincast Client pre Linux, macOS a Windows

Referencie 

 
Microsoft Windows