2015-10-30 7 views
1

У нас есть служба WCF, которая ранее была установлена ​​на доменной машине. Наши клиенты смогли подключиться к этой услуге и вызвать методы WCF с использованием учетных данных домена текущего пользователя.WCF Security: проверить учетные данные домена клиента с сервера, находящегося за пределами домена.

Это связывание конфигурации мы использовали:

<netTcpBinding> 
    <binding ...> 
     <security mode="Transport"> 
      <transport clientCredentialType="Windows" protectionLevel="None" /> 
      <message clientCredentialType="Windows" /> 
     </security> 
    </binding> 
</netTcpBinding> 

Теперь по техническим причинам, мы должны были переместить службу на машину, которая не может присоединиться к домену. Можно ли использовать безопасность транспорта WCF для проверки подлинности клиента?

Когда клиенты пытаются вызвать метод WCF они получают эту ошибку:

System.ServiceModel.Security.SecurityNegotiationException: The server has rejected the client credentials. ---> 
System.Security.Authentication.InvalidCredentialException: The server has rejected the client credentials. ---> 
System.ComponentModel.Win32Exception: The logon attempt failed 

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

Я искал и читал о олицетворении WCF, токенах Kerberos, CredSSP и других технологиях, но я не уверен, что это может помочь мне в моей ситуации, какой путь я должен взять или с чего начать. Благодарю.

ответ

1

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

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

+0

На самом деле наша служба подключается к базе данных со своей собственной учетной записью пользователя, а не с идентификацией клиента. Но вы говорите, что у меня нет возможности предоставлять свою личность сервису (вне домена), чтобы он мог также аутентифицировать клиента? – Saintali

Смежные вопросы