Role-Based Access Control et les groupes de sécurité CS*Administrator

Role-Based Access Control et les groupes de sécurité CS*Administrator

17 novembre 2015 Non Par Stefan Plizga

Lorsqu’on a un déploiement Lync Server 2010/2013 ou Skype for Business Server 2015, il est possible de définir des droits granulaires pour la gestion de certaines parties de l’infrastructure ou des utlisateurs. Des groupes existent pour cela, par exemple CSUserAdministator, CSVoiceAdministrator et bien d’autres… Ils respectent tous le nommage CS*Administrator.

Chaque groupe donne la possibilité d’exécuter des commandes d’administration spécifiques, mais il s’avère que cela ne fonctionne pas lorsqu’on utilise Lync Server Management Shell ou Skype for Business Server Management Shell. Pourquoi ? Parce que ces Shells n’utilisent pas les groupes CS*Administrator qui permettent de bénéficier de RBAC mais utilisent uniquement les groupes RTCUniversalUserAdmins ou RTCUniversalServerAdmins au niveau de la vérification des droits.

Pour bien gérer la délégation de droits et profiter de RBAC, il faut bien utiliser les groupes CS*Administrator mais aussi se connecter à Management Shell en Remote PowerShell, de la manière suivante :

  • Ouvrir une fenêtre PowerShell classique depuis n’importe quel PC (pas Lync Server Managment Shell ou Skype for Business Management Shell) et taper :

$cred = Get-Credential "<Compte AD de l'administrateur>
$session = New-PSSession -ConnectionURI “https://<FQDN d'un Front End>/OcsPowershell” -Credential $cred
Import-PsSession $session

  • Exécuter les commandes souhaitées
  • A la fin, arrêter la session Remote PowerShell par :

Remove-PsSession $session

Dans la quasi-totalité des cas, cela suffira pour que les membres des groupes CS*Administrator puissent exécuter les cmdlets Lync Server / Skype for Business Server. Dans de très rares cas, il y aura quand même le message :

Active Directory operation failed on "". You cannot retry this operation: "Access is denied
00000005: SecErr: DSID-03152612, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

Cela se produit notamment dans le cas où il manque des permissions, ce qui est rare mais c’est le cas lorsqu’on veut gérer les Common Area Phones, car les objets créés dans AD sont des contacts. En effet, par défaut RBAC ne s’applique pas aux objets Contact. Pour autoriser la gestion des Common Area Phones via les cmdlets en Remote PowerShell, il faut d’abord ajouter des droits sur l’OU qui contiendra les objets Contact représentant ces téléphones. La commande à exécuter est simple :

Grant-CsOuPermission -OU "OU=Common Area Phones,DC=contoso,DC=com" -ObjectType "contact"

Une fois cette commande exécutée, la gestion des Common Area Phones en Remote PowerShell est possible.

RBAC dans Lync Server / Skype for Business Server est beaucoup plus poussé : en effet, depuis Lync Server 2013, il est possible de créer des rôles personnalisés pour être très ganulaire. Aussi, RBAC permet également de séparer l’administration des utilisateurs d’une OU de celle d’une autre, en créant des roles RBAC spécifiques qui s’appliquent à une OU en particulier. Je n’entrerai pas dans le détail de cela ici, mais peut-être une procaine fois.

Pour approfondir, on trouve de la lecture sur https://technet.microsoft.com/en-us/library/gg425917(v=ocs.15).aspx.

— Stefan