9

Windows ドメインの一部ではないビルド サーバーがあり、HTTPS を実行している VisualSVN サーバーに、Apache 経由で Active Directory 経由のドメイン ログインで接続しようとしています。ドメイン ユーザー名を指定してサーバーに接続しようとすると、クライアントがハングします。

svn ls --username=domainuser https://subversion.mydomain/svn/repo1/

サーバーのログには、ビルド マシンのログイン名とドメイン名フィールドのビルド マシンのホスト名を使用した Windows 認証の失敗が示されます。コマンドラインで指定されたユーザー名は完全に無視されます。

SVN クライアント: TortoiseSVN コマンドライン ツール: svn、バージョン 1.8.1 (r1503906)

別のマシン (ドメイン上) - 代わりに cygwin svn を使用すると --username が無視されないことがわかりました。

4

2 に答える 2

15

http-auth-type私が見つけた解決策は、 「 」を無効にすることでしたnegotiate。これにより、Windows 資格情報が自動的に共有されなくなります。

コマンドラインのオーバーライドを使用してこれを確認しました。コマンドラインでユーザーのパスワードを要求しました。

svn ls --username=domainuser --config-option servers:global:http-auth-types=basic;digest https://subversion.mydomain/svn/repo1/
Authentication realm: <https://subversion.mydomain/svn/repo1/> VisualSVN Server
Password for 'domainuser': 

( Cygwin ユーザーへの注意: Windows で Cygwin 経由で SVN を使用する場合は、次のようにコマンドに引用符を追加する必要があります: $ svn ls --username=domainuser --config-option "servers:global:http-auth-types=basic;digest" https://subversion.mydomain/svn/repo1/-- そうしないと、セミコロンはコマンド区切り文字として扱われます。)

これをより永続的に構成するには、servers一致するすべてのサーバーの構成ファイル エントリを作成します。Win7 の場合はC:\Users\<User>\AppData\Roaming\Subversion\servers.

[groups]
mydomain = *.mydomain

[mydomain]
http-auth-types=basic;digest
于 2013-11-05T23:58:25.777 に答える
5

クライアントの構成でネゴシエートを無効にする代わりに、Windows Credential Managerを使用して、シングル サインオン用の他のアカウントの資格情報を保存することをお勧めします。

次の手順は、VisualSVN サーバーにアクセスするための他のドメイン資格情報を Windows 資格情報マネージャーに入れる方法を示しています。

  1. スタート | コントロール パネル | 資格情報マネージャー,

  2. [ Windows 資格情報の追加] をクリックし、

  3. 「インターネットまたはネットワークアドレス」としてVisualSVNサーバーのマシンのFQDNを入力し、

  4. 「ユーザー名」として<DOMAIN>\<username>、ドメインに存在し、VisualSVN サーバーへのアクセス権を持つユーザー アカウントを入力します。

  5. パスワード フィールドに入力し、[OK] をクリックします。

  6. 上記の手順を完了した後、選択したユーザー アカウントで VisualSVN サーバーに認証できることを確認します。

于 2013-11-06T13:14:49.240 に答える