6

リモートユーザーがVisualSVNサーバーで自分のパスワードを変更できるようにする方法を思いついた人はいますか? 「スタンドアロン」(非 ActiveDirectory) モードで実行していますが、この優れた製品の唯一の欠点は、ユーザーがパスワードを設定または変更できないことです。

私はそれを受け入れることができますが、決して変更されないパスワードのセキュリティへの影響はよく知られています. 機能を追加することは可能だと確信していますが、私は VisualSVN で使用されているテクノロジーのいずれにおいても少しも才能がありません。

2010年12月21日更新

私はこれを自分で実装することを決めました。助けていただければ幸いな最初の障害は、パスワードの暗号化です。VisualSVN にはパスワード ファイルがありhtpasswd、次の形式のユーザーのリストが含まれていることがわかりました。

JoePublic:$apr1$lpq$kF8nZjjuFxgJBExK8ruf20

JoePublic はユーザー名です。コロンは区切り文字で、残りはパスワード ハッシュのようなものだと思います。この場合に使用された実際のパスワードはForgetMeNot.

これは MD5 または SHA ハッシュではないようですが、私はこの分野についてあまり世俗的な知識を持っていないので、そうかもしれません。上記の情報から、使用されているアルゴリズムを推測できる人はいますか?

4

3 に答える 3

3

Webインターフェイスを介してユーザーのパスワードをリセットすることはできませんが、VisualSVNサーバーのWMI(Windows Management Instrumentation)プロバイダーではパスワードをリセットできます。つまり、WMIを介してVisualSVNサーバーにアクセスできるため、さまざまなプログラミング言語でスクリプトを記述してサーバーを管理し、メンテナンスタスクを自動化できます。

WindowsManagementInstrumentationインターフェイスリファレンスを参照してください。

残念ながら、VisualSVNサーバーのWMIプロバイダーは文書化されていませんが、使用可能なクラス、メソッド、およびプロパティを記述したMOFファイルを調べることができます。WMI管理ツールを確認することもできます。このツールキットは、WMIインフラストラクチャを探索する場合に非常に役立ちます。

次のPowerShellスクリプトは、ネットワーク上にあるVisualSVNサーバーインスタンスqwerty123のSubversionユーザーのパスワードを設定します。usernamecomputer.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サーバー管理者ローカルグループのメンバーであることを確認してください。

于 2013-02-20T12:57:43.573 に答える
3

その機能が必要な場合は、Active Directory と統合する必要があります。ユーザーが複数の個別のパスワードを管理する必要がないように、これはとにかく良い考えです。

于 2010-12-04T21:47:25.330 に答える
2

で使用されるパスワードは、のVisualSVN形式md5ですhtpasswd。基本的にテストするには、次を使用します。

htpasswd -cm test.htpass JoePublic

結果を確認します。

于 2011-12-21T04:34:37.620 に答える