В SVN как переопределить автоматическую аутентификацию домена Windows

У меня есть сервер сборки, который не является частью домена Windows, пытающегося подключиться к серверу VisualSVN, работающему по протоколу HTTPS, через apache с входом в домен через Active Directory. Когда я пытаюсь подключиться к серверу, указав имя пользователя домена, я наблюдаю зависание клиента:

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

Журналы на сервере показывают сбои аутентификации Windows с использованием имени входа для машины сборки и имени хоста машины сборки в поле Имя домена. Имя пользователя, указанное в командной строке, полностью игнорируется.

Клиент SVN: инструменты командной строки TortoiseSVN: svn, версия 1.8.1 (r1503906)

На отдельной машине (в домене) - я обнаружил, что --username не будет игнорироваться, если я вместо этого использую cygwin svn.

2 ответа

Решение, которое я нашел, состояло в том, чтобы отключить 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: если вы используете SVN под Windows через Cygwin, вам нужно будет добавить к вашей команде кавычки, например: $ 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

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

В следующей инструкции показано, как поместить другие учетные данные домена для доступа к серверу VisualSVN в диспетчере учетных данных Windows:

  1. Начало | Панель управления | Диспетчер учетных данных,

  2. Нажмите "Добавить учетные данные Windows",

  3. В качестве "Интернет или сетевой адрес" введите полное доменное имя компьютера VisualSVN Server,

  4. Как "Имя пользователя" введите <DOMAIN>\<username> учетной записи пользователя, которая существует в домене и имеет права доступа к серверу VisualSVN,

  5. Заполните поле пароля и нажмите ОК,

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

Другие вопросы по тегам