The following link describes a traditional intranet client-server socket communication using 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);
...
On the other hand, IIS has the ability to authenticate using what I understand to be "Kerberos with SPNego over SSL"... (please correct my terminology!).
When in this SPNego/SSL/Kerberos mode, I wasn't able to get NegotiateStream
to work, however I was able to get the machineaccount$ to work correctly with WebRequest.AuthenticationLevel
set to MutualAuthRequired
Question
What is the security difference between using the
NegotiateStream
, versusWebRequest.AuthenticationLevel
?What are the standards (such as MS-SPNG) being used in each solution?
What are the Windows subsystems (SIP, GSS-API, etc) that are in use?
Any information that can help me integrate Linux agents into this Kerberos/SpNego solution would be ideal.