Les utilisateurs anonymes ne peuvent pas ouvrir de fichiers XLSX à partir d’une bibliothèque de documents

Symptômes

Prenons l’exemple du scénario suivant :

  • Un site de publication ou un site dont la fonctionnalité « ViewFormPagesLockDown » est activée
  • Le site est configuré pour l’accès anonyme
  • Le site contient une bibliothèque de documents
  • La bibliothèque de documents contient un fichier avec une extension. XLSX (format Excel 2007 ou supérieur)
  • Un utilisateur anonyme double-clique sur le . XLSX pour l’ouvrir

Sharepoint tente d’ouvrir le fichier à l’aide de XL Web Service. L’utilisateur voit le message « Opération en cours », puis reçoit l’erreur suivante :

Excel Web Access une erreur s’est produite.
Accès refusé

Cause

Les utilisateurs anonymes n’ont pas de droits « OpenItems » sur la bibliothèque de documents.

Résolution

Trois résolutions différentes peuvent être implémentées pour résoudre ce problème.

Résolution 1

Rompre l’héritage des autorisations sur la bibliothèque de documents.

Résolution 2

Notes

La désactivation de la fonctionnalité « ViewFormPagesLockDown » permet aux utilisateurs anonymes d’afficher des droits source sur certains fichiers susceptibles de contenir des informations sensibles.

Désactivez la fonctionnalité « ViewFormPagesLockDown » sur la collection de sites à l’aide de stsadm :

stsadm -o deactivatefeature -url <site collection url> -filename ViewFormPagesLockDown\feature.xml

Résolution 3

Notes

L’autorisation anonyme « OpenItems » permet aux utilisateurs anonymes d’afficher des droits source sur certains fichiers susceptibles de contenir des informations sensibles.

Accordez par programme l’autorisation « OpenItems » au SPWeb aux utilisateurs anonymes. Notez que vous ne devez le faire que si vous comprenez & accepter les implications en matière de sécurité. L’exemple de script ci-dessous peut être utilisé pour ajouter l’autorisation « Ouvrir les éléments » :

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")  

$siteUrl = "[http://URL_of_your_SITE](http://url_of_your_site/)";  
$site = New-Object Microsoft.SharePoint.SPSite($siteurl);  
$web = $site.OpenWeb();  

$enumPerms = [Microsoft.SharePoint.SPBasePermissions];  

Write-Host $web.AnonymousPermMask64;  
$web.AnonymousPermMask64 = $web.AnonymousPermMask64 -bor $enumPerms::OpenItems  
$web.Update();  
Write-Host $web.AnonymousPermMask64;  

$web.Dispose();  
$site.Dispose();  

Informations supplémentaires

Planifier la sécurité pour un environnement d’accès anonyme externe (Office SharePoint Server)

Encore besoin d’aide ? Go to SharePoint Community.