Проверка подлинности IIS7.5 для входа в Sql Server 2008 r2

У меня есть то, что я думал, было бы вполне нормальным сценарием...

У меня есть служба -WCF Client -WCF, размещенная в AppFarbic в IIS7.5 -SQL Server 2008 r2.

IIS работает с использованием удостоверения пула приложений

Я подключаюсь с клиента, используя следующий файл конфигурации

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>     
      <client>            
            <endpoint 
                name="NetTcpBinding_IXXXService"
                address="net.tcp://app02.xx.com/XXXService/XXXService.svc"
                binding="netTcpBinding"                 
                contract="XXXClient.IXXXService">
                <identity>
                    <servicePrincipalName value="host/app02.xx.com" />                  
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration> 

IIS работает с использованием удостоверения пула приложений.

Я могу заставить службу подключаться к базе данных, если я создам логин \$.

При использовании удостоверения пула приложений это единственный способ подключения к базе данных с использованием проверки подлинности Windows?

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

Есть ли способ связать идентификатор пула приложений с именем входа в базу данных?

РЕДАКТИРОВАТЬ: когда я меняю пользователя пула приложений на другого пользователя с доступом к базе данных, я получаю ошибку сбоя SSPI.


person KiwiInLondon    schedule 26.01.2011    source источник
comment
просто чтобы немного уточнить, экземпляр сервера sql находится на том же сервере или на другом сервере, что и служба?   -  person DForck42    schedule 27.01.2011
comment
Никаких разных серверов (все на одном сервере) или Нет, разных серверов (SQL и IIS, по крайней мере, на разных серверах). Отсутствие запятой делает значение настолько двусмысленным, что на вопрос вообще не ответили.   -  person Frazell Thomas    schedule 27.01.2011
comment
Извините за двусмысленность. Iis и SQL находятся на разных серверах   -  person KiwiInLondon    schedule 27.01.2011


Ответы (1)


Пожалуйста, простите меня за то, что я решился на это, когда я не знаком с WCF или AppFarbic. Хотя я немного знаю об IIS и аутентификации на SQL-сервере на другом сервере.

  1. Можете ли вы подключиться к базе данных, если вы используете безопасность на основе имени пользователя с паролем?
  2. Какой метод аутентификации вы используете на веб-сайте?
  3. Если вы пытаетесь использовать встроенную проверку подлинности Windows, и ваш метод веб-аутентификации также интегрирован, вам необходимо использовать безопасность Kerberos в IIS, чтобы разрешить делегирование «второго прыжка» по сети на сервер SQL. Стандартной защиты NT недостаточно, поскольку она может выполнять только олицетворение, что не позволяет этого. Заставить делегирование работать может быть головной болью, но вы должны изучить используемое имя участника-службы и убедиться, что оно правильно зарегистрировано на сервере SQL, а также повозиться с IIS, чтобы убедиться, что Kerberos включен и действительно работает. из него молча возвращается к NTLM. Веб-сервер также должен быть «доверенным для делегирования» в групповой политике домена (при условии, что ваш веб-сервер присоединен к домену).
person ErikE    schedule 22.05.2011