Accéder au contenu principal

SharePoint : Bug sur la gestion des permissions et la synchronisation Office

 Nous avons vu dans un précédent message comment supprimer les accès depuis Office vers des listes SharePoint :

Tout ceci fonctionne parfaitement sauf dans un contexte particulier que je vais présenter.

Attention:
Il faut noter que ce cas a été constaté sur SharePoint 2007, mais qu’il persiste avec SharePoint 2013 (et très certainement avec 2010). Il est fort probable qu’il soit aussi présent dans SharePoint OnLine.


Définition du besoin des utilisateurs

Les utilisateurs souhaitent un cas assez simple :

  • Permettre à des utilisateurs de contribuer à une liste de type TaskList sans pour autant laisser ces mêmes “Contributeurs” la synchronisation via Outlook

La solution pour répondre à ce besoin est bien sur d’utiliser la procédure présentée dans l’article précédent :


Mise en place de la réponse à ce besoin

On édite ainsi le niveau de permissions “Edit” dans SharePoint 2013 (qui est associé avec les Membres)

image

On désactive les cases (dans le groupe Site Permissions):

  • Use Remote Interfaces
  • Use Client Integration Features

image

On enregistre alors cette configuration et on ajoute l’utilisateur souhaité dans les membres de ce site, qui est de base associé au niveau de permissions “Edit”

image

Mon compte est donc ajouté dans les membres contributeurs de ce site, sans bénéficier de la synchronisation avec Office (et Outlook)

image

En se connectant sur le site avec mon compte membre, je vois dans la liste “Mytask” créée pour l’occasion, héritant des permissions du site, que les boutons Office sont désactivés

image

Jusqu’ici, tout se passe parfaitement comme le souhaitent les utilisateurs.


Cas du bug

Toujours sur ce même site, le responsable souhaite ajouter une librairie documentaire afin de mettre à la disposition des contributeurs la documentation d’utilisation de ce site et de la liste des taches.

Cette documentation ne doit être disponible qu’en lecture pour ces utilisateurs et il est donc évident que l’héritage des permissions ne peut pas être conservé pour ces membres.

Nous allons donc dans les paramètres de la librairie des documentations (créée pour l’occasion)

image

Puis, il faut éditer les permissions de cette liste

image

Et casser l’héritage des permissions du parent (donc du site)

image

On choisi le groupe membre et on clique sur “Edit User Permission”

image

On change les permission de ce groupe avec uniquement le droit “Read” sur cette liste et on valide par OK

image

Maintenant, si on retourne sur le site, et la liste des taches, avec le compte utilisateur apartenant au groupe des membres

image

On voit apparaitre les boutons de synchronisation avec Office, alors que cela ne devrait pas arriver !!!


Explication du Bug

Le cas s’explique par un comportement natif de SharePoint suite à cette action de cassure d’héritage des permissions dans un niveau du site.

En effet, si on retourne dans les permissions à la racine du site pour le groupe “Membre”, on voit de base qu’il est censé avoir uniquement le niveau de permission “Edit”

image

Mais dans le détails, un second niveau de permissions apparaît alors “Limited Access”

image

Ce niveau de permission n’est pas supprimable, même si on annule la cassure d’héritage, il reste présent, comme dans la capture ci dessous

image

En allant dans les détails des niveaux de permissions, on retrouve ce niveau “Limited Access”

image

Et le détail des permissions associées à ce niveau nous montre qu’il est autorisé pour la synchronisation avec Office

image

L’interface graphique ne permet pas de changer ces options !!!

On trouve d’ailleurs les détails des permissions associées à ce niveau site le site Microsoft :

image


Work Around pour annuler cette effet

Il faut savoir qu’il n’y a pas de patch pour ce cas qui a aussi été constaté dans un autre contexte (les sites Web Publics basés sur SharePoint):

Cela ne nous aide pas dans notre contexte, car nous sommes uniquement sous SharePoint Foundation. Il n’est pas possible de supprimer le niveau de permission “Limited Access” en utilisant le code PowerShell disponible ici :

$web = Get-SPWeb -Identity http://MySharePointWebApp/sites/PermissionMgt $PermissionLevel=$web.RoleDefinitions $PermissionLevel.Delete("Limited Access")

Le retour d’erreur de cette commande est le suivant :

  • You cannot remove the Limited Access or Full Control permission levels

La solution est donc d’utiliser PowerShell pour modifier les permissions associées avec ce niveau et supprimer la synchronisation Office. Le code est le suivant :

function Change-Permission-Level([string]$SiteURL, [string]$PermissionName)
{
    $web = Get-SPWeb -Identity $SiteURL
    $PermissionLevels=$web.RoleDefinitions
    foreach($MyPermission in $PermissionLevels)
    {
        Write-Host " -------------------------------"
        Write-Host "Permission Name:", $MyPermission.Name
        Write-Host "  -> Permission Description:", $MyPermission.Description
        Write-Host "  -> Permission Hidden:", $MyPermission.Hidden
        Write-Host "  -> Permission BasePermissions:", $MyPermission.BasePermissions
        Write-Host " -------------------------------"

        if($MyPermission.Name -eq $PermissionName)
        {
            $MyPermission.BasePermissions = "ViewFormPages, Open, BrowseUserInfo"
            $MyPermission.Update()
            Write-Host "  -> Permission Changed remove Office Integration !!!"
        }
        Write-Host " -------------------------------"
    }

    $web.dispose()
}

Change-Permission-Level “http://MySharePointWebApp/sites/PermissionMgt” "Limited Access"

Une fois la commande exécutée, on peut retourner dans le site avec le compte membre et constater que les options Office ont disparu

image

Cette action semble changer les permissions du niveau “Limited Access” pour de bon et la synchronisation ne revient plus.


Conclusion

Ce bug a été constaté par des utilisateurs et expliquée avec le Support Microsoft, notamment Ovidiu Stefanescu que je remercie pour son aide.

Le Work Around est fonctionnel et il y a peu de chance qu’un patch soit développé pour palier à ce cas spécifique, il faut aussi savoir que ce script fonctionne aussi pour SharePoint 2007 (avec une petite adaptation pour le départ).

En vous souhaitant une bonne lecture.

Romelard Fabrice [MBA]

Commentaires

Posts les plus consultés de ce blog

Redonner vie à une Microsoft Surface RT : le guide ultime vers Linux !

Vous avez une vieille Microsoft Surface RT qui traîne dans un tiroir ? Vous savez, cette tablette de 2012 devenue inutilisable depuis l'abandon officiel de Windows RT par Microsoft ? Ne la jetez surtout pas ! Dans ma dernière vidéo, je vous montre comment transformer cet appareil, autrefois considéré comme un "presse-papier", en une tablette Linux moderne et parfaitement fonctionnelle . Pourquoi ce projet ? L'objectif est simple : transformer ce matériel pour en faire un dashboard dédié à mon système Home Assistant. En installant postmarketOS , une version de Linux spécialement conçue pour les appareils ARM abandonnés, on redonne une seconde jeunesse à cette machine . Ce que vous allez apprendre dans ce tutoriel complet : La libération du matériel : Comment réinstaller la version d'origine pour passer outre les blocages de Windows 8.1 . Jailbreak & Secure Boot : La procédure indispensable pour déverrouiller la machine et permettre l'installation d...

Série de Videos sur Home Assistant intégrant la production Photovoltaïque

 Un certain nombre de vidéos sont en ligne pour intégrer sa production photovoltaïque dans Home Assistant en partant de la base. Installation de Home Assistant: On peut ensuite intégrer les composant des Micro-Onduleurs Enphase, mais aussi les batteries Enphase: Ou encore le composant de contrôle Ecojoko: Ce qui permet alors de faire des comparaisons entre les valeurs capturées: Des videos seront encore publiés dans les prochaines semaines sur différents aspects de cette solution. Fab

Mixer les batteries Enphase et Zendure : La solution ultime pour l'autoconsommation ?

Introduction Vous avez déjà une installation solaire équipée de micro-onduleurs Enphase , mais vous trouvez que le stockage officiel de la marque est trop coûteux ou difficile à installer en DIY ? Vous n'êtes pas seul. Aujourd'hui, je vous partage mon retour d'expérience complet sur une configuration qui intrigue beaucoup de monde : le couplage d'un système Zendure SolarFlow avec un environnement Enphase existant. Pourquoi vouloir mixer ces deux marques ? Le système Enphase est une référence en termes de fiabilité, mais l'ajout de batteries IQ Battery peut représenter un investissement lourd. À l'inverse, Zendure propose avec le SolarFlow une solution de stockage plug-and-play extrêmement flexible et souvent plus abordable. L'idée est simple : utiliser le SolarFlow comme "tampon" entre vos panneaux et vos micro-onduleurs pour stocker l'excédent de la journée et le réinjecter la nuit. Le montage : Est-ce vraiment compliqué ? Dans ma dernière ...