J'ai un ensemble de référentiels Subversion privés sur une boîte Windows Server 2003 auxquels les développeurs accèdent via SVNServe via le protocole svn: //. Actuellement, nous utilisons les fichiers authz et passwd pour chaque référentiel pour contrôler l'accès, mais avec le nombre croissant de référentiels et de développeurs, j'envisage de passer à l'utilisation de leurs informations d'identification depuis ActiveDirectory. Nous fonctionnons dans une boutique entièrement Microsoft et utilisons IIS au lieu d'Apache sur tous nos serveurs Web, donc je préférerais continuer à utiliser SVNServe si possible.
En plus d'être possible, je suis également préoccupé par la façon de migrer nos référentiels afin que l'historique des utilisateurs existants soit mappé sur les comptes ActiveDirectory appropriés. Gardez également à l'esprit que je ne suis pas l'administrateur réseau et que je ne connais pas très bien ActiveDirectory, je devrai donc probablement passer par d'autres personnes pour obtenir les modifications apportées dans ActiveDirectory si nécessaire.
Quelles sont mes options?
MISE À JOUR 1: Il ressort de la documentation SVN qu'en utilisant SASL je devrais pouvoir obtenir SVNServe pour s'authentifier en utilisant ActiveDirectory. Pour clarifier, la réponse que je recherche est de savoir comment configurer SVNServe (si possible) pour utiliser ActiveDirectory pour l'authentification, puis comment modifier un référentiel existant pour remapper les utilisateurs svn existants vers leurs comptes de connexion de domaine ActiveDirectory.
MISE À JOUR 2: Il semble que la prise en charge SASL dans SVNServe fonctionne à partir d'un modèle de plug-in et la documentation ne s'affiche qu'à titre d'exemple. En regardant la bibliothèque Cyrus SASL, il semble qu'un certain nombre de "mécanismes" d'authentification sont pris en charge, mais je ne sais pas lequel doit être utilisé pour la prise en charge d'ActiveDirectory et je ne trouve aucune documentation à ce sujet.
MISE À JOUR 3: D'accord, il semble que pour communiquer avec ActiveDirectory, je cherche à utiliser saslauthd au lieu de sasldb pour la propriété auxprop_plugin . Malheureusement, il semble que, selon certains articles (éventuellement obsolètes et inexacts), saslauthd ne s'appuie pas sur Windows et ces efforts sont considérés comme un travail en cours .
MISE À JOUR 4: Le dernier message que j'ai trouvé sur ce sujet donne l' impression que les bons fichiers binaires () sont disponibles via la bibliothèque Kerberos du MIT, mais il semble que l'auteur de ce message sur Nabble.com ait toujours des problèmes pour faire fonctionner les choses .
MISE À JOUR 5: Il ressemble aux discussions TortoiseSVN et aussi à ce post sur svn.haxx.seque même si saslgssapi.dll ou les fichiers binaires nécessaires sont disponibles et configurés sur le serveur Windows, les clients auront également besoin de la même personnalisation pour fonctionner avec ces référentiels. Si cela est vrai, nous ne pourrons obtenir la prise en charge d'ActiveDirectory à partir d'un client Windows que si des modifications sont apportées dans ces clients, telles que TortoiseSVN et la construction CollabNet des fichiers binaires du client pour prendre en charge de tels schémas d'authentification. Bien que ce soit ce que ces articles suggèrent, cela est contradictoire avec ce que j'ai supposé à l'origine d'après d'autres lectures, étant que la compatibilité SASL ne devrait nécessiter aucune modification sur le client, mais plutôt que le serveur soit configuré pour gérer le mécanisme d'authentification. Après avoir lu un peu plus attentivement le document sur Cyrus SASL dans Subversionla section 5 stipule que "les clients 1.5+ avec prise en charge Cyrus SASL pourront s'authentifier auprès de serveurs 1.5+ avec SASL activé, à condition qu'au moins un des mécanismes pris en charge par le serveur soit également pris en charge par le client." Il est donc clair que la prise en charge de GSSAPI (qui, je crois, est requise pour Active Directory) doit être disponible au sein du client et du serveur.
Je dois dire que j'apprends beaucoup trop sur les aspects internes de la façon dont Subversion gère l'authentification que je ne l'ai jamais voulu. Et malheureusement, je cherchais simplement une réponse pour savoir si je pouvais prendre en charge l'authentification Active Directory lorsque j'utilisais SVNServe sur un serveur Windows et y accédais à partir de clients Windows. Selon la documentation officielle, cela semble possible, mais vous pouvez voir que la configuration n'est pas triviale, voire même possible.
MISE À JOUR: 6: Étant donné que le développement sur Subversion 1.7 se termine, quelqu'un pourrait-il ajouter quelque chose à savoir si Subversion 1.7 améliorera la situation pour que SVNServe s'authentifie à l'aide d'Active Directory?
Réponses:
Comme déjà mentionné, VisualSVN Server est l'outil que vous souhaitez. C'est un package tout-en-un pour Windows qui utilise juste Apache à l'intérieur - vous ne le sauriez jamais à moins que vous ne fassiez un tour dans les dll qu'il installe, pour tout le monde, c'est un service Windows qui a un composant logiciel enfichable mmc pour administrer. Vous pouvez changer le port sur lequel il s'exécute si vous avez déjà pris le port 80.
Je comprends que le support sasl via svnserve est en cours d'élaboration.
la source
j'utilise apache avec svn fonctionnant sur debian linux autorisant contre un serveur d'annuaire actif. les clients se connectent au référentiel via le protocole http. si cette configuration vous convient, continuez à lire.
cela devrait aussi fonctionner sous apache pour windows mais je ne l'ai jamais essayé. ce qui suit est spécifique à Debian mais devrait fonctionner de la même manière sous Windows / autres distributions; vous ne perdrez pas votre historique svn lors de la migration ...
installer le logiciel requis:
dans la configuration du vhost d'apache [les liens symboliques vers ceux-ci peuvent être trouvés dans / etc / apache2 / sites-enabled]. à l'intérieur de VirtualHost, ajoutez:
assurez-vous qu'apache charge le module ldap:
assurez-vous qu'apache peut modifier les fichiers dans le référentiel svn:
votre svn_authz doit contenir des règles indiquant qui peut accéder à quoi. dans mon cas:
vous pouvez en savoir plus sur la syntaxe de ce fichier ici .
si vous êtes arrivé jusque-là - vos utilisateurs peuvent vérifier à partir de http: //server.address/svn/ en utilisant n'importe quel client svn [tortoise / cmdline / visual svn], ils verront tout l'historique et continueront à lire / écrire dessus.
la source
Vous pouvez utiliser saslNTML au lieu de GSSAPI. La DLL saslNTML est installée avec TSVN par défaut, et je pense qu'elle est également incluse dans le client svn de collab.net.
il y a deux options que vous devez définir dans votre fichier de configuration sasl:
et facultatif
et bien sûr, vous devez définir la liste mech dans votre fichier de configuration pour inclure NTML.
Je n'ai essayé cela qu'une seule fois avec TSVN lorsque j'ai implémenté le tout. Mais j'avais quelqu'un d'autre mis en place un serveur de test pour moi, donc je n'ai aucune idée des options de configuration exactes.
la source