Следующая ссылка описывает традиционный связь между клиентом и сервером в интрасети через сокет с использованием Kerberos
public class NegotiateStream : System.Net.Security.AuthenticatedStream
...
// Request authentication.
NetworkStream clientStream = client.GetStream();
NegotiateStream authStream = new NegotiateStream(clientStream, false);
...
// Pass the NegotiateStream as the AsyncState object
// so that it is available to the callback delegate.
IAsyncResult ar = authStream.BeginAuthenticateAsClient(
new AsyncCallback(EndAuthenticateCallback), authStream);
...
С другой стороны, IIS имеет возможность аутентификации с использованием того, что я понимаю как "Kerberos с SPNego через SSL"... (пожалуйста, исправьте мою терминологию!).
В этом режиме SPNego/SSL/Kerberos мне не удалось заставить работать NegotiateStream
, однако я смог заставить работать machineaccount$ правильно с WebRequest.AuthenticationLevel
, установленным на MutualAuthRequired
.
Вопрос
В чем разница в безопасности между использованием
NegotiateStream
иWebRequest.AuthenticationLevel
?Каковы стандарты (например, MS-SPNG) используется в каждом решении?
Какие подсистемы Windows (SIP, GSS-API и т. д.) используются?
Любая информация, которая может помочь мне интегрировать агенты Linux в это решение Kerberos/SpNego, была бы идеальной.