En la mayoría de los entornos corporativos, cuando se despliega RMS en los equipos cliente se está hablando de equipos unidos a un dominio que se configuran mediante políticas de grupo, SCCM y herramientas similares de despliegue de escritorios. Pero, ¿y si tiene algunos usuarios que necesitan acceder a contenidos protegidos por RMS desde clientes no unidos a un dominio? ¿Y si también necesitan aplicar protecciones de derechos al contenido? Nada menos que con sus plantillas personalizadas, ¿entonces qué? En algunas circunstancias, puede ser posible configurar RMS en un equipo cliente no unido a un dominio simplemente pidiendo al usuario que abra un documento protegido por derechos, pero que esto funcione o no depende de muchas variables, y no es una solución fiable. Su mejor apuesta es entregar al usuario un script fácil de ejecutar empaquetado con sus plantillas de política de derechos para alinear todos los patos en una fila automáticamente.
A la hora de emprender este camino, hay que tener en cuenta varias cosas:
- ¿Tiene el usuario final una cuenta en su dominio? RMS funcionará desde un ordenador no conectado a un dominio, pero el usuario debe poder autenticarse en el dominio. La cuenta AD del usuario también debe incluir una dirección de correo electrónico en el campo de correo.
- ¿El usuario intentará utilizar RMS desde dentro del cortafuegos corporativo o desde fuera? Si es desde fuera, ¿están disponibles las canalizaciones de certificación y licencia de RMS fuera del cortafuegos corporativo? Si las canalizaciones de RMS no están disponibles fuera del cortafuegos corporativo, ¿tiene el usuario la opción de abrir una conexión VPN?
- ¿El certificado SSL utilizado para proteger los conductos RMS fue emitido por una autoridad de certificación de confianza (VeriSign, Entrust, GoDaddy, etc.)? Si no es así, además de la configuración descrita a continuación, también tendrá que configurar el equipo del usuario para que confíe en el certificado raíz de la CA que emitió el certificado (normalmente una PKI interna).
El siguiente script de PowerShell se diseñó para su uso en Windows 7 y, tal como está escrito, funciona con Office 2010, pero puede modificarse para Office 2007 u Office 2003. Si necesita un script para Windows XP, puede que PowerShell no sea la mejor opción, ya que no está instalado en XP de forma predeterminada. Además, la ruta de la plantilla de directivas de derechos a la que se hace referencia en el script no es válida en XP y XP también requiere que el usuario instale el cliente RMS fat (que está integrado en el sistema operativo en Windows 7).
El script está diseñado para hacer lo siguiente:
- Establezca una confianza IE en la zona "Intranet local" para el nombre del clúster RMS. Por ejemplo: https://rms.example.com
- Configure las claves de registro de la tabla siguiente (tenga en cuenta que algunas son HKLM y otras HKCU).
- Copie los archivos de plantilla de la política de derechos RMS en la ubicación predeterminada para las plantillas en Windows 7 (creando los directorios DRM y Templates si es necesario): %localappdata%\Microsoft\DRM\Templates
Ruta | Nombre | Tipo | Valor |
HKLM\Software\Microsoft\Office\14.0\Common\DRM | CorpLicenseServer | REG_SZ | https://rms. example.com/_wmcs/licensing |
HKLM\Software\Microsoft\Office\14.0\Common\DRM | CorpCertificationServer | REG_SZ | https://rms. example.com/_wmcs/certification |
HKCU\Software\Microsoft\Office\14.0\Common\DRM | AdminTemplatePath | REG_EXPAND_SZ | %localappdata%\Microsoft\DRM\Templates |
HKCU\Software\Microsoft\Office\14.0\Common\DRM | DesactivarCertificaciónDePasaporte | REG_DWORD | 1 |
Para utilizar este script, copie el contenido del script en un archivo y edite las dos primeras variables para que coincidan con el nombre de su clúster de servidores RMS (por ejemplo, rms.ejemplo.com). Si su clúster de servidores RMS tiene un nombre diferente interna y externamente, tendrá que configurar el script adecuadamente para la ubicación desde la que el usuario accederá a RMS. Empaquete la secuencia de comandos junto con el archivo por lotes descrito a continuación para facilitar su uso. De forma predeterminada, PowerShell en Windows 7 deshabilita el uso de scripts sin firmar dentro de la interfaz de PowerShell. Este archivo por lotes evita este problema. Si prefiere ejecutar el script de PowerShell desde la ventana de PowerShell, es posible que tenga que habilitar RemotedSigned para PowerShell ExecutionPolicy. Si desea que el usuario pueda aplicar protecciones de derechos al contenido utilizando sus plantillas de políticas de derechos personalizadas, empaquete también el script junto con los archivos XML para sus plantillas de políticas de derechos (por ejemplo, "Sólo lectura para empleados.xml" y "Permitir impresión para empleados.xml"). La secuencia de comandos y el archivo por lotes suponen que el archivo por lotes y los archivos XML se encuentran en el mismo directorio que la secuencia de comandos de PowerShell.
Si decide no distribuir sus plantillas de directivas de derechos, también puede omitir la configuración del registro AdminTemplatePath. La configuración DisablePassportCertification se incluye porque dejar activada la certificación de pasaporte puede causar confusión a los usuarios finales que intentan certificarse en su entorno RMS corporativo, no en el RMS basado en pasaporte de Microsoft. Sin embargo, esta configuración no es necesaria para la funcionalidad de RMS y puede eliminarla libremente.
Tenga en cuenta que este script debe ejecutarse como administrador para que pueda establecer la configuración del registro HKLM. Para utilizar el script con el archivo por lotes, haga clic con el botón derecho del ratón en el nombre del archivo por lotes en el Explorador de Windows y elija la opción "Ejecutar como administrador". Para utilizar la secuencia de comandos sin el archivo por lotes, abra una ventana de PowerShell mediante la opción "Ejecutar como administrador", cambie al directorio en el que colocó la secuencia de comandos de PowerShell y las plantillas de directivas de derechos, y ejecute la secuencia de comandos desde allí.
Configurar_RMS.ps1
# Set variables # Set the $DomainName variable to the DNS domain name of your RMS server cluster # (e.g. example.com, example.local). If your internal RMS cluster name differs from your # external RMS cluster name (e.g. internal is rms.example.local, external is rms.example.com), # set the domain name that's appropriate for the end user--external domain if the user will be # contacting the RMS server cluster from outside the firewall or internal domain name if the # user will be contacting the RMS server cluster from inside the firewall or over a VPN # connection. $DomainName = "example.com" # Set the @RMSClusterName variable to the short DNS alias name that represents the RMS server # cluster--e.g. RMS. $RMSClusterName = "rms" # Functionality to quit if the requested Office version is not installed. Do not change # this variable. $Continue = $true # Registry key paths. Do not change these variables unless you are modifying the script # to support a different version of Office. Office 2010 uses 14.0 in the paths, Office 2007 # uses 12.0 in the paths, and Office 2003 uses 11.0 in the paths. $IETrust = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains" $HKLMPath = "HKLM:\Software\Microsoft\Office\14.0\Common" $HKCUPath = "HKCU:\Software\Microsoft\Office\14.0\Common" # Set IE trust in Local Intranet zone If (Test-Path "$IETrust\$DomainName") { # Zone already exists for requested $DomainName If (Test-Path "$IETrust\$DomainName\$RMSClusterName") { # Zone already exists for requested $DomainName and $RMSClusterName. # Set the HTTPS value even if it already exists. Write-Host "`n`nCreating IE trust in existing RMS cluster name...`n`n" New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https ` -PropertyType DWord -Value 1 -Force } else { # Requested $RMSClusterName does not exist. Create it and the HTTPS value. Write-Host "`n`nCreating RMS cluster name zone...`n`n" New-Item "$IETrust\$DomainName\$RMSClusterName" Write-Host "`n`nCreating IE trust in new RMS cluster name zone...`n`n" New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https ` -PropertyType DWord -Value 1 } } else { # Zone does not exist for requested $DomainName. Create it, $RMSClusterName # and the HTTPS value. Write-Host "`n`nCreating domain name zone...`n`n" New-Item "$IETrust\$DomainName" Write-Host "`n`nCreating RMS cluster name zone in new domain name zone...`n`n" New-Item "$IETrust\$DomainName\$RMSClusterName" Write-Host "`n`nCreating IE trust in new RMS and domain name zones...`n`n" New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https ` -PropertyType DWord -Value 1 } # Set registry key options for location of the RMS server cluster for the specified # Microsoft Office version. If (Test-Path "$HKLMPath") { # The specified Microsoft Office version appears to be installed. If (Test-Path "$HKLMPath\DRM") { # DRM key already exists. Create the registry values, even if they already exist. Write-Host "`n`nCreating HKLM registry keys in pre-existing DRM key...`n`n" New-ItemProperty "$HKLMPath\DRM" -Name CorpLicenseServer -PropertyType String ` -Value https://$RMSClusterName.$DomainName/_wmcs/licensing -Force New-ItemProperty "$HKLMPath\DRM" -Name CorpCertificationServer -PropertyType String ` -Value https://$RMSClusterName.$DomainName/_wmcs/certification -Force } else { # DRM key does not exist. Create it and the registry keys. Write-Host "`n`nCreating new DRM key under HKLM path...`n`n" New-Item "$HKLMPath\DRM" Write-Host "`n`nCreating HKLM registry keys in new DRM key...`n`n" New-ItemProperty "$HKLMPath\DRM" -Name CorpLicenseServer -PropertyType String ` -Value https://$RMSClusterName.$DomainName/_wmcs/licensing New-ItemProperty "$HKLMPath\DRM" -Name CorpCertificationServer -PropertyType String ` -Value https://$RMSClusterName.$DomainName/_wmcs/certification } } else { # WARNING: Script will stop at this point and make no further changes if the correct # HKLM path for the specified Office version is not found. Write-Host "The specified Microsoft Office version does not appear to be installed." $Continue = $false } If ($continue) { # Set registry key options in HKCU for the specified Office version. If (Test-Path "$HKCUPath") { # The specified Microsoft Office version appears to be installed. If (Test-Path "$HKCUPath\DRM") { # DRM key already exists. Create the registry values, even if they already exist. Write-Host "`n`nCreating HKCU registry keys in pre-existing DRM key...`n`n" New-ItemProperty "$HKCUPath\DRM" -Name AdminTemplatePath -PropertyType ExpandString ` -Value %localappdata%\Microsoft\DRM\Templates -Force New-ItemProperty "$HKCUPath\DRM" -Name DisablePassportCertification ` -PropertyType DWord -Value 1 -Force } else { # DRM key does not exist. Create it and the registry keys. Write-Host "`n`nCreating new DRM key under HKCU path...`n`n" New-Item "$HKCUPath\DRM" Write-Host "`n`nCreating HKCU registry keys in new DRM key...`n`n" New-ItemProperty "$HKCUPath\DRM" -Name AdminTemplatePath -PropertyType ExpandString ` -Value %localappdata%\Microsoft\DRM\Templates New-ItemProperty "$HKCUPath\DRM" -Name DisablePassportCertification ` -PropertyType DWord -Value 1 } } else { # WARNING: Script will stop at this point and make no further changes if the correct # HKCU path for the specified Office version is not found. Write-Host "The specified Microsoft Office version does not appear to be installed." $Continue = $false } # Install rights policy templates. If (Test-Path "$env:localappdata\Microsoft\DRM") { # DRM folder already exists. If (Test-Path "$env:localappdata\Microsoft\DRM\Templates") { # Templates folder under DRM already exists. Copy templates to it, # overwriting existing files. Write-Host "`n`nCopying policy templates to pre-existing Templates folder...`n`n" Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates" } else { # Templates folder under DRM does not exist. Create it and copy templates to it, # overwriting existing files. Write-Host "`n`nCreating Templates folder in pre-existing DRM folder...`n`n" New-Item "$env:localappdata\Microsoft\DRM\Templates" -Type Directory Write-Host "`n`nCopying policy templates to new Templates folder...`n`n" Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates" } } else { # DRM folder does not exist. Create it and the Templates folder and copy # templates to it, overwriting existing files. Write-Host "`n`nCreating DRM folder...`n`n" New-Item "$env:localappdata\Microsoft\DRM" -Type Directory Write-Host "`n`nCreating Templates folder in new DRM folder...`n`n" New-Item "$env:localappdata\Microsoft\DRM\Templates" -Type Directory Write-Host "`n`nCopying rights policy templates to new Templates folder...`n`n" Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates" } }
Configurar_RMS.bat
pushd %~dp0 powershell.exe -command ^ "& {set-executionpolicy Remotesigned -Scope Process; .'.\Configure_RMS.ps1' }" popd pause
Una vez ejecutado el script, el usuario final debería poder abrir contenidos protegidos por derechos existentes o aplicar protecciones de derechos a contenidos. En muchos casos, se pedirá al usuario que introduzca su nombre de usuario y contraseña para su dominio de Active Directory cuando utilice RMS. Si el usuario está conectado a su red interna mediante una conexión VPN, es posible que RMS pueda recoger las credenciales del usuario de la VPN y no solicite al usuario que se autentique.
Es posible que sepa que existen dos enfoques para configurar la ubicación del clúster del servidor RMS en el registro de los clientes RMS. El enfoque utilizado aquí es específico para las aplicaciones de Office, utilizando la configuración del registro CorpLicenseServer y CorpCertificationServer. La otra opción es utilizar las configuraciones del registro Activation y EnterprisePublishing, que son globales y se aplican a todas las aplicaciones que utilizan RMS, no sólo Office. El problema de un enfoque basado en secuencias de comandos con estas configuraciones es que las configuraciones van en diferentes ubicaciones del registro en función de si el sistema operativo es de 32 bits o de 64 bits y de si la versión de Office (u otra aplicación) utilizada es de 32 bits o de 64 bits. Sin embargo, si necesita admitir RMS en aplicaciones de terceros, tendrá que utilizar la configuración de Activación y EnterprisePublishing. Si necesita seguir este camino y no está seguro de si está trabajando con 32 o 64 bits, siempre puede configurar estos parámetros tanto en el árbol normal del registro como en el árbol wow6432node. En el lado positivo, si utilizas las configuraciones Activation y EnterprisePublishing, no necesitas saber qué versión de Office está ejecutando el usuario. (RMS sólo funciona con Office 2003 y superiores).