2015-02-04 2 views
0

Я использую WCF (Windows Service Self Host) netTCP между сервисом и клиентом. Это как обычай вяжущие выглядит какКак работает WCF с Kerberos?

<binding name="netTcpWindowMessageSecurity" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="infinite" sendTimeout="01:00:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="1000" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="200" maxReceivedMessageSize="2147483647"> 
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      <reliableSession ordered="true" inactivityTimeout="infinite" enabled="false" /> 
      <security mode="Message"> 
      <message clientCredentialType="Windows" /> 
      </security> 
     </binding> 

Единственное, что я на самом деле сделать это, чтобы отобразить текущее (LoggedIn) пользователя Windows (на клиенте) для пользователей в моей службе.

Я понимаю, что связь будет зашифрована между сервисом и клиентом, но будет использоваться Kerberos? Откуда мне знать? Что решает, если он используется?

Edit:

Я могу видеть это в моем Evenlog> Безопасность

Logon Type:   5 

Impersonation Level:  Impersonation 

New Logon: 
    Security ID:  SYSTEM 
    Account Name:  SYSTEM 
    Account Domain:  NT AUTHORITY 
    Logon ID:  0x3E7 
    Logon GUID:  {00000000-0000-0000-0000-000000000000} 

Process Information: 
    Process ID:  0x310 
    Process Name:  C:\Windows\System32\services.exe 

Network Information: 
    Workstation Name: 
    Source Network Address: - 
    Source Port:  - 

Detailed Authentication Information: 
    Logon Process:  Advapi 
    Authentication Package: Negotiate 
    Transited Services: - 
    Package Name (NTLM only): - 
    Key Length:  0 
+1

Во-первых, inactivityTimeout = «бесконечный» НЕ делает то, что вы думаете. Во-вторых, ваши данные не шифруются, и я не уверен, почему вы так думаете. В-третьих, Kerberos вообще не участвует, как показывает ваш журнал безопасности, он использует аутентификацию NTLM (Lan Manager). –

+0

@ErikFunkenbusch от того, что я прочитал бездействие. Как правило, время соединения не работает, пока оно не упадет? Однако у меня есть keepAlive. Из того, что я вижу, securoty включен на транспортном уровне, а учетные данные, которые будут использоваться, - это Windows. Из того, что я прочитал, это означает, что данные будут зашифрованы? Можете ли вы мольбы указать мне, где это объясняется, как вы sugests? – Banshee

+0

@ErikFunkenbusch не содержит ничего, что говорит о том, что NTLM используется, есть имя пакета, но в нем указано только NTLM, и нет информации? – Banshee

ответ

0

Следуя Erik Funkenbusch Рекомендации для меня общение защищались. Это то, что я должен был изменить

<security mode="Transport"> 
      <transport protectionLevel="EncryptAndSign" clientCredentialType="Windows"></transport> 
      </security> 
Смежные вопросы