Abstract:
The present invention automatically signs or logs a user in to access secured features within a software application without prompting manual intervention when a user starts the software application having secured features. When the software application is started and an automatic sign-in condition is enabled, the software application transitions to a signed-in or logged-in state as long as security criteria are met. As a result, unnecessary and repetitive steps are avoided when signing-in. The automatic sign-in condition may be enabled through initial system setup, from a prompt to enter a credential, or through a service options menu. The present invention improves network efficiency by limiting network transmissions to an as needed basis. The automatic sign-in condition is capable of roaming to other computers within a network, thereby following mobile users. Further, the automatic sign-in condition is controllable by network administrative policy, giving network administrators the ability to disable its functionality when desired.

Description:
TECHNICAL FIELD  
         [0001]    The present invention generally relates to computer systems that authenticate the identity of users or computing devices. More specifically, the present invention relates to computer operations for signing-in to software applications having secured features.  
         BACKGROUND OF THE INVENTION  
         [0002]    Today&#39;s software applications are manufactured with network service capability that requires users and computers to verify their identity by signing-in to access secured features within software applications and thereby connecting to authentication services.  
           [0003]    Authentication services such as PASSPORT.NET available from MICROSOFT CORPORATION of Redmond, Wash. are becoming an integral part of software applications needing to authenticate users for access to secured features. These authentication services control access to secured features within software applications and provide identity and authentication services for network users. For instance, a secured network fax service used from within a word processing application would require the entry of a username and password to authenticate the identity of the user and authorize use of the network fax service. Once identity is authenticated, the authentication operation acts as an authentication gateway by allowing users to securely access network services within the word processing application without entering a username and password at every network service or website accessed during the signed in session.  
           [0004]    However users must still enter a username and password or click a sign-in button to initially access secured features within a software application. One drawback of current sign-in operations is their pervasiveness, requiring user intervention with an interface to sign-in to secured software features on a repetitive basis. This must be done every time a user signs-in after closing a software application with secured features. For instance, if a user wants to use a secured feature within a software application the user must start the application and either type in a username and password or click on an interface button to enter a saved password. If the user changes computers the benefit of a saved password is lost and the user is again prompted to enter a username and password. These drawbacks have an annoying affect on users who access secured features on a regular basis.  
           [0005]    Further, some web-based cookie operations save passwords and usernames but still have a number of drawbacks. First of all the web-based systems still require user prompts and intervention with saved password displays. Secondly, the ‘save password’ functionality is lost if the user changes computers. Lastly, sign-in operations are not controllable by network administrative policy and are not adaptable to network preferences.  
           [0006]    It is with respect to these considerations and others that the present invention has been made.  
         SUMMARY OF THE INVENTION  
         [0007]    In accordance with the present invention, the above and other problems are solved by automatically signing-in to access secured features within software applications. The present invention automatically signs a user in without user interface prompts or manual intervention when a user starts a software application having secured features. When a software application is started and an automatic sign-in condition is enabled, the software application transitions to a signed-in state as long as security criteria are met. The transition to a signed-in state takes place without prompting a user to enter a credential (e.g. username and password). As a result, unnecessary and repetitive steps are avoided when signing-in and intrusive pop-up sign-in dialogs at random intervals are less likely while using the software application.  
           [0008]    Another feature of the present invention is that the automatic sign-in condition is initiated in a number of ways. An automatic sign-in condition may be initiated through initial system setup, from a prompt to enter a credential, or through a service options menu. This feature permits the software applications in a suite to each have an enabled automatic sign-in condition. This enhances the ability of the software applications to work well together.  
           [0009]    In another feature of the present invention, credential information is stored in an encrypted format as a domain credential. Further, a registry key is set, thereby enabling an automatic sign-in condition. This offers advantages of added security and roaming capabilities.  
           [0010]    The invention may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier, readable by a computing system and encoding a computer program of instructions for executing a computer process.  
           [0011]    An advantage of the present invention is that network efficiency is improved because network transmissions are executed on an as-needed basis. Although the software application is in a signed-in state, network traffic is reduced by only making network transmissions when secured features are requested.  
           [0012]    Another advantage of the present invention is that the automatic sign-in condition is capable of roaming to other computers within a network, thereby following mobile users. A further advantage of the present invention is that the automatic sign-in condition is controllable by network administrative policy, giving network administrators the ability to disable its functionality when desired.  
           [0013]    The great utility of the invention is that after starting a software application, users are automatically signed-in to access secured features within the software application without utilizing user prompts for credential entry and requiring manual intervention.  
           [0014]    These and various other features as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and review of the associated drawings.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    [0015]FIG. 1 is a diagram illustrating system architecture utilized in an actual embodiment of the present invention;  
         [0016]    [0016]FIG. 2 illustrates one computing environment in which the invention may be implemented;  
         [0017]    [0017]FIGS. 3 and 4 are screen diagrams showing illustrative computer displays provided by an actual embodiment of the present invention;  
         [0018]    [0018]FIG. 5 illustrates a flow of operations to perform sign-in to a software application having secured features in one embodiment of the present invention;  
         [0019]    [0019]FIG. 6 illustrates an embodiment of the present invention where an automatic sign-in condition is enabled from a credential request prompt displayed after a request to sign-in;  
         [0020]    FIGS.  7 A-B illustrate another embodiment of the present invention where a software application having secured features is transitioned to a signed-in state based on specific security criteria and conditions being satisfied. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0021]    Referring to FIG. 1, an illustrative diagram showing a system architecture  10  utilized in an actual embodiment of the present invention will be described. As shown in FIG. 1, a client computer  20  is provided that connects to an authentication server  60  through a network  40 . According to one actual embodiment described herein, the client computer  20  comprises a standard personal computer that connects to a network  40 , such as the Internet through a connection, such as a Digital Subscriber Line or a cable modem. However, it should be appreciated that the client computer  20  may comprise another type of computing device such as a personal digital assistant and may be connected to the network  40  through another type of connection, such as a dial up or satellite connection.  
         [0022]    The client computer  20  is capable of executing a standard Web browser application program such as INTERNET EXPLORER from MICROSOFT CORPORATION of Redmond, Wash. The Web browser application program may be utilized to access secured network sites and services  80  if the client computer  20  has an authenticated credential. A credential is authenticated after the client computer  20  transmits the credential to the authentication server  60  through the network  40 . The authentication server  60  authenticates the identity of users before granting a user access to secured services or websites  80 . For instance, before a user of client computer  20  may access a secured faxing or printing service within a word processing software application equipped with secured faxing and printing features, the user must submit a credential (e.g. username and password) to the authentication server  60  via the network  40 .  
         [0023]    Client computer  20  prompts the user to sign-in or login to access secured features within the software application with a credential whenever a secured feature within the software application is requested. However, when a condition of automatic sign-in is enabled on client computer  20 , the necessity of user intervention is removed and the software application transitions to a signed-in state without prompting action on the part of the user. If the automatic sign-in condition is enabled, and security criteria are met, a signed-in state is achieved when the software application having secured features is launched.  
         [0024]    Once the credential is validated, authentication server  60  returns an encrypted cookie to the client computer  20 . The encrypted cookie gives the client computer  20  access to secured services and websites. Once the memory for the software application receives the encrypted cookie, client computer  20  may access secured sites and services through the software application via the network  40  without authenticating the credential again during a signed-in session. However, if the user exits the software application and starts the secured features within software application again, the user will be prompted to enter a credential unless automatic sign-in is active and enabled within the software application on client computer  20 .  
         [0025]    [0025]FIG. 2 illustrates a suitable computing environment in which embodiments of the invention may be implemented. One embodiment of the invention will be described in the general context of computer-executable instructions being executed by a personal computer. Those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.  
         [0026]    With reference to FIG. 2, an exemplary system for implementing the invention includes a general purpose computing device in the form of a conventional client computer  20 , including a processing unit  204 , a system memory  206 , and a system bus  212  that couples various system components including the system memory to the processing unit  204 . The system bus  212  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM)  210  and random access memory (RAM)  208 . A basic input/output system  222  (BIOS), containing the basic routine that helps to transfer information between elements within the client computer  20 , such as during start-up, is stored in ROM  210 .  
         [0027]    The client computer  20  further includes a storage device  214  for storing an operating system  216 , software application programs with secured features  230 , such as OFFICE from MICROSOFT CORPORATION of Redmond, Wash., other application programs  235 , a standard Web browser application program such as INTERNET EXPLORER from MICROSOFT CORPORATION of Redmond, Wash., and registry information, wherein an encrypted credential is written and an automatic sign-in enable mechanism is registered. The operating system  216  works in conjunction with a credential manager  232 , which is a mechanism used to securely store credentials on the client computer  20 .. Further the operating system  216  works in conjunction with an encrypted cookie  228  that is sent from authentication server  60 . The encrypted cookie  228  gives the client computer  20  access to secured services and sites running on the network  40 .  
         [0028]    An encrypted cookie  228  may be obtained after the user starts and signs-in to one of the software application having secured features  230  by entering a credential when prompted. If a condition of automatic sign-in is enabled when the user starts one of the software applications  230 , the sign-in or login prompt is bypassed and the client computer  20  signs-in to the software application without intervention from the user. When a condition of automatic sign-in or login is enabled an auto sign-in or login registry key  234  is active and an authenticated credential is stored in the credential manager  232 . The registry key  234  written in home HKEY current user (hkcu) has roaming characteristics that may follow a user profile to other client computers, therefore enabling the roaming characteristics of the automatic sign-in or login condition.  
         [0029]    The storage device  214  is connected to the CPU  204  through a storage controller (not shown) connected to the bus  212 . The storage device  214  and its associated computer-readable media, provide non-volatile storage for the client computer  20 . Although the description of computer-readable media contained herein refers to a storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the personal computer  20 .  
         [0030]    By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.  
         [0031]    Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media. Computer-readable media may also be referred to as computer program product.  
         [0032]    According to various embodiments of the invention, the client computer  20  may operate in a networked environment using logical connections to remote computers through a network  40 , such as the Internet. The client computer  20  may connect to the network  40  through a network interface unit  220  connected to the bus  212 . It should be appreciated that the network interface unit  220  may also be utilized to connect to other types of networks and remote computer systems. The client computer  20  may also include an input/output controller  222  for receiving and processing input from a number of devices, including a keyboard, mouse, or electronic stylus (not shown in FIG. 2). Similarly, an input/output controller  222  may provide output to a display screen, a printer, or other type of output device.  
         [0033]    As mentioned briefly above, a number of program modules and data files may be stored in the storage device  214  and RAM  208  of the client computer  20 , including an operating system  216  suitable for controlling the operation of a networked personal computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash. The storage device  214  and RAM  208  may also store one or more data files. In particular, the storage device  214  and RAM  208  may store the credential that is written to the credential manager  232  and registry data written to the registry  233 . Additional details regarding the operation of the automatic sign-in or login operation will be described in greater detail below.  
         [0034]    Referring now to FIG. 3, a screen diagram will be described that shows an illustrative computer display provided by an actual embodiment of the present invention. FIG. 3 shows a user interface  30  that is displayed when a credential is requested in order to access secured features within a software application. After a user name  32  and password  34  are received, an option or checkbox for enabling an automatic sign-in or login condition is presented as a checkbox  36 . If the checkbox  36  is affirmed or clicked an operation to enable an automatic sign-in or login condition is initiated.  
         [0035]    Turning to FIG. 4 a screen diagram will be described that shows an illustrative computer display provided by an actual embodiment of the present invention. FIG. 4 shows a user interface  40  that is displayed in response to a user selecting a service option menu to review or modify client computer  20  preferences for interacting with network services and sites. Alternatively, an automatic sign-in condition may be initiated from user interface  40 . If an automatic sign-in condition has not been enabled, a user name  42 , an option to save the password, and the auto sign-in option  48  are displayed with blank fields. To initiate the operation to enable the automatic sign-in condition the username  42 , save password  46  and the auto sign-in fields are filled in and affirmed or activated. The user name is filled by clicking the Sign-In button  44  which displays the user interface  30  allowing a user to enter a user name and password.  
         [0036]    If the save password option  46  is affirmed without automatic sign-in  48  being affirmed, the sign-in or login operation will still display a request prompt for user intervention. For instance the user may be required to click on a ‘Sign-In” button on the user interface. Further, the auto sign-in option  48  is grayed as inactive until the save password option  46  is affirmed. If the user selects Sign-In  44 , a user interface  30  to enter a credential will be displayed. Additional details regarding enabling an automatic sign-in or login condition and signing-in without user intervention will be provided below.  
         [0037]    The logical operations of the various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.  
         [0038]    [0038]FIG. 5 illustrates an operational flow  500  executed or performed to automatically sign-in or login to a software application having secured features without prompting user intervention. The operational flow  500  starts with an enabling operation  502  whereby an automatic sign-in condition is registered. Referring to FIG. 6 an operation flow  600  illustrates an embodiment of the present invention in enabling operation  502  where an automatic sign-in or login condition is enabled from a credential request prompt  30  displayed in display operation  604  after a request to sign-in for access to secured features in receipt operation  602 . The enabling of an automatic sign-in condition may be performed by displaying a request  30  to sign-in or login for access to the secured software application, receiving a credential  32  and  34  for signing-in logging-in to a software application having secured features in receipt operation  606 , and receiving a request  36  to hereafter sign-in or login to software applications having secured features automatically in receipt operation  608 . Receiving a request may be accomplished by a user clicking on a “sign me in automatically” checkbox.  
         [0039]    Next the automatic sign-in condition is further enabled by authenticating the credential in authentication operation  610  and detecting whether the credential is valid in detect operation  612 . Here the encrypted credential is transmitted to authentication server  60  where a determination is made as to whether the credential is valid. If the credential is not valid, operational flow  600  branches back to display operation  604 . However if the credential is valid operation flow  600  proceeds by storing the credential  32  and  34  in a credential manager  232  and activating registry key  233  in writing operation  614 . At this point the automatic sign-in condition is enabled. Operation control returns to other routines at connector  620 .  
         [0040]    Turning back to FIG. 5, after the automatic sign-in condition has been enabled in enable operation  502 , the software application is started or launched in operation  504  while in the automatic sign-in condition. Detect operation  506  then determines whether security criteria are satisfied. Security criteria may comprise a network connection being detected, a valid credential being stored, the registry key being active, a lock being used, and more. If detect operation  506  detects that the security criteria are not satisfied, operational flow  500  exits at operation  508 .  
         [0041]    If detect operation  506  detects that the security criteria are satisfied, the software application transitions to a signed-in state at transition operation  510 , thereby granting access to secured features without prompting manual intervention to enter a credential or click on a sign-in button. Operation control returns to other routines at connector  512 .  
         [0042]    FIGS.  7 A-B illustrate another embodiment of the present invention where a software application having secured features is transitioned to a signed-in or logged-in state in operational flow  700  based on starting the software application with start operation  722  and specific security or automatic login criteria and conditions being satisfied. After starting the software application detection operation  723  determines whether a network connection exists. If the network connection is not present the automatic sign-in condition is hindered and control is returned to other routines at connector  738 .  
         [0043]    If the network connection is present, operational flow  700  then advances to detection operation  724  where a determination is made as to whether one or more other software applications having secured features are currently in a running or open state. If one or more other applications are in a running or open state, operational flow  700  returns control to other routines at connector  738 . If other applications are not in a running or open state, detection operation  726  determines whether a lock is currently being used to sign-in or login another software application. If the lock is not being used, the locking operation  728  acquires the lock so criteria detection may be continued without interruption by other applications signing-in.  
         [0044]    Operational flow  700  continues with detection operation  730  determining whether an automatic sign-in or login condition has been enabled by administrative policy. A network administrator may disable auto sign-in or login functionality by setting a registry key in the client computer system registry section under administrator control. This feature may primarily be used for public, corporate network, or KIOSK computers having multiple users. The default setting for this key enables functionality. If the automatic sign-in or login condition is enabled at detection operation  730 , detection operation  732  determines whether the version of the operating system supports the automatic sign-in condition. Operating system versions should be equipped to support an automatic sign-in or login condition.  
         [0045]    If the operating system version supports the automatic sign-in or login condition, operational flow  700  continues with detection operation  734  determining if the registry key  230  is active. If the registry key  230  is active, detection operation  740  determines if a credential is stored in the credential manager. The credential being present, the authentication operation  742  proceeds to authenticate the credential. Here the credential is transmitted to authentication server  60  where detection operation  743  determines if the credential is valid. If the credential is not valid an error is displayed and operational flow  700  branches to connector  752  where operation control is returned to other routines. If the credential is valid, an encrypted cookie is transmitted from authentication server  60  to the client computer  20  and the software application transitions to a signed-in state at transition operation  746 .  
         [0046]    Operational flow  700  then proceeds from transition operation  746  to messaging operation  748  where the user interface is changed to indicate a signed-in or logged-in state for the software application and other applications receive notice that an auto sign-in or login has occurred. Once the other software applications have been notified, locking operation  750  releases the lock. Next operation control is returned to other routines at connector  752 .  
         [0047]    While the invention has been particularly shown and described with reference to embodiments thereof, it will be understood by those skilled in the art that various other changes in the form and details may be made therein without departing from the spirit and scope of the invention.