Context

An online application needs access to one or more Web services. The Web services require that the application presents proof of authentication, so that additional controls such as authorization and auditing can be implemented. The organization needs to use an Authentication Broker to issue security tokens that can be used for authentication.

Problem

How does the Web service verify the credentials presented by the requesting application?

Forces

  • The organization must implement Enterprise Single Sign on capabilities.  Enterprise users must be able to access multiple online applications that call Web services, without needing to enter their username and login several times.
  • Centralized authentication of Subjects is required. Users and applications must be able to access multiple resources using a single set of credentials per user or application.
  • The authentication mechanism must be closely integrated with the Operating System. An application may be designed to take advantage of some of the extended capabilities associated with the Windows implementation of Kerberos, such as impersonation, and integration with Active Directory.
  • Authentication must be based on industry standards and widely implemented on a variety of platforms. Interoperability may be required between different platforms that are capable of using a standard authentication mechanism.
  • Authentication must take place in an untrusted Network environment  You may not be able to guarantee the security of the computers on the network. or of the network itself.

Solution

Use the Kerberos protocol to broker authentication between online applications and Web services. The requestor first authenticates the subject with the Kerberos Authentication Service, which issues a Ticket Granting Ticket (TGT). The TGT is used for all requests by the requestor to the Ticket Granting Service (TGS). The requestor can then use the TGT to obtain a service granting ticket (SGT) from the TGS. The request message and SGT are sent to the Service Host. The Service Host receives the message and authenticates the Subject using the SGT.

Participants

 

Kerberos is an Authentication protocol that requires the following additional components.

 

 

Process

The process of using Kerberos for authentication is shown in Figure 1.

Figure 1

Requestor Process of Kerberos Authentication

The steps of the authentication process depicted in the above diagram are described below:

1.  The Requestor presents the subject's credentials to the KDC's Authenication Service (AS) for authentication. The requestor creates a digest as a password equivalent for the shared secret, to protect it during transmission

2.  The Requestor receives a Ticket Granting Ticket (TGT) from the KDC's Authentication service that provides proof that the subject has successfully authenticated (proof of authentication).

3.  Requestor sends a message to the Ticket Granting Service (TGS), requesting access to the ServiceHost. The requestor presents the subject's TGT as proof of authentication.

4.  The TGS responds to the requestor, returning a Service Granting Ticket (SGT). The SGT is a type of session token that represents that trust has been negotiated between the Subject and Service Host by the KDC.

5.  A Request message is sent to service host, along with the SGT.

6.  The Service Host verifies that the session token has not been tampered with in transit and was issued by a trusted KDC. If so, then the Service Host allows the request to be processed by the Service

7.  The Subject's identity information within the SGT enables the Service Host or Service to establish a security context that will make authorization decisions about the Subject

8.  The Service returns a response to the Requestor.

  

Kerberos follows the basic pattern of Brokered Authentication, but has properties that differentiate it from other types of brokered authentication, including:

Kerberos can be used for brokering authentication at either the transport or message layer. Some implementations of Kerberos include:

 

Resulting Context

The following benefits, liabilities, and security considerations are associated with the use of Kerberos as an Authentication Broker.

Benefits

 

Liabilities

 

Note: Active Directory provides authorization services that complement its Kerberos implementation.

 

Security Considerations

Related Patterns

Child Patterns

 

Alternative Patterns

Dependent Patterns

References

 

 

 

Microsoft Confidential. © 2005 Microsoft Corporation. All rights reserved. By using or providing feedback on these materials, you agree to the attached license agreement.