Le compte à rebours est lancé pour Keyfactor Tech Days - réservez votre place dès aujourd'hui !

  • Accueil
  • Blog
  • Configuration d'une machine cliente RMS non reliée à un domaine

Configuration d'une machine cliente RMS non reliée à un domaine

Dans la plupart des environnements d'entreprise, lorsque vous déployez RMS sur les machines clientes, vous parlez de machines connectées à un domaine que vous configurez via la stratégie de groupe, SCCM et d'autres outils de déploiement de postes de travail similaires. Mais que se passe-t-il si vous avez quelques utilisateurs qui ont besoin d'accéder à des contenus protégés par RMS à partir de clients non reliés à un domaine ? Et s'ils ont également besoin d'appliquer des protections de droits au contenu ? Avec vos modèles personnalisés en plus, que se passe-t-il ? Dans certaines circonstances, il peut être possible de configurer RMS sur un ordinateur client non joint à un domaine en demandant simplement à l'utilisateur d'ouvrir un document protégé par des droits, mais cela dépend de beaucoup de variables, et ce n'est pas une solution fiable. La meilleure solution consiste à remettre à l'utilisateur un script facile à exécuter, fourni avec vos modèles de politique de droits, afin d'aligner automatiquement tous les éléments.

Les éléments à prendre en compte lorsque vous vous engagez dans cette voie sont les suivants :

  • L'utilisateur final dispose-t-il d'un compte dans votre domaine ? RMS fonctionnera à partir d'un ordinateur non relié à un domaine, mais l'utilisateur doit toujours être en mesure de s'authentifier auprès du domaine. Le compte AD de l'utilisateur doit également comporter une adresse électronique dans le champ courrier.
  • L'utilisateur tentera-t-il d'utiliser RMS depuis l'intérieur du pare-feu de l'entreprise ou depuis l'extérieur ? Si l'utilisateur se trouve à l'extérieur, les processus de certification et de licence du SGI sont-ils disponibles à l'extérieur du pare-feu de l'entreprise ? Si les pipelines RMS ne sont pas disponibles à l'extérieur du pare-feu de l'entreprise, l'utilisateur a-t-il la possibilité d'ouvrir une connexion VPN ?
  • Le certificat SSL utilisé pour sécuriser les pipelines RMS a-t-il été émis par une autorité de certification de confiance (VeriSign, Entrust, GoDaddy, etc.) ? Si ce n'est pas le cas, en plus de la configuration décrite ci-dessous, vous devrez également configurer la machine de l'utilisateur pour qu'elle fasse confiance au certificat racine de l'autorité de certification qui a émis le certificat (généralement une autorité interne PKI).

Le script PowerShell suivant a été conçu pour Windows 7 et, tel qu'il est écrit, fonctionne avec Office 2010, mais peut être modifié pour Office 2007 ou Office 2003. Si vous avez besoin d'un script pour Windows XP, PowerShell n'est peut-être pas le meilleur choix, car il n'est pas installé par défaut sur XP. De plus, le chemin du modèle de stratégie de droits référencé dans le script n'est pas valide sur XP et XP nécessite également que l'utilisateur installe le client RMS fat (qui est intégré au système d'exploitation sur Windows 7).

Le script est conçu pour effectuer les opérations suivantes :

  1. Définir une confiance IE dans la zone "Intranet local" pour le nom du cluster RMS. Par exemple : https://rms.example.com
  2. Définissez les clés de registre dans le tableau ci-dessous (notez que certaines sont HKLM et d'autres HKCU).
  3. Copiez vos fichiers de modèles de politique de droits RMS à l'emplacement par défaut des modèles sous Windows 7 (en créant les répertoires DRM et Templates si nécessaire) : %localappdata%\NMicrosoft\NDRM\NTemplates
Chemin d'accès Nom Type Valeur
HKLM\N-Software\NMicrosoft\NOffice\N14.0\NCommon\NDRM CorpLicenseServer REG_SZ https://rms. example.com/_wmcs/licensing
HKLM\N-Software\NMicrosoft\NOffice\N14.0\NCommon\NDRM CorpCertificationServer REG_SZ https://rms. example.com/_wmcs/certification
HKCU\N-Software\NMicrosoft\NOffice\N14.0\NCommon\NDRM Chemin d'accès au modèle d'administration REG_EXPAND_SZ %localappdata%\NMicrosoft\NDRM\NTemplates
HKCU\N-Software\NMicrosoft\NOffice\N14.0\NCommon\NDRM Désactiver la certification du passeport REG_DWORD 1

Pour utiliser ce script, copiez le contenu du script dans un fichier et modifiez les deux premières variables pour qu'elles correspondent au nom de votre cluster de serveurs RMS (par exemple rms.example.com). Si votre cluster de serveurs RMS a un nom différent en interne et en externe, vous devrez configurer le script en fonction de l'emplacement à partir duquel l'utilisateur accèdera à RMS. Pour faciliter l'utilisation, regroupez le script avec le fichier batch décrit ci-dessous. PowerShell sous Windows 7 désactive l'utilisation de scripts non signés dans l'interface PowerShell. Ce fichier batch permet de contourner ce problème. Si vous préférez exécuter le script PowerShell à partir de la fenêtre PowerShell, vous devrez peut-être activer RemotedSigned pour la politique d'exécution PowerShell. Si vous souhaitez que l'utilisateur puisse appliquer des protections de droits au contenu à l'aide de vos modèles de politique de droits personnalisés, compilez le script avec les fichiers XML pour vos modèles de politique de droits (par exemple, "Lecture seule pour les employés.xml" et "Autoriser l'impression pour les employés.xml"). Le script et le fichier batch supposent que le fichier batch et les fichiers XML se trouvent dans le même répertoire que le script PowerShell.

Si vous décidez de ne pas distribuer vos modèles de stratégie de droits, vous pouvez également ne pas définir le paramètre de registre AdminTemplatePath. Le paramètre DisablePassportCertification est inclus car le fait de laisser la certification de passeport activée peut être source de confusion pour les utilisateurs finaux qui essaient de se certifier dans l'environnement RMS de leur entreprise, et non dans le RMS de Microsoft basé sur les passeports. Toutefois, ce paramètre n'est pas nécessaire à la fonctionnalité du RMS et vous pouvez le supprimer.

Notez que ce script doit être exécuté en tant qu'administrateur afin qu'il puisse définir les paramètres du registre HKLM. Pour utiliser le script avec le fichier batch, cliquez avec le bouton droit de la souris sur le nom du fichier batch dans l'explorateur Windows et choisissez "Exécuter en tant qu'administrateur". Pour utiliser le script sans le fichier batch, ouvrez une fenêtre PowerShell en utilisant l'option "Exécuter en tant qu'administrateur", accédez au répertoire dans lequel vous avez placé le script PowerShell et les modèles de stratégie de droits, et exécutez le script à partir de là.

Configure_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"
   }
}

Configure_RMS.bat

pushd %~dp0
powershell.exe -command ^
  "& {set-executionpolicy Remotesigned -Scope Process; .'.\Configure_RMS.ps1' }"
popd
pause

Une fois le script exécuté, l'utilisateur final devrait être en mesure d'ouvrir un contenu existant protégé par des droits ou d'appliquer des protections de droits à un contenu. Dans de nombreux cas, l'utilisateur sera invité à saisir son nom d'utilisateur et son mot de passe pour votre domaine Active Directory lorsqu'il utilise RMS. Si l'utilisateur est connecté à votre réseau interne à l'aide d'une connexion VPN, RMS peut être en mesure de récupérer les informations d'identification de l'utilisateur à partir du VPN et ne demandera pas à l'utilisateur de s'authentifier.

Vous savez peut-être qu'il existe deux approches pour configurer l'emplacement du cluster de serveurs RMS dans le registre des clients RMS. L'approche utilisée ici est spécifique aux applications Office et utilise les paramètres de registre CorpLicenseServer et CorpCertificationServer. L'autre choix consiste à utiliser les paramètres de registre Activation et EnterprisePublishing, qui sont globaux et s'appliquent à toutes les applications qui utilisent RMS, et pas seulement Office. Le problème d'une approche scriptée de ces paramètres est qu'ils sont placés à différents endroits du registre selon que le système d'exploitation est 32 bits ou 64 bits et que la version d'Office (ou d'une autre application) utilisée est 32 bits ou 64 bits. Toutefois, si vous devez prendre en charge RMS dans des applications tierces, vous devrez utiliser les paramètres Activation et EnterprisePublishing. Si vous devez suivre cette voie et que vous ne savez pas si vous travaillez en 32 bits ou en 64 bits, vous pouvez toujours configurer ces paramètres à la fois dans l'arbre normal du registre et dans l'arbre wow6432node. D'un autre côté, si vous utilisez les paramètres Activation et EnterprisePublishing, vous n'avez pas besoin de connaître la version d'Office utilisée par l'utilisateur. (RMS ne fonctionne qu'avec Office 2003 et les versions ultérieures).