Abstract:
A method for providing SSO authentication when accessing non-SSO-compliant applications, the method including forwarding a user name and a password received from a non-SSO-compliant application to an SSO proxy, encapsulating the user name and password in a request to access a protected application, authenticating the user name and password responsive to the request using SSO authentication, and generating an SSO token if said authentication step is successful.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to client-server technology in general, and in particular to integrating non-SSO-compliant applications into an SSO system.  
       BACKGROUND OF THE INVENTION  
       [0002]     Network-based applications often make use of many different technologies, object models, and programming languages, from simple Perl scripts and standalone applications implemented in C++ or Java™, to sophisticated applications running on J2EE application servers. In the past, access security was the responsibility of each application, requiring users to employ different user names and passwords for different applications. As users required access to increasing numbers of applications of all types, single sign-on (SSO) mechanisms were developed to standardize access security protocols and form application domains whereby users are given access to applications within the domain without having to separately sign on to each application. To accomplish this, all security algorithms are typically found in a single SSO server which acts as the only authentication point for a defined domain. Thus, a user signs on and is authenticated only once, and thereafter may securely interact with many different elements within a given domain. This is typically done by generating an SSO token for the user after the user is first authenticated, providing the token to the user, and thereafter having the user pass the token to other SSO applications which validate the token with the SSO server.  
         [0003]     Unfortunately, not all applications are SSO-compliant. To remedy this, non-SSO-compliant applications may be modified internally to implement SSO mechanisms. However, such applications would need to be modified each time there is a change to the SSO protocol at the SSO server level. Enabling non-SSO-compliant applications to work within an SSO framework without requiring that the applications be modified internally to implement SSO mechanisms would therefore be advantageous.  
       SUMMARY OF THE INVENTION  
       [0004]     The present invention discloses a system and method for integrating non-SSO-compliant applications into an SSO system.  
         [0005]     In one aspect of the present invention a method is provided for providing SSO authentication when accessing non-SSO-compliant applications, the method including forwarding a user name and a password received from a non-SSO-compliant application to an SSO proxy, encapsulating the user name and password in a request to access a protected application, authenticating the user name and password responsive to the request using SSO authentication, and generating an SSO token if the authentication step is successful.  
         [0006]     In another aspect of the present invention the method further includes providing the SSO token, the user name, and a notification of the successful authentication to a server.  
         [0007]     In another aspect of the present invention the method further includes providing the SSO token and the user name to the protected application.  
         [0008]     In another aspect of the present invention the method further includes providing the token and a notification of the successful authentication to the SSO proxy.  
         [0009]     In another aspect of the present invention the method further includes configuring the SSO proxy as an HTTP client.  
         [0010]     In another aspect of the present invention the method further includes configuring the encapsulated request as an HTTP request.  
         [0011]     In another aspect of the present invention the method further includes sending the request to a J2EE server.  
         [0012]     In another aspect of the present invention the method further includes configuring the protected application as a protected HTTP servlet residing on a J2EE server.  
         [0013]     In another aspect of the present invention a system is provided for SSO authentication for use with non-SSO-compliant applications, the system including an SSO proxy operative to receive a user name and password from a non-SSO-compliant application and encapsulate the user name and password in a request to access a protected application, and an authenticator operative to authenticate the user name and password responsive to the request using SSO authentication and generate an SSO token if the authentication is successful.  
         [0014]     In another aspect of the present invention the authenticator is operative to provide the SSO token, the user name, and a notification of the successful authentication to a server.  
         [0015]     In another aspect of the present invention the server is operative to provide the SSO token and the user name to the protected application.  
         [0016]     In another aspect of the present invention the protected application is operative to provide the token and a notification of the successful authentication to the SSO proxy.  
         [0017]     In another aspect of the present invention the SSO proxy is an HTTP client.  
         [0018]     In another aspect of the present invention the encapsulated request is an HTTP request.  
         [0019]     In another aspect of the present invention the server is a J2EE server.  
         [0020]     In another aspect of the present invention the protected application is a protected HTTP servlet residing on a J2EE server.  
         [0021]     In another aspect of the present invention a method is provided for providing SSO authentication when accessing non-SSO-compliant applications, the method including forwarding a user name and token received from a non-SSO-compliant application to an SSO proxy, encapsulating the user name and token in a request to access a protected application, authenticating the token responsive to the request using SSO authentication, and generating a security context for the request if the authentication step is successful.  
         [0022]     In another aspect of the present invention the generating step includes generating the security context to include the authenticated token and the user name.  
         [0023]     In another aspect of the present invention the method further includes passing the request, the user name, and a notification of the successful authentication to a server.  
         [0024]     In another aspect of the present invention the method further includes passing the request, the user name, and a notification of the successful authentication to the protected application.  
         [0025]     In another aspect of the present invention the method further includes comparing the user name received with the request with the user name received with the security context of the request, and providing an affirmative response to the request if the user names match. In another aspect of the present invention the providing step includes providing the affirmative response to the SSO proxy.  
         [0026]     In another aspect of the present invention the method further includes configuring the SSO proxy as an HTTP client.  
         [0027]     In another aspect of the present invention the method further includes configuring the encapsulated request as an HTTP request.  
         [0028]     In another aspect of the present invention the method further includes sending the request to a J2EE server.  
         [0029]     In another aspect of the present invention the method further includes configuring the protected application as a protected HTTP servlet residing on a J2EE server.  
         [0030]     In another aspect of the present invention a system is provided for SSO authentication for use with non-SSO-compliant applications, the system including an SSO proxy operative to receive a user name and token from a non-SSO-compliant application and encapsulate the user name and token in a request to access a protected application, and an authenticator operative to authenticate the user name and token responsive to the request using SSO authentication and generate a security context for the request if the authentication step is successful.  
         [0031]     In another aspect of the present invention the security context includes the authenticated token and the user name. In another aspect of the present invention the authenticator is operative to pass the request, the user name, and a notification of the successful authentication to a server.  
         [0032]     In another aspect of the present invention the server is operative to pass the request, the user name, and a notification of the successful authentication to the protected application.  
         [0033]     In another aspect of the present invention the protected application is operative to compare the user name received with the request with the user name received with the security context of the request, and provide an affirmative response to the request if the user names match.  
         [0034]     In another aspect of the present invention the protected application is operative to provide the affirmative response to the SSO proxy.  
         [0035]     In another aspect of the present invention the SSO proxy is an HTTP client.  
         [0036]     In another aspect of the present invention the encapsulated request is an HTTP request.  
         [0037]     In another aspect of the present invention the server is a J2EE server.  
         [0038]     In another aspect of the present invention the protected application is a protected HTTP servlet residing on a J2EE server.  
         [0039]     In another aspect of the present invention a method is provided for implementing SSO authentication in support of non-SSO-compliant application access, the method including providing a SSO proxy operative to receive a user name and a password from a non-SSO-compliant application, and configuring the SSO proxy to a) encapsulate the user name and password in a request to access a protected application, and b) send the request to a computer operative to c) authenticate the user name and password responsive to the request using SSO authentication, and d) generate an SSO token if the authentication is successful.  
         [0040]     In another aspect of the present invention a computer program is provided embodied on a computer-readable medium, the computer program including a first code segment operative to forward a user name and a password received from a non-SSO-compliant application to an SSO proxy, a second code segment operative to encapsulate the user name and password in a request to access a protected application, a third code segment operative to authenticate the user name and password responsive to the request using SSO authentication, and a fourth code segment operative to generate an SSO token if the authentication is successful. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0041]     The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:  
         [0042]      FIG. 1  is a simplified block-flow diagram of an SSO system supporting authentication by password for non-SSO-compliant applications, constructed and operative in accordance with a preferred embodiment of the present invention;  
         [0043]      FIG. 2  is a simplified flowchart illustration of an exemplary method of operation of the system of  FIG. 1 , operative in accordance with a preferred embodiment of the present invention;  
         [0044]      FIG. 3  is a simplified block-flow diagram of an SSO system supporting authentication by password for non-SSO-compliant applications, constructed and operative in accordance with a preferred embodiment of the present invention; and  
         [0045]      FIG. 4  is a simplified flowchart illustration of an exemplary method of operation of the system of  FIG. 1 , operative in accordance with a preferred embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0046]     Reference is now made to  FIG. 1 , which is a simplified block-flow diagram of an SSO system supporting authentication by password for non-SSO-compliant applications, constructed and operative in accordance with a preferred embodiment of the present invention, and  FIG. 2 , which is a simplified flowchart illustration of an exemplary method of operation of the system of  FIG. 1 , operative in accordance with a preferred embodiment of the present invention. In the system of  FIG. 1  and method of  FIG. 2 , a non-SSO-compliant application  100  is accessed by a computer user  102  who provides a user name and password to application  100 . Application  100  then provides the user name and password to an SSO proxy  104 , preferably being an HTTP client. Proxy  104  sends the user name and password in a request, preferably encapsulated in an HTTP request, to a server  108 , preferably being a J2EE server, to access an application  106 , preferably being a protected HTTP servlet. Server  108  passes the request to an authenticator  110 , typically residing on server  108 , which authenticates the user name and password using any SSO authentication technique. If the user name and password fails the authentication process, authenticator  110  notifies server  108  of the failed authentication. Server  108  then notifies proxy  104  of the failed authentication, whereupon the proxy  104  may likewise notify non-SSO-compliant application  100  of the failed authentication, which in turn may likewise notify user  102  of the failed authentication. If the user name and password passes the authentication process, authenticator  110  generates an SSO token and passes it to server  108  along with the user name and a notification that the user passed. Server  108  then passes the user name and token to application  106  along with the authentication notification. Application  106  then passes the token and the authentication notification to proxy  104 , typically by first passing the token and the authentication notification to server  108 , which then passes the token and the authentication notification to proxy  104 . Proxy  104  may then pass the token on to the user.  
         [0047]     Reference is now made to  FIG. 3 , which is a simplified block-flow diagram of an SSO system supporting authentication by token for non-SSO-compliant applications, constructed and operative in accordance with a preferred embodiment of the present invention, and  FIG. 4 , which is a simplified flowchart illustration of an exemplary method of operation of the system of  FIG. 3 , operative in accordance with a preferred embodiment of the present invention. In the system of  FIG. 3  and method of  FIG. 4 , where authenticator  110  has already authenticated user  102  and generated an SSO token for user  012 , the next time user  102  wishes to access a non-SSO-compliant application, which may again be application  100  or a different application, the user provides his user name and token. Application  100  sends the user name and token to proxy  104  and requests authentication. Proxy  104  sends the user name and token in a request, preferably encapsulated in an HTTP request, to server  108  to access application  106 . Server  108  passes the request to authenticator  110  which authenticates the token using any SSO authentication technique. If the token fails the authentication process, authenticator  110  notifies server  108  of the failed authentication. Server  108  then notifies proxy  104  of the failed authentication, whereupon proxy  104  may likewise notify application  100  of the failed authentication, which in turn may likewise notify user  102  of the failed authentication. If the token passes the authentication process, authenticator  110  generates a security context for the request, which preferably includes the authenticated token and associated user name, and passes the request to server  108  along with the user name and a notification that the token passed authentication. Server  108  then passes the request to application  106  along with the user name and the authentication notification. Application  106  then requests the security context of the request from authenticator  110 . Application  106  then compares the user name received with the request with the user name received with the security context of the request. If the user names match, application  106  then passes to server  108  an affirmative response to the request, which server  108  then forwards to proxy  104 .  
         [0048]     It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.  
         [0049]     While the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques. Thus, for example, client-side components described hereinabove may be implemented using the Extensible Markup Language (XML), Hypertext Markup Language (HTML), JavaScript™, Java Applets, ActiveX™, or any combination thereof.  
         [0050]     While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.