Empêcher Microsoft Office 2010 de s'intégrer au serveur Subversion comme s'il s'agissait de Sharepoint

10

Nous avons un serveur Apache Subversion sur lequel nous stockons (entre autres) toute notre documentation. Nous avons beaucoup de documents Word, Excel, PDF, etc. dans svn, et tous nos utilisateurs utilisent TortoiseSVN comme interface client. Beaucoup de ces utilisateurs parcourront également le référentiel via un navigateur Web, qui (malheureusement) est souvent Internet Explorer.

Récemment, nous avons commencé à tester Office 2010 (à partir de 2003) et avons constaté que les documents du dépôt sont ouverts différemment lors de la navigation avec IE. Plutôt qu'IE de télécharger le fichier puis de l'envoyer à l'application appropriée (après quoi il ne devrait s'agir que d'une copie temporaire stockée localement), il envoie l' URL du document à l'application. Le document est téléchargé par l'application, puis traité comme s'il provenait d'un serveur Sharepoint, c'est-à-dire que l'application essaie de le verrouiller puis de télécharger automatiquement toutes les modifications enregistrées sur le serveur.

D'après Google, il semble que de nombreuses personnes souhaitent ce comportement. Cependant, nous voulons le désactiver - il ne correspond pas à nos processus existants. Comment puis-je m'y prendre?

Je n'ai pas beaucoup de contrôle sur les machines clientes, donc les solutions qui impliquent de désactiver toutes les fonctionnalités de collaboration de documents Office comme celle-ci pour chaque client ne sont pas ce que je recherche. En outre, je n'ai pas trouvé grand-chose d'autre que de désactiver le module complémentaire Office Document Cache Handler dans IE. Les seules options côté client qui peuvent être envisageables sont celles qui désactivent spécifiquement cette fonctionnalité pour notre serveur nommé mais la laissent activée pour les autres.

Cela laisse donc des solutions côté serveur. Je suppose qu'Office voit que le serveur svn prend en charge WebDAV et se déplace donc dans un flux de travail de gestion de documents de type Sharepoint. Existe-t-il un moyen d'arrêter ce type d'intégration sans désactiver toute la prise en charge de WebDAV sur le serveur (en supposant que nous pourrions même le faire)? Nous utilisons en fait un peu la version automatique de svn à d'autres fins, c'est donc une fonctionnalité requise. J'ai trouvé une discussion sur la désactivation de la fonctionnalité s'il s'agit en fait d'un serveur Sharepoint, mais ce n'est pas le cas! Ma compréhension du fonctionnement de ce genre de chose (c.-à-d. Client Office identifiant la prise en charge WebDAV sur le serveur) est assez limitée, veuillez donc expliquer plus en détail si vous le pouvez.

Si cela est important, la configuration du serveur est la suivante:

Apache v2.2.8 et Subversion v1.4.6 sur Ubuntu Hardy 8.04.

James Tisato
la source
Je ne peux pas suggérer cela comme une réponse, car il s'agit plutôt d'une solution de contournement lourde. Je pense que vous avez raison sur le DFAV, car Apache / SVN utilise DAV comme protocole d'accès. Dans cet esprit, vous pouvez supprimer Apache et l'utiliser à la svnserveplace.
SmallClanger
Merci pour la suggestion, mais svnserver n'est pas une option pour nous. Nous avons beaucoup de personnalisation en place qui dépend de notre utilisation d'Apache.
James Tisato
J'ai trouvé un article très utile de MS (j'ai été surpris!): Support.microsoft.com/kb/838028 Il semblerait que le serveur Apache indique à travers sa réponse HTTP 1.1 OPTIONS qu'il est capable d'opérations WebDAV et donc Office les utilise . Où est la putain d'option pour dire "Je veux que mon serveur ait WebDAV disponible, mais je ne veux pas qu'Office l'utilise?!"
James Tisato

Réponses:

12

Résolu (enfin). http://support.microsoft.com/kb/838028 explique comment Office utilise la découverte de protocole Microsoft Office pour déterminer si le serveur de documents a des capacités WebDAV. Il envoie une requête OPTIONS HTTP 1.1 et attend une réponse de 200 OK détaillant les fonctionnalités DAV disponibles. Le serveur Subversion a (limité) la prise en charge DAV et répond en tant que tel, et Office l'utilise ensuite pour réécrire directement sur le serveur.

La solution que nous avons utilisée était d'utiliser mod_rewrite sur le serveur Apache pour intercepter ces demandes et renvoyer une réponse 405 Méthode non autorisée. La configuration de réécriture est:

# Intercept Microsoft Office Protocol Discovery
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
RewriteRule .* - [R=405,L]

Il intercepte toutes les requêtes de méthode OPTIONS provenant d'agents avec le nom "Microsoft Office Protocol Discovery" et renvoie un 405. Cette solution a été suggérée par le premier commentaire sur http://rails.nuvvo.com/lesson/2318-dealing- avec-microsoft-office-protocol-discovery-in-rails # commentaires .

Maintenant, Office essaie quelques requêtes OPTIONS, est refusé par le 405, puis abandonne et désactive toute la prise en charge DAV pour ce serveur particulier, tout en la laissant activée pour tous les autres serveurs avec lesquels les clients pourraient vouloir interagir.

James Tisato
la source
Merci beaucoup! Bien que je n'utilise pas Subversion, j'ai combattu le même problème de base et je n'ai pas pu trouver de documentation jusqu'à présent. Je ne suis toujours pas sûr à 100% que ce soit tout ou partie, mais ça sonne comme ça. L'ouverture de documents Office liés sur une page Web a rendu les hyperliens internes (relatifs, sans chemin d'accès) des adresses http entièrement qualifiées avec chemin, même si la copie doit être affichée à partir d'un cache local. Cela ne s'est produit que dans IE ... FF et Chrome a montré des liens rompus (comme prévu) à partir du cache de fichiers local. Merci une fois de plus.
one.beat.consumer
1
Suggéré par @chekolyn, ajoutez les trois lignes suivantes pour réécrire la configuration: RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
HopelessN00b
Les appels Excel HYPERLINK () ne génèrent pas de demande OPTIONS mais génèrent un GET supplémentaire. La chaîne d'agent utilisateur à surveiller avec eux est "ms-office". Le renvoi d'une erreur 405 a rendu les liens hypertexte non fonctionnels du tout, mais le renvoi d'une réponse vide 200 pour Office a fait l'affaire, il a ouvert le navigateur Web par défaut presque immédiatement à l'URL (j'utilise ASP.NET sur IIS, donc je l'ai fait ceci avant l'authentification).
richardtallent
Cependant, maintenant, certains excels n'ont plus de ms-office. Par exemple, mon 2013 ne fonctionne pas.
mplungjan