145 lines
6.5 KiB
Markdown
145 lines
6.5 KiB
Markdown
# 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:
|
|
|
|
```powershell
|
|
$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:
|
|
|
|
```powershell
|
|
-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](https://github.com/Azure-Samples/azure-files-samples/releases).
|
|
3. Ejecute el configurador incluido en el paquete de servidor:
|
|
|
|
```powershell
|
|
$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:
|
|
|
|
```bat
|
|
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:
|
|
|
|
```powershell
|
|
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:
|
|
|
|
- [Autenticación AD DS para Azure Files](https://learn.microsoft.com/azure/storage/files/storage-files-identity-ad-ds-enable)
|
|
- [Permisos SMB para FSLogix](https://learn.microsoft.com/fslogix/how-to-configure-storage-permissions)
|
|
- [Contenedores de perfil FSLogix](https://learn.microsoft.com/fslogix/how-to-configure-profile-containers)
|
|
- [Configuración ObjectSpecific de FSLogix](https://learn.microsoft.com/fslogix/how-to-configure-object-specific-settings)
|
|
- [Redirección de carpetas](https://learn.microsoft.com/windows-server/storage/folder-redirection/deploy-folder-redirection)
|