Изменение пароля сервера VisualSVN

Кто-нибудь придумал способ разрешить удаленным пользователям изменять свои собственные пароли на сервере VisualSVN? У нас он работает в «автономном» (не ActiveDirectory) режиме, и единственный недостаток, который я обнаружил в этом превосходном продукте, заключается в том, что пользователи не могут устанавливать или изменять свои пароли.

Я могу жить с этим, но последствия для безопасности паролей, которые никогда не меняются, хорошо известны. Я уверен, что должна быть возможность добавить функциональность, но я ничуть не талантлив ни в одной из технологий, используемых VisualSVN, поэтому просто интересно, сделал ли кто-нибудь это?

ОБНОВЛЕНИЕ 2010-12-21

Я решил попробовать реализовать это сам. Первое препятствие, с которым я был бы признателен за помощь, это шифрование пароля. Я обнаружил, что в VisualSVN есть файл паролей с именем htpasswd, в котором есть список пользователей в следующем формате:

JoePublic:$apr1$lpq$kF8nZjjuFxgJBExK8ruf20

JoePublic — это имя пользователя, я предполагаю, что двоеточие — это разделитель, а остальное — какой-то хэш пароля. Фактический пароль, использованный в этом случае, был ForgetMeNot.

Это не похоже на хэш MD5 или SHA, но я не очень разбираюсь в этой области, так что вполне может быть. Учитывая приведенную выше информацию, может ли кто-нибудь вывести используемый алгоритм?


person Tim Long    schedule 04.12.2010    source источник
comment
@BoltClock, я отменил ваш повторный тег, потому что это действительно не имеет ничего общего с SVN. Это очень специфично для схемы аутентификации, встроенной в VisualSVN Server, которая является отдельной и отличной от SVN. Если я что-то пропустил...?   -  person Tim Long    schedule 22.12.2010
comment
Прогресс обновления: я заметил, что Apache поставляется с утилитой под названием htpasswd, интересно, связано ли это с файлом htpasswd VisualSVN?   -  person Tim Long    schedule 22.12.2010


Ответы (3)


Если вам нужна эта функциональность, вам необходимо интегрироваться с Active Directory, что в любом случае является хорошей идеей, чтобы пользователям не приходилось управлять несколькими отдельными паролями.

person Samuel Neff    schedule 04.12.2010
comment
Это правда, и обычно я бы так и сделал, но эти пользователи являются внешними по отношению к моей организации, и я не хочу, чтобы они входили ни во что, кроме сервера SVN, и уж точно не в мой домен. И я не хочу покупать для них клиентские лицензии. Так что в этом случае AD не очень хороший вариант. Но +1 за хорошее предложение. - person Tim Long; 06.12.2010
comment
@Tim Long, хранит ли VisualSVN внутренний список имен пользователей и паролей в текстовом файле? Я не видел никаких подробностей в справке, но стоит поискать в репозитории файл пользователей. Если это так, то создайте свою собственную крошечную веб-страницу управления паролями, чтобы пользователи могли управлять своими паролями. - person Samuel Neff; 06.12.2010
comment
Думаю, я мог бы просто попробовать это. Я обновляю свой вопрос соответственно, не могли бы вы взглянуть и прокомментировать? - person Tim Long; 22.12.2010
comment
@ Тим Лонг, вам не следует задавать дополнительные вопросы, редактируя оригинал. Хотя это связано, новый вопрос на самом деле совсем другой, в частности, как SVN / VisualSVN генерирует хэши паролей? Вы должны опубликовать как новый вопрос. - person Samuel Neff; 22.12.2010

Вы не можете сбросить пароль пользователя через веб-интерфейс, однако провайдер WMI (Windows Management Instrumentation) сервера VisualSVN позволяет вам сбросить пароль. т.е. вы можете получить доступ к VisualSVN Server через WMI, чтобы вы могли написать сценарий на различных языках программирования для управления сервером и автоматизации задач обслуживания.

См. справочник по интерфейсу инструментария управления Windows.

К сожалению, провайдер VisualSVN Server WMI не задокументирован, однако вы можете просмотреть файл MOF, в котором описаны доступные классы, методы и свойства. Вы также можете проверить инструменты администрирования WMI. очень полезно, когда вы хотите изучить инфраструктуру WMI.

Следующий сценарий PowerShell установит qwerty123 пароль для пользователя Subversion username на экземпляре сервера VisualSVN, расположенном на computer.contoso.com в вашей сети.

$svnuser = Get-WmiObject -Namespace Root\VisualSVN -ComputerName computer.contoso.com -query "select * from VisualSVN_User where name = 'username'"
$svnuser.SetPassword('qwerty123')

Обратите внимание, что этот сценарий является образцом, и вам может потребоваться настроить команду для работы в вашей среде. Например. вам может потребоваться передать параметр «-credential» для успешной аутентификации. Убедитесь, что учетная запись пользователя, под которой вы выполняете аутентификацию, имеет права администратора или, по крайней мере, является членом локальной группы VisualSVN Server Admins.

person bahrep    schedule 20.02.2013

Пароль, используемый VisualSVN, имеет формат md5 с htpasswd. В основном для проверки используйте это:

htpasswd -cm test.htpass JoePublic

и проверьте результаты.

person Jack Schnider    schedule 21.12.2011
comment
Извините, я не понимаю. Является ли htpasswd частью VisualSVN? Что на самом деле проверяет эта команда? - person Tim Long; 27.12.2011
comment
Проголосовал, так как это работает. @TimLong: htpasswd.exe (потому что Windows) является частью Apache. Если кто-то использует аутентификацию Visual SVN Server вместо аутентификации Windows, в корневом каталоге репозитория будет файл с именем htpasswd. Он содержит вывод, когда htpasswd получает строки имени пользователя и пароля с опцией md5. - person blizpasta; 23.10.2017