Files
SGU-CredentialProvider/docs/user-roaming.md
T

6.5 KiB

User roaming por rol en Azure

El despliegue Azure puede crear almacenamiento privado y políticas distintas para cada tipo de cuenta SGU:

Rol Datos conservados Implementación
AL Desktop y Documents Redirección de carpetas a Azure Files; el resto del perfil local no es autoritativo y no se copia al iniciar o cerrar sesión.
AD / DO Perfil completo Un contenedor VHDX único de FSLogix montado desde Azure Files.

Linux conserva su solución nativa de directorios personales; no intenta montar un perfil de Windows.

Arquitectura y seguridad

infra/azure/main.bicep crea, por omisión, una cuenta StorageV2 dedicada con dos recursos SMB (profiles y redirected), soft delete de 14 días, un private endpoint y la zona privatelink.file.<sufijo-de-Azure> ligada a la VNet. El endpoint público queda deshabilitado. La VNet entrega el DNS del controlador de dominio a los clientes P2S para que el nombre de Azure Files resuelva a la IP privada. La cuenta de staging usada para transferir paquetes no se reutiliza ni se convierte en almacenamiento de perfiles.

Los clientes deben usar el P2S de Azure o disponer de otra ruta privada a la VNet. El modo de enrolamiento público directo no puede usar estos recursos y el script de despliegue exige -DeployUserRoaming $false cuando no se despliega el gateway P2S.

Azure Files se integra con el AD DS SGU, no con cuentas o claves guardadas en cada cliente. El script configura AES-256 para Kerberos, una ACL de mínimo privilegio con CREATOR OWNER, administradores y los grupos del rol, y permiso SMB predeterminado para identidades autenticadas. La ACL NTFS mantiene aislado el contenido de cada usuario. La clave de la cuenta se usa en memoria sólo para crear las ACL iniciales y no se escribe en el dominio, en GPO ni en disco.

1. Desplegar la infraestructura

El soporte está activado por omisión para despliegues P2S:

$azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
  -SubscriptionId '00000000-0000-0000-0000-000000000000' `
  -ResourceGroupName 'rg-sgu-lab' `
  -Location 'centralus' `
  -AdministratorUsername 'azureadmin' `
  -P2sRootCertificatePath $p2s.RootCertificatePath

$azure.UserRoamingStorageAccountName
$azure.FsLogixProfilesSharePath
$azure.RedirectedFoldersSharePath
$azure.UserRoamingSetupArguments

Puede definirse un nombre globalmente único con -UserRoamingStorageAccountName. Para omitir completamente el almacenamiento:

-DeployUserRoaming $false

2. Unir Azure Files al dominio y publicar las GPO

Primero termine Initialize-SguDomainController.ps1. Después, en Windows PowerShell 5.1 elevado dentro del DC:

  1. Instale Azure PowerShell actual (Az.Accounts y Az.Storage 8.1 o posterior).
  2. Descargue y extraiga el módulo oficial AzFilesHybrid.
  3. Ejecute el configurador incluido en el paquete de servidor:
$storageAccountName = '<valor UserRoamingStorageAccountName del despliegue>'
$parameters = @{
  SubscriptionId = '00000000-0000-0000-0000-000000000000'
  ResourceGroupName = 'rg-sgu-lab'
  StorageAccountName = $storageAccountName
  FsLogixProfilesShareName = 'profiles'
  RedirectedFoldersShareName = 'redirected'
  AzFilesHybridModulePath = 'C:\Admin\AzFilesHybrid'
  UseDeviceAuthentication = $true
}
.\payload\scripts\Enable-SguAzureUserRoaming.ps1 @parameters

La operación es idempotente. Crea OU=AzureFilesConfig, une la cuenta de almacenamiento al bosque y publica dos GPO:

  • SGU - AL redirected folders, ligada a OU=Alumnos;
  • SGU - AD-DO FSLogix profiles, ligada a OU=Laboratorio y habilitada sólo mediante configuración ObjectSpecific para los SID de SGU-Docentes y SGU-Administrativos.

Por seguridad, el script no borra perfiles locales existentes de AD/DO. Antes de un piloto real, migre o respalde su contenido y elimínelos manualmente. El switch -DeleteExistingStaffLocalProfiles habilita la opción de FSLogix que los elimina al aplicar el contenedor; úselo sólo después de respaldar y validar.

La identidad de Azure Files queda con contraseña sin expiración en la OU dedicada para evitar que una cuenta de equipo sin agente pierda Kerberos a los 30 días. Si la política exige rotación, use periódicamente el procedimiento oficial Update-AzStorageAccountADObjectPassword y no cambie sólo un lado.

3. Instalar FSLogix en las imágenes Windows

FSLogix no forma parte de Windows y su licencia debe validarse para las ediciones y suscripciones usadas. Descargue FSLogixAppsSetup.exe directamente de Microsoft y agréguelo a la imagen base, o páselo como quinto argumento al enrolamiento Azure:

Start-SguAzureClientEnrollment.cmd 10.77.0.4 C:\SGU\vpn.zip C:\SGU\client.pfx C:\SGU\root.cer C:\SGU\FSLogixAppsSetup.exe

Install-SguFsLogix.ps1 exige una firma Authenticode válida de Microsoft, instala silenciosamente sin reiniciar y comprueba frxsvc y frx.exe. Si la imagen ya contiene FSLogix, el instalador puede omitirse. Microsoft recomienda mantener la versión más reciente; FSLogix no se actualiza mediante Windows Update.

4. Validar un piloto

Después de gpupdate /force y reiniciar un cliente:

Resolve-DnsName "$($azure.UserRoamingStorageAccountName).file.core.windows.net"
Test-NetConnection "$($azure.UserRoamingStorageAccountName).file.core.windows.net" -Port 445
Get-Service frxsvc
Get-ItemProperty 'HKLM:\SOFTWARE\FSLogix\Profiles'
& 'C:\Program Files\FSLogix\Apps\frx.exe' list-redirects

La resolución debe devolver la IP privada del endpoint. Inicie primero con un AL nuevo y confirme las ubicaciones de Escritorio/Documentos; luego pruebe un AD o DO sin perfil local previo y confirme la creación de un VHDX en profiles. No active el borrado de perfiles locales ni despliegue a todos los usuarios hasta probar inicio, cierre, desconexión de VPN, cuota y restauración.

Referencias de Microsoft: