Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Authentication in Microsoft domain networks has traditionally been done using NTLM or Kerberos protocol. Kerberos protocol is a more secure authentication mechanism than NTLM which also overcomes the well-known double hop issue associated with NTLM.
Microsoft's implementation of the Kerberos protocol involves three parties – client, server and the Key Distribution Center (KDC). The client and server referred above are also known as Service Principals. An essential pre-requisite for Kerberos to work is that target services in the conversation must have had their Service Principal Names (SPN) registered. An SPN comprises of the following format: [service class] / [host] : [port]/[service name] . Service class represents the type of service (well known examples being HOST, HTTP), host is the fully-qualified DNS name or the NetBIOS name of the host. Port and service name are optional fields. An example of a SPN entry would be: HTTP/3rdRock where the service class is HTTP and the host is 3rdRock.
A few points to note about SPN's:
A SPN must be registered only for one service account. We cannot have the same SPN to be registered under different service account.
E.g.: Following registration will result in the second SPN to be active.
http/server1 redmond\account1
http/server1 redmond\account2
For a service behind a load balancer, services in all the servers should be configured to use same account.
It is generally a good idea to create the SPN for both the FQDN as well as the NetBIOS name
http/server1 redmond\account1
http/server1.redmond.corp.microsoft.com redmond\account1
- Currently some Kerberos clients do not construct the SPN correctly if the service is configured to be listening on a non-default port. https://support.microsoft.com/kb/908209/en-us
Kerberos Domain Controller (KDC), running on a Windows Domain Controller, serves as the trusted third party, and performs two service functions: Authentication Service (AS) and Ticket Granting Service (TGS).
The following is a simplified view of the authentication process:
|
|
Handy tools to help you with Kerberos:
- setspn: Command line tool to set and verify SPN entries. It is available with default installation of Windows Server 2008 (For Windows Server 2003: Windows Server 2003 Service Pack 1 Support Tools)
- ldp.exe: GUI tool to verify constrained delegation. It is available with default installation of Windows Server 2008 once the Active Directory Domain Services role is added (For Windows Server 2003: Ldp overview and download). Also refer here for help with the tool. To verify CD, your search filter for this tool might look like: (&(objectClass=user)(sAMAccountName=[service name]))
- klist: Command line tool to view all the kerberos tickets (cached)
- netmon: Can't get any better than this. Put up a network sniffer to troubleshoot any issues with Kerberos
A few other good resources to learn about Kerberos Protocol:
- Kerberos Authentication in Windows Server 2003: One stop source to learn, plan and deploy Kerberos authentication in a Windows Server 2003 environment.
- Designing Secure Web-Based applications for Microsoft Windows 2000, Michael Howard: Even though the title of the book suggests it is for Windows 2000, chapter 14: An Introduction to Kerberos Authentication in Windows 2000, is one of the best primer for anyone who wants to know the basics of Kerberos in a Windows environment.
- How to troubleshoot Kerberos-related issues in IIS: A good start point to get help in troubleshooting Kerberos-related issues
Comments
Anonymous
November 03, 2008
PingBack from http://mstechnews.info/2008/11/kerberos-protocol/Anonymous
November 04, 2008
One of the main charters of our group, Marketing Platform and Services, is to be a partner to MicrosoftAnonymous
November 14, 2008
This blog post will detail the steps needed to configure a SharePoint farm to successfully delegate credentials