Необходимо определить правильный SPN для аутентификации svn/svnserve через GSSAPI для Win 2008 AD.

Я настраиваю установку Subversion на базе Windows через SVNSERVE, при которой пользователи аутентифицируются в Active Directory через SASL и GSSAPI. Я знаю, что некоторые провайдеры предлагают предварительно упакованные установки Subversion со встроенной поддержкой AD из коробки, но в моей ситуации это не вариант.

Я использую Subversion 1.7.4 для Windows, MIT Kerberos V5 (3.2.2) для Windows и буду обращаться к репозиторию с клиентов Tortoise SVN на компьютерах с Win64. SVNSERVE работает как системная служба под учетной записью домена.

Я полагаю, что для моего сервера репозитория у меня есть все основные компоненты (svn, Kerberos, с SVNSERVE, откладывающим аутентификацию SASL, которая затем настраивается на использование GSSAPI для механизма). Теперь я дошел до того, что попытка запросить репозиторий приводит к ошибке «Не удалось согласовать механизм аутентификации», чего я ожидаю в этот момент, поскольку я не определил имя участника-службы для хоста репозитория. для запроса Kerberos. Network Capture сообщает мне, что spn "svn/*FQDN_of_host_omitted* не является распознанным SPN, чего я и ожидаю на данный момент...

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

Итак, я считаю, что мне может понадобиться одно или все из следующего. Какие из них правильные/неправильные?:

#1 SPN for svn service on non-FQDN of host machine:
setspn -F -A svn/*nonFQDN_of_host* *nonFQDN_of_host*

#2 SPN for svn service on FQDN of host machine:
setspn -F -A svn/*FQDN_of_host* *FQDN_of_host*

#3 SPN for svn service from non-FQDN of host through service account:
setspn -F -A svn/*nonFQDN_of_host* *domain\svnhostaccount*

#4 SPN for svn service from FQDN of host through service account:
setspn -F -A svn/*FQDN_of_host* *domain\svnhostacccount*

Заранее спасибо за помощь, и, надеюсь, вопрос не слишком глуп на первый взгляд :)


person David W    schedule 01.05.2012    source источник


Ответы (1)


Пролистывал старые вопросы и наткнулся на этот. Отвечаю поздно, потому что я являюсь участником только с октября 2016 года. Ответ на этот вопрос следующий. Примечание. Используйте setspn -S вместо setspn -A, причина в том, что переключатель "-S" ищет дубликаты, а старый переключатель "-A" этого не делает. Кроме того, при настройке новых имен SPN, как правило, предпочтительнее привязывать имена участников-служб к учетной записи службы, а не к учетной записи хост-компьютера, потому что это дает вам больше гибкости в случае, если вы хотите отправить трафик через балансировщик нагрузки; трафик может направляться на любой хост внутри заранее определенного доступного пула машин. Принимая во внимание, что имена участников-служб, привязанные к хост-компьютеру, будут работать только на указанном хост-компьютере. При всем при этом вы хотели бы запустить свои команды setspn, как показано ниже, в то время, когда вы задали свой вопрос:

#1 SPN для службы svn на хост-компьютере, отличном от FQDN:

setspn -F -S svn/*nonFQDN_of_host* *nonFQDN_of_host*

#2 SPN для службы svn на полном доменном имени хост-компьютера:

setspn -F -S svn/*FQDN_of_host* *FQDN_of_host*

#3 SPN для службы svn от хоста, не являющегося полным доменным именем, через учетную запись службы:

setspn -F -S svn/*nonFQDN_of_host* *svnhostaccount*

#4 SPN для службы svn от полного доменного имени узла через учетную запись службы:

setspn -F -S svn/*FQDN_of_host* *svnhostacccount*
person T-Heron    schedule 07.02.2017
comment
Спасибо за усилия, @T-Heron. К сожалению, этот проект был заброшен вскоре после того, как я опубликовал это, поскольку мне не удалось убедить TPTB использовать Subversion поверх Team Foundation Server. - person David W; 08.02.2017
comment
Понял; Если вы считаете, что этот ответ ответил на ваш вопрос, отметьте его как таковой, чтобы он мог помочь другим; в противном случае, пожалуйста, дайте мне знать, если у вас есть другие вопросы. - person T-Heron; 03.03.2017
comment
Эй, T-Heron: Не могли бы вы немного уточнить последнее предложение в вопросе Дэвида В.? В частности, нужны ли в контексте вопроса только один или все эти варианты имени участника-службы? Кто-нибудь из них ошибается, АФАЙК? - person jaguild; 31.01.2018