Megosztás a következőn keresztül:


Távoli asztali átjáró konfigurálása és használata az Azure DevTest Labsban

Ez a cikk bemutatja, hogyan állíthat be és használhat átjárót az Azure DevTest Labs tesztkörnyezeti virtuális gépeihez (VM-ekhez) való biztonságos távoli asztali hozzáféréshez. Az átjáró használata növeli a biztonságot, mivel nem teszi elérhetővé a virtuális gépek távoli asztali protokoll (RDP) portjait az interneten. Ez a távoli asztali átjárómegoldás a jogkivonat-hitelesítést is támogatja.

A DevTest Labs központi helyet biztosít a tesztkörnyezet felhasználói számára a virtuális gépek megtekintéséhez és a hozzájuk való csatlakozáshoz. Ha a tesztkörnyezeti virtuális gép Áttekintés lapján az RDP csatlakoztatása> lehetőséget választja, létrejön egy gépspecifikus RDP-fájl, és a felhasználók megnyithatják a fájlt a virtuális géphez való csatlakozáshoz.

Távoli asztali átjáróval a tesztkörnyezet felhasználói egy átjárógépen keresztül csatlakoznak a virtuális gépükhöz. A felhasználók közvetlenül az átjárógépen hitelesítik magukat, és használhatják a vállalat által megadott hitelesítő adatokat a tartományhoz csatlakoztatott gépeken. A jogkivonat-hitelesítés további biztonsági réteget biztosít.

A tesztkörnyezeti virtuális gépek biztonságos elérésének másik módja a portok vagy IP-címek felfedése nélkül, ha az Azure Bastion böngészőn keresztül érhető el. További információ: Böngészőkapcsolat engedélyezése DevTest Labs virtuális gépekhez az Azure Bastion használatával.

Architektúra

Az alábbi ábra bemutatja, hogyan alkalmazza a távoli asztali átjáró a jogkivonat-hitelesítést, és hogyan csatlakozik a DevTest Labs virtuális gépekhez.

A távoli asztali átjáró architektúrát bemutató diagram.

  1. Ha kiválasztja az RDP csatlakoztatását >egy tesztkörnyezeti virtuális gépről, meghívja a getRdpFileContents REST parancsot:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/getRdpFileContents
    
  2. Ha a tesztkörnyezetben van egy átjáró konfigurálva, a getRdpFileContents művelet meghívja https://{gateway-hostname}/api/host/{lab-machine-name}/port/{port-number} a hitelesítési jogkivonat kérését.

    • {gateway-hostname}{lb-uri} vagy terheléselosztó esetén a tesztkörnyezet Tesztkörnyezet beállításai lapján megadott átjáró állomásneve.
    • {lab-machine-name} a csatlakozni kívánt virtuális gép neve.
    • {port-number} a kapcsolathoz használni kívánt port. Ez a port általában 3389, de ha a tesztkörnyezeti virtuális gép megosztott IP-címet használ, a portszám eltérő.
  3. A távoli asztali átjáró egy Azure Functions-függvényalkalmazás hívásának elhalasztására szolgál https://{function-app-uri}/api/host/{lab-machine-name}/port/{port-number} .

    Feljegyzés

    A kérelemfejléc automatikusan tartalmazza a függvénykulcsot, amelyet a tesztkörnyezet kulcstartójából kap. A függvénykulcs titkos kódjának neve az átjáró jogkivonata a tesztkörnyezet beállításainak lapján.

  4. Az Azure-függvény létrehoz és visszaad egy jogkivonatot a tanúsítványalapú hitelesítéshez az átjárógépen.

  5. A getRdpFileContents művelet a teljes RDP-fájlt adja vissza, beleértve a hitelesítési jogkivonatot is.

Amikor egy RDP-kapcsolati program megnyitja az RDP-fájlt, a távoli asztali átjáró hitelesíti a jogkivonatot, és a kapcsolat továbbítódik a tesztkörnyezet virtuális gépére.

Feljegyzés

Nem minden RDP-kapcsolati program támogatja a jogkivonat-hitelesítést.

Fontos

Az Azure-függvény beállítja a hitelesítési jogkivonat lejárati dátumát. A jogkivonat lejárata előtt a felhasználónak csatlakoznia kell a virtuális géphez.

Konfigurációs követelmények

Az átjárógépekre, az Azure Functionsre és a hálózatokra vonatkozó konfigurációs követelmények a DevTest Labs RDP-hozzáférésének és jogkivonat-hitelesítésének használatához szükségesek:

Átjárógép-követelmények

Az átjárógépnek a következő konfigurációval kell rendelkeznie:

  • TLS/SSL-tanúsítvány a HTTPS-forgalom kezeléséhez. A tanúsítványnak meg kell egyeznie az átjárógép teljes tartománynevével (FQDN), ha csak egy gép van, vagy egy átjárófarm terheléselosztójának. A helyettesítő TLS/SSL-tanúsítványok nem működnek.

  • Aláíró tanúsítvány. Aláíró tanúsítványt a Create-SigningCertificate.ps1 PowerShell-szkripttel hozhat létre.

  • Egy csatlakoztatható hitelesítési modul , amely támogatja a jogkivonat-hitelesítést. Ilyen például a RDGatewayFedAuth.msi, amely a System Center Virtual Machine Manager (VMM) rendszerképeivel rendelkezik.

  • A kérések kezelése a következőre https://{gateway-hostname}/api/host/{lab-machine-name}/port/{port-number}: .

Az Internet Information Server (IIS) alkalmazás-útválasztási kérés moduljának használatával átirányíthatja https://{gateway-hostname}/api/host/{lab-machine-name}/port/{port-number} a kéréseket a függvényalkalmazásba.

Az Azure Functions követelményei

Egy Azure Functions-függvényalkalmazás a formátummal kezeli a https://{function-app-uri}/app/host/{lab-machine-name}/port/{port-number} kéréseket, és létrehozza és visszaadja a hitelesítési jogkivonatot az átjárógép aláíró tanúsítványa alapján. A {function-app-uri} függvény eléréséhez használt URI.

A kérelem fejlécének át kell adnia a függvénykulcsot, amelyet a tesztkörnyezet kulcstartójából kap.

A mintafüggvényekért lásd: CreateToken.cs.

Hálózati követelmények

  • Az átjárógép TLS/SSL-tanúsítványához társított teljes tartománynév DNS-ének az átjárógépre vagy egy átjárógép-farm terheléselosztójára kell irányítania a forgalmat.

  • Ha a tesztkörnyezeti virtuális gép magánhálózati IP-címet használ, az átjárógéptől a tesztkörnyezeti gépig hálózati elérési útnak kell lennie. A két gépnek vagy ugyanazt a virtuális hálózatot kell használnia, vagy társhálózatokat kell használnia.

Távoli asztali átjáró létrehozása

Az Azure DevTest Labs GitHub-adattár azure Resource Manager-sablonokkal (ARM) segíti a DevTest Labs-jogkivonat-hitelesítés és a távoli asztali átjáró erőforrásainak beállítását. Az átjárógép-létrehozáshoz, a tesztkörnyezet beállításaihoz és egy függvényalkalmazáshoz sablonokat is találhat.

Feljegyzés

A mintasablonok használatával elfogadja a Távoli asztali átjáró licencfeltételét.

Kövesse az alábbi lépéseket egy távoli asztali átjárófarm-minta beállításához.

  1. Hozzon létre egy aláíró tanúsítványt.

    Futtassa a Create-SigningCertificate.ps1 parancsot. Jegyezze fel a létrehozott tanúsítvány ujjlenyomatát, jelszavát és Base64-kódolását későbbi használatra.

  2. TLS-/SSL-tanúsítvány lekérése. A TLS/SSL-tanúsítványhoz társított teljes tartománynévnek egy ön által felügyelt tartományhoz kell tartoznia.

  3. Jegyezze fel a TLS/SSL-tanúsítvány jelszavát, ujjlenyomatát és Base64-kódolását, amelyet később használni szeretne.

    • Az ujjlenyomat lekéréséhez használja a következő PowerShell-parancsokat:

      $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate;
      $cer.Import('path-to-certificate');
      $hash = $cer.GetCertHashString()
      
    • A Base64-kódolás lekéréséhez használja a következő PowerShell-parancsot:

      [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('path-to-certificate'))
      
  4. Töltse le az összes fájlt innen https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/GatewaySample/arm/gateway: . Másolja az összes fájlt, és RDGatewayFedAuth.msi egy tárfiók blobtárolójába.

  5. Nyissa meg azuredeploy.json innen https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/GatewaySample/arm/gateway, és töltse ki a következő paramétereket:

    Paraméter Kötelező Leírás
    adminUsername Szükséges Az átjárógépek rendszergazdai felhasználóneve.
    adminPassword Szükséges Az átjárógépek rendszergazdai fiókjának jelszava.
    instanceCount Létrehozandó átjárógépek száma.
    alwaysOn A létrehozott Azure Functions-alkalmazás melegen tartása (bekapcsolva) vagy sem. Az alkalmazás megtartása elkerüli a késést, amikor a felhasználók először próbálnak csatlakozni a tesztkörnyezeti virtuális gépeikhez, de költségvonzattal járnak.
    tokenLifetime A létrehozott jogkivonat érvényes HH:MM:SS formátumban megadott időtartama.
    sslCertificate Szükséges Az átjárógép TLS/SSL-tanúsítványának Base64-kódolása.
    sslCertificatePassword Szükséges Az átjárógép TLS/SSL-tanúsítványának jelszava.
    sslCertificateThumbprint Szükséges A tanúsítvány ujjlenyomata az aláíró tanúsítvány helyi tanúsítványtárolójában való azonosításhoz.
    signCertificate Szükséges Az átjárógép aláíró tanúsítványának Base64-kódolása.
    signCertificatePassword Szükséges Az átjárógép aláíró tanúsítványának jelszava.
    signCertificateThumbprint Szükséges A tanúsítvány ujjlenyomata az aláíró tanúsítvány helyi tanúsítványtárolójában való azonosításhoz.
    _artifactsLocation Szükséges A sablon által igényelt összetevők keresésének URI-helye. Ennek az értéknek teljes mértékben minősített URI-nak kell lennie, nem relatív elérési útnak. Az összetevők közé tartoznak más sablonok, PowerShell-szkriptek és a Távoli asztali átjáró beépülő modulja, amely várhatóan a jogkivonat-hitelesítést támogató RDGatewayFedAuth.msi lesz elnevezve.
    _artifactsLocationSasToken Szükséges A közös hozzáférésű jogosultságkód (SAS) jogkivonat az összetevők eléréséhez, ha az _artifactsLocation Egy Azure Storage-fiók.
  6. Futtassa a következő Azure CLI-parancsot a azuredeploy.json üzembe helyezéséhez:

    az deployment group create --resource-group {resource-group} --template-file azuredeploy.json --parameters @azuredeploy.parameters.json -–parameters _artifactsLocation="{storage-account-endpoint}/{container-name}" -–parameters _artifactsLocationSasToken = "?{sas-token}"
    
    • Futtassa a {storage-account-endpoint} parancsot az storage account show --name {storage-account-name} --query primaryEndpoints.blob.

    • Futtassa a {sas-token} parancsot az storage container generate-sas --name {container-name} --account-name {storage-account-name} --https-only –permissions drlw –expiry {utc-expiration-date}.

      • {storage-account-name} a feltöltött fájlokat tartalmazó tárfiók neve.
      • {container-name} A feltöltött fájlokat tartalmazó tároló {storage-account-name} .
      • {utc-expiration-date} az a dátum (UTC), amikor az SAS-jogkivonat lejár, és a továbbiakban nem használható a tárfiók eléréséhez.
  7. Jegyezze fel a sablon üzembehelyezési kimenetének értékeit gatewayFQDN gatewayIP . Mentse az újonnan létrehozott függvény kulcsának értékét is, amelyet a függvényalkalmazás Alkalmazásbeállítások lapján talál.

  8. Konfigurálja a DNS-t úgy, hogy a TLS/SSL-tanúsítvány teljes tartományneve az gatewayIP IP-címre legyen irányítva.

A távoli asztali átjárófarm létrehozása és a DNS frissítése után konfigurálja az Azure DevTest Labst az átjáró használatára.

A tesztkörnyezet konfigurálása jogkivonat-hitelesítés használatára

A tesztkörnyezet beállításainak frissítése előtt tárolja a hitelesítési jogkivonat-függvény kulcsát a tesztkörnyezet kulcstartójában. A függvénykulcs értékét az Azure Portal Függvénykulcsok lapján szerezheti be. A labor kulcstartójának azonosítójának megkereséséhez futtassa a következő Azure CLI-parancsot:

az resource show --name {lab-name} --resource-type 'Microsoft.DevTestLab/labs' --resource-group {lab-resource-group-name} --query properties.vaultName

Ebből a cikkből megtudhatja, hogyan menthet titkos kulcsokat egy kulcstartóban, és hogyan adhat hozzá titkos kulcsot a Key Vaulthoz. Jegyezze fel a később használni kívánt titkos kódnevet. Ez az érték nem maga a függvénykulcs, hanem annak a kulcstartónak a neve, amely a függvénykulcsot tartalmazza.

Ha konfigurálnia kell egy tesztkörnyezet átjárójának állomásnevét és átjáró-jogkivonat-titkos kódját a token-hitelesítés használatára az átjárógép(ek) használatával, kövesse az alábbi lépéseket:

  1. A tesztkörnyezet Áttekintés lapján válassza a Konfiguráció és szabályzatok lehetőséget a bal oldali navigációs sávon.

  2. A Konfiguráció és szabályzatok lapon válassza a Tesztkörnyezet beállításai lehetőséget a bal oldali navigáció Beállítások szakaszában.

  3. A Távoli asztal szakaszban:

    • Az Átjáró állomásnév mezőjébe írja be a távoli asztali szolgáltatások átjárójának vagy farmjának teljes tartománynevét vagy IP-címét. Ennek az értéknek meg kell egyeznie az átjárógépeken használt TLS/SSL-tanúsítvány teljes tartománynevével.

    • Az átjáró-jogkivonat esetében adja meg a korábban rögzített titkos kódnevet. Ez az érték nem maga a függvénykulcs, hanem annak a kulcstartónak a neve, amely a függvénykulcsot tartalmazza.

    Képernyőkép a Távoli asztal beállításairól a Tesztkörnyezet beállításai között.

  4. Válassza a Mentés parancsot.

    Feljegyzés

    A Mentés gombra kattintva elfogadja a Távoli asztali átjáró licencfeltételét.

Miután konfigurálta az átjárót és a labort is, a tesztkörnyezet felhasználójának Csatlakozás kiválasztásakor létrehozott RDP-kapcsolatfájl tartalmazza az átjáróhoz való csatlakozáshoz és a jogkivonat-hitelesítés használatához szükséges információkat.

Tesztkörnyezet konfigurációjának automatizálása

  • PowerShell: A Set-DevTestLabGateway.ps1 egy powerShell-példaszkript, amely automatikusan beállítja az átjáró gazdagépnevét és az átjáró jogkivonatának titkos beállításait.

  • ARM: Az Azure DevTest Labs GitHub-adattár átjáróminta ARM-sablonjaival létrehozhat vagy frissíthet tesztkörnyezeteket átjáró gazdagépnévvel és átjárójogkivonat titkos beállításaival.

Hálózati biztonsági csoport konfigurálása

A tesztkörnyezet további védelméhez adjon hozzá egy hálózati biztonsági csoportot (NSG) a virtuális hálózathoz, amelyet a tesztkörnyezeti virtuális gépek a hálózati biztonsági csoport létrehozása, módosítása vagy törlése című cikkben leírtak szerint használnak. Egy NSG például csak az átjárón áthaladó forgalmat engedélyezheti a labor virtuális gépek eléréséhez. A szabályforrás az átjárófarm átjárógépének vagy terheléselosztójának IP-címe.

Képernyőkép egy hálózati biztonsági csoportszabályról.

Következő lépések