Abstract:
In an enterprise server system having a server, a web-base applications single sign-on method and system. The single sign-on system includes logic for assigning and retrieving uniquely identifying tokens that are assigned to a user attempting to access one of many applications in the server. The token is assigned after the user has successfully logged into the server. The assigned token enables the user to access different applications in the server without having to authenticate every time the user goes from one application to the other. In one embodiment of the present invention, the single sign-on system includes a token that provides a listening mechanism for the applications that need to be notified when a token expires in order to deny access to the particular user identified with the expired token.

Description:
CROSS REFERENCE TO RELATED APPLICATION  
       [0001]    This is related to Shivaram Bhat et al., co-filed U.S. patent application Ser. No. ______, filed on ______, titled “UNIFORM RESOURCE LOCATOR ACCESS MANAGEMENT AND CONTROL SYSTEM AND METHOD” attorney docket No.: SUN/P6854/ACM/DKA. To the extent not repeated herein, the contents of this patent application are incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present claimed invention relates generally to the field of corporate enterprise server systems. More particularly, embodiment of the present claimed invention relates to access requests in an Internet server system environment.  
         BACKGROUND ART  
         [0003]    The Internet has become a dominant vehicle for data communications with a vast collection of computing resources, interconnected as a network from sites around the world. And with the growth of Internet usage has come a corresponding growth in the usage of Internet devices, wireless devices and services in ways different from the traditional uses of such devices.  
           [0004]    The growing base of Internet users has become accustomed to readily accessing Internet-based services, which traditionally were restricted or limited to the “client/server” environment, at any time from any location. Accessibility of traditional business services and products over the Internet means enterprises need to adjust to new paradigms of business transaction.  
           [0005]    Consequently, some organizations are, for example, implementing a variety of business resources and services. As businesses migrate to implementing numerous business applications on the Internet and web-based applications become pervasive in the enterprise business environment, businesses must find ways to protect their valuable resources and services over the Internet.  
           [0006]    To achieve this, business may implement several access authentication schemes in order to ascertain valid user access to such resources. To access protected resources or services, users within a typical business enterprise environment must authenticate themselves to access web-based resources.  
           [0007]    In this way, business organizations are making a transition from unsophisticated network infrastructure to a sophisticated network infrastructure. Additionally, directory services are becoming an essential part of today&#39;s network-centric computing infrastructure. In making such a transition, efficient management of services and resources offered by such intelligent networks become critical. Today, many organizations have mission critical applications for users and policies on individually configurable desktop machines. This time-consuming individual configuration process is unsuitable for enterprises and service providers seeking to create intelligent networks.  
           [0008]    User management and policy based tools for managing services are becoming an important requisite for intelligent networks which should be capable of dynamically providing services. Furthermore, as businesses extend their intranet services to extranets to include suppliers, business partners, and customers providing access control increases in size and complexity. Organizations responding to the rapidly changing conditions of today&#39;s business environments, need to simplify and automate the configuration and control of their services.  
           [0009]    Directory-enabled applications also now power many important processes of an enterprise, including resource planning, value chain-management, security and firewalls, and resource provision. Directory services also play a key role in the deployment of e-business and extranet applications.  
           [0010]    One of the drivers behind the widespread market adoption of directory services is the momentum of the open Lightweight Directory Access Protocol (LDAP) standard, which provides a common language for applications and servers regardless of the underlying operating environment. As organizations learn to move with more financial, organizational and competitive agility in the market place, decisions about directory services infrastructure have a direct effect on business processes and the bottom line.  
           [0011]    Online directories that support the LDAP have become critical components of e-business infrastructure, supporting identity and risk management in several important roles. They provide a dynamic and flexible means of storing information and retrieving it over the Internet. LDAP directories can also be configured to use the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols for authenticated communications. As protected repositories of personal information, LDAP directories are also a key component for the personalized delivery of services to users of the directory and personalized treatment of information contained in the directory.  
           [0012]    In general, an LDAP directory is a specialized database that is read or searched far more often that it is written to, with a flexible mechanism for ongoing changes in the types of information that can be stored.  
           [0013]    Today, directories exist in a multitude of applications ranging from operating system management systems, PBX&#39;s badge security systems, and HR systems to email and database applications. The cost of implementing and administrating these disparate proprietary directories is great because each one must be managed independently thereby causing enormous administrative burdens and costs to already strained IT budgets. However, LDAP complaint systems leverage a single, master directory that contains all user access control information.  
           [0014]    This directory server becomes the central repository for group and single access control information to all applications on the network. The business value of a unified directory is compelling. Unified directories eliminate redundancy which lowers management costs. In addition, unified directories ensure that applications can run within and outside of an organization so that partners, customers and vendors may participate in network applications where appropriate.  
           [0015]    Furthermore, policy and management are consistent with that direction. Policy and user management leverage the directory as central policy repositories that allows a variety of servers and applications to share a consistent set of policies and user databases.  
           [0016]    Additionally, organizations need to implement user access authentication and authorization schemes to enable user access to corporate resources and services. There are several ways to which users authentication and access policies can be entered.  
           [0017]    Each application that a user tries to access may check whether the user is authenticated and, if authenticated, whether the user can access the requested resource. From a security perspective, the fact that a user can access an application even if the user is not authenticated or authorized may not be acceptable.  
           [0018]    [0018]FIG. 1 is a block diagram illustration of a directory service environment. The directory service environment depicted in FIG. 1 comprises an enterprise server  110  and applications  120 - 150 . In the environment depicted in FIG. 1, a user can directly access each of applications  120 - 150 . Access to each of applications  120 - 150  is subject to the user being authenticated by each individual application.  
           [0019]    In the environment depicted in FIG. 1, for the user to access protected resources or services, the user must authenticate. If the user authenticates successfully and if the user is authorized to access the resources, the user is given access to the resource. User access is subject to the user presenting a valid password specific to each application in order to access the particular application. This can be time consuming, especially, if the user has to work with multiple applications simultaneously, switching back and forth, etc.  
           [0020]    There are several ways in which the user&#39;s authentication and access policies can be enforced. Each application the user is trying to access may check whether the user is authenticated and if authenticated, whether the user can access the requested resource. From a security point of view, the fact that the user can access an application even if the user is not authenticated or authorized may not be acceptable. Ideally, the user should not access an application or a resource if the user is not authenticated or authorized to use that resource or application.  
         SUMMARY OF INVENTION  
         [0021]    Accordingly, in order to prevent an authenticated or unauthorized access to web resources, there should be a way to verify user&#39;s credentials before the user requests get sent to the requested resource or get serviced by the web or directory server. There must also be a way to allow the user to authenticate once to access multiple applications in an enterprise server without requiring the user to authenticate each time the user accesses an application.  
           [0022]    As the number of business applications on the Internet increases, enterprise system users are looking for an easy way to access multiple applications in a web based application environment without the inefficiencies of the prior art, an Internet infrastructure system is needed that has extensibility capabilities to allow access authentication and authorization to web-based resources and services in a business enterprise environment. Further, a need exists for a system and method of tracking user access to network resources and application services in order to provide authentication and authorization of user access requests within a business environment. A need further exists for “out-of the-box” solutions to allow technically unsophisticated end-users to connect to the Internet and access sophisticated web-based applications and resource requests without having to manually authenticate with each application or resource on each access. A need further exists for an improved and less costly device independent system, which improves efficiency and provides access to web-based content to various users of different configurations without losing the embedded features designed for these devices.  
           [0023]    What is described, in one embodiment, is a single sign-on system having a server supporting a robust authentication and authorization system. This system provides access to web-based application resources and services in a corporate directory server system. In one embodiment of the present invention, the single sign-on system includes an authentication service system that authenticates user access requests to the directory server. The user access request is typically directed to web-based software applications and services which may be specific to an organization or an entity.  
           [0024]    In one embodiment of the present invention, the authentication service system additionally includes a user agent policy system that enforces user access policy to applications in the directory server/web server environment.  
           [0025]    The present invention further includes a session service that monitors a user&#39;s session after the user has been authenticated to access particular files or resources in the directory server/web server. The session service provides the present invention the ability to bypass user re-authentication after the user has been initially authenticated and validated.  
           [0026]    Embodiments of the present invention are directed to a system and a method for accepting user login request to the enterprise server to access predefined files and applications specific to the particular user and authenticating the user&#39;s request to these applications. The present invention uses the initial user password provided to the enterprise server during authentication to grant access to subsequent applications the user may want to access after the initial login sequence.  
           [0027]    Embodiments of the present invention include a single sign-on module that is implemented as part of the server modules in an enterprise server system. The single sign-on module includes logic that allows the user to use a single password to access a number of applications in the server after authentication and authorization by the server.  
           [0028]    Embodiments of the present invention include an authentication service module. The authentication service module which provides methods for the user to authenticate to the server. In the present invention, the user may authenticate to the server by several methods that may include user authentication credentials such as user name, a user password, user organization, etc.  
           [0029]    Embodiments of the present invention further include a session service. The session service establishes a session during a user authentication sequence so that the user can be identified across different requests made to the server.  
           [0030]    Embodiments of the present invention further include a profile service module that is used to get and track the user profile of users access URLs in the server. Embodiments of the present invention also include a URL access service that uses an extensible markup language (XML) over a hypertext transport protocol (HTTP) interface of the authentication service and profile services, respectively, to validate a user&#39;s request. The URL access service validates a user&#39;s credentials thereby enforcing the user&#39;s URL access policy to resources and applications in the server.  
           [0031]    To achieve the URL access control of the present invention, embodiments also provide a software implemented process that is based on a URL access service using the XML interface to validate user requests to a particular URL. In the embodiment of the present invention, each user request to an enterprise server is intercepted by the URL access service to determine whether to grant access to a required URL or not. Embodiments of the present invention may include cookie technology as part of the request URLs. The request is presented to a session service in the enterprise server to validate the user&#39;s credentials. If the user&#39;s credentials that are valid, the request proceeds further to the URL access enforcement logic to be processed.  
           [0032]    Embodiments of the present invention further include URL enforcement logic. The URL enforcement logic provides the directory server with the ability to process user valid URL requests. If a user&#39;s request has valid user credentials, the request proceeds further for URL access enforcement. However, if the credentials are not valid, the user is requested to authenticate to the server.  
           [0033]    Embodiments of the present invention further include logic to authenticate and authorize users access to a URL. This is achieved by implementing a URL access service that sends a request to the profile service to retrieve a user&#39;s URL access policy.  
           [0034]    Embodiments of the present invention also include fail-over logic. The fail-over logic enables the URL policy enforcement service to configure a secondary server independent of the primary server when a primary server fails.  
           [0035]    Embodiments of the invention include a token identification system and method that uniquely identifies an authenticated user to specific applications within the applications environment. The token identification process sets a unique identifier after the user&#39;s request (to particular applications in the server) is authenticated and validated. The unique identifier allows the present invention to track the user&#39;s session activities within specific applications. These application have pre-defined rights and privileges that may be set to determine which users, entities, sub-applications may have access to a particular application.  
           [0036]    These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0037]    The accompanying drawings, which are incorporated in and form a part of this specification, illustrates embodiments of the invention and, together with the description, serve to explain the principles of the invention:  
         [0038]    [0038]FIG. 1 is a block diagram of an Internet infrastructure environment of the prior art;  
         [0039]    [0039]FIG. 2 is a block diagram of one embodiment of the Internet infrastructure of the present invention;  
         [0040]    [0040]FIG. 3 is a block diagram of one embodiment of the server of the present invention;  
         [0041]    [0041]FIG. 4 is a block diagram of an embodiment of the architecture of the applications and resource access authentication and authorization system of the present invention;  
         [0042]    [0042]FIG. 5 is a block diagram of one embodiment of the single sign-on service module of FIG. 3; and  
         [0043]    [0043]FIG. 6 is a block diagram of an exemplary process flow implementation of a single sign-on process of an embodiment of the present invention.  
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0044]    Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments.  
         [0045]    On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.  
         [0046]    Embodiments of the invention are directed to a system, an architecture, subsystem and method to manage and control access to a uniform resource locator (URL) resources and applications in a network environment in a way superior to the prior art. In accordance with an aspect of the invention, a single sign-on system in an Internet server system provides user access to resources and applications stored in a server connected to the Internet.  
         [0047]    In the following detailed description of the present invention, a system and method for an Internet protocol-based resource and applications access system are described. Numerous specific details are not set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof.  
         [0048]    Generally, an aspect of the invention encompasses providing a single sign-on system to web-based applications which provides access to a wide range of applications and other services to online users who may connect to an enterprise server system.  
         [0049]    [0049]FIG. 2 is a block diagram illustration of a server environment. The server environment depicted in FIG. 2 comprises a server  210  and applications  220 - 250 . In the environment depicted in FIG. 2, a user can directly access each of applications  220 - 250 . Access to URLs in each of applications  220 - 250  is subject to the user being authenticated by each individual application.  
         [0050]    In the environment depicted in FIG. 2, for the user to access protected resources or services, the user must authenticate. If the user authenticates successfully and if the user is authorized to access the resources, the user is given access to the resource. In the environment shown in FIG. 2, a user&#39;s URL request to applications  220 - 250  is centrally handled by a URL access service of the present invention in server  210 . The server  210  of the present invention may be a portal server, a directory server, a web-server or the like.  
         [0051]    [0051]FIG. 3 is a block diagram depiction of one embodiment of the server of the present invention. In the exemplary directory shown in FIG. 3, the server  210  comprises login module  300 , single sign on service module  310 , authentication module  320 , session module  330  and profile module  340 .  
         [0052]    The authentication module  320  provides the single sign on service authentication of the present invention. The authentication module  320  provides the server  210  (FIG. 2) with the logic and option to protect Internet software applications and services from unauthorized authenticated users of these applications.  
         [0053]    The authentication module of FIG. 3 further provides the server  210  with the access implementation logic to selectively allow access to specified applications and services within enterprise organizations. By selectively allowing only authorized and authenticated users access to particular files within an organizations file database, the authentication module  320  ensures that corporate enterprise resources are efficiently and effectively utilized.  
         [0054]    Further, the authentication module  320  allows authenticated users of the server  210  with continuous and uninterrupted use of resources and applications available on the server  210  without needing to login into each application the user attempts to access.  
         [0055]    The login module  300  provides login services to the server  210 . Login module  300  includes logic to enable the tracking of a user&#39;s password to enable the single-sign-on (SSO) services to function in the server  210 .  
         [0056]    Still referring to FIG. 3, single sign on service module  310  controls and keeps track of user identification once the user is authenticated. The user identification contains information such as the user&#39;s name, the user&#39;s authentication method, the user&#39;s authentication level, etc. The single sign on service module  310  provides a mechanism by which users need to authenticate only once and access multiple web-based applications without having to reauthenticate. Additionally, the single sign on service module  310  provides interfaces for applications to store generic key-value pairs and to register callback listeners, which are invoked when a single sign on token is destroyed.  
         [0057]    The session module  330  provides a session tracking mechanism to enable the authentication logic of the present invention to track a user&#39;s login session to the server  210 . The session module  330  logs the user&#39;s access of each application for which the user is authenticated to access. By logging the user&#39;s access to applications on the server  210 , the authentication module is able to automatically authenticate the user&#39;s access to subsequent applications, after the initial login, without requiring a separate manual re-login.  
         [0058]    The profile module  340  provides user profile information to the authentication module  320 . The profile module  340  provides an XML over http(s) interface for obtaining user, service and policy information. A user&#39;s profile information typically includes the user-name, the user&#39;s password, the user&#39;s entity within a particular organization.  
         [0059]    The profile information further defines the user&#39;s application access rights which determine or set forth user&#39;s rights to files and directory within applications and resources in server  210 . The profile module  340  is ideally suitable for policy enforcement agents.  
         [0060]    [0060]FIG. 4 is a block diagram illustration of an internal architecture of one embodiment of the authentication module  320  of the present invention. As shown in FIG. 4, the authentication module  320  comprises client interface module  400 , authentication interface module  410 , authentication service module  420  and authentication framework module  430 .  
         [0061]    The client interface module  400  provides a plurality of client interfaces. The first of these is an interface to the authentication service  320  which provides an HTML interface, and the other is in the form of Java interface which provides Java interfaces. Although there are two client interfaces, both use the same underlying authentication framework and authentication modules.  
         [0062]    The authentication services module  420  is provided as a service within a servlet container using Java Servlet in one embodiment. Thus, the authentication service module  420  can be deployed in a web server and an applications server that support a servlet container. The client interface module  400  provided by the authentication service module  420  is HTML over HTTP(s), which makes it convenient to use with a web browser. Since most Internet service providers provide Internet solutions via a web browser, using the client interface  400  provides the user with one means of utilizing the embodiments of the present invention.  
         [0063]    In a typical implementation of the present invention, the authentication service module  420  (which is implemented as a URL) is presented as a login page which an organization or users are re-directed to an authentication process when users access a resource that is protected. The authentication service module  420  guides the user through a series of one or more screens for credentials gathering (like user name, password, employee number, etc.), based on the requirements of the authentication modules that are configured.  
         [0064]    For simple authentication modules like LDAP and Unix, the required credentials may be a user name and password and may be obtained in one screen. However, for complicated challenged-response type authentication algorithms, more login screens would be required.  
         [0065]    Once the user has provided the required credentials, the authentication service module  420  relies on the authentication framework module  430  to determine if the user has been successfully authenticated. If the authentication is successful, the user is re-directed to organizations or service home page (URL). If the authentication process fails, the user is re-directed to an error page (URL). Both of the re-direction URLs are configurable by the system administrator.  
         [0066]    Once a user has authenticated successfully, the user is issued an encrypted login token identity using the cookie or URL-rewriting mechanism provided by HTTP in one embodiment. The login token is used to access different applications without having to re-authenticate.  
         [0067]    The authentication framework module  430  couples the client interface module  400  to the authentication service module  420 . The authentication framework module  430  provides the configuration of authentication modules in the authentication service module  420  based on an organization or a user. The authentication framework module  430  further provides a chaining mechanism for the authentication modules in authentication service module  420 .  
         [0068]    [0068]FIG. 5 is block diagram depiction of one embodiment of the single sign on service module  310  of the present invention. As shown in FIG. 5, the single sign on service module  310  comprise token manager  500 , token provider  550 , token identification module  510 , token listener  520  and token client  530 .  
         [0069]    As mention in previous sections, once the user has been authenticated, it is possible to get a single sign on token (SSO token). This token is the basis for providing a single sign on solution in the server  210 . All the server  210  services and interfaces require a valid SSO token in order to process a user&#39;s request to access a particular service or application in the server  210 . Other applications wishing to participate in the SSO solution must use the SSO token to validate the user&#39;s identity.  
         [0070]    Token manager  500  provides and maintains a configuration database of the valid SSO providers (e.g., valid implementations for SSO Provider, SSOToken and SSOTokenID). A request to the token manager  500  gets delegated to the token provider module  550 . In one embodiment of the present invention, the token manager  500  comprises multiple SSO providers. There can be a set of configurations used by the token manager  500  to determine which provider to use for a particular case. Furthermore, the providers implement interfaces made public by the single sign-on module  310 . Implementing such interfaces gives the sign-on module  310  the flexibility of adding additional providers by implementing that interface or re-implementing a provider with a different implementation to replace an existing provider.  
         [0071]    Token provider  550  provides the SSO tokens that contain crucial information about a particular token. The token provider  550  encrypts the SSO token id and all its attributes (including properties) before storing them in an HTTP session. This is done for security reasons, since it is possible for other servlets within server  210  to receive crucial information and possibly modify the SSO token id and its attributes. Additionally, where the user&#39;s request is presented in the form of a cookie, which contains the SSO token id, the cookie can be used to verify the validity of the encrypted SSO token in the HTTP session.  
         [0072]    The token identification module  510  stores the SSO token ids that are used by the token manager  500  to validate the user&#39;s request to the server  210 .  
         [0073]    Still referring to FIG. 5, the SSO token provides a listener mechanism via token listener  520  for applications that need notification when the SSO token expires. The SSO token could expire because it could have reached a maximum allowable session time, or idle time, or an administrator could have terminated the session.  
         [0074]    Applications that require notification must register a callback object (which implements SSO tokenlistener interface) with the SSO token. The callback object is invoked when the SSO token expires. Applications can also determine the time and the cause for the SSO token to expire.  
         [0075]    The token client  530  stores the application program interfaces (APIs) for the single sign on solution of the present invention. The token client  530  also stores the authentication policies for the various APIs that the SSO module  310  uses.  
         [0076]    [0076]FIG. 6 represents a flow diagram depiction of an exemplary process flow in accordance with one embodiment of the single sign-on access processing of the present invention. The steps performed by the diagram of FIG. 6 are performed by a computer system processor executing memory stored instructions which make up a program or application.  
         [0077]    As shown in FIG. 6, the processing of a user&#39;s single sign-on access request is initiated at step  600  when a user&#39;s URL request is presented to the single sign-on access service module  310 . At step  610 , the user is authenticated via the authentication service  330 . Upon authenticating, the user&#39;s credentials are checked at processing step  620  to ensure the user is authorized to access the web-based applications participating in the single sign-on solution of the present invention in server  210 . In one embodiment of the present invention, the user&#39;s credential includes the user&#39;s login name, the user&#39;s password and the organization or entity the user belongs to within the enterprise.  
         [0078]    At step  630 , if the check of the user&#39;s credentials results in invalid credentials, the user is requested to re-authenticate at processing step  610 . If, on the other hand, the user&#39;s request includes valid user credentials, the single sign-on token manager is invoked at processing step  640 . In the present invention, the single sign-on token manager maintains and retrieves valid single sign-on tokens that are provided to authorized and validated user.  
         [0079]    At step  650 , a valid user is assigned an identifying token to enable the user access to a suite of identified and permitted applications in server  210 . In the present invention, the tokens assigned to a validated user include listener logic for applications that need notification when the tokens expire at step  660 . If the token assigned to an authenticated user expires, the user is denied access to authorized applications at step  680 , and the single sign-on processing of user URL access requests terminates at step  695 .  
         [0080]    At step  670 , if the user assigned token has not expired, the user is granted access to the authorized applications which the user can access. This access is allowed without the user needing to re-login to any of the suite of applications. The user can enter or exit applications at will without having to login to these applications while the token is valid during a session.  
         [0081]    The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.