METHOD AND SYSTEM FOR ACCOUNT MANAGEMENT
A method and system for managing accounts that control access to resources of different providers. The account management system allows providers to use a common logon procedure through an account management server. The account management system dynamically creates accounts when users request to access resources. To access to a resource, a user provides their credentials (e.g., user identifier and password) through a certain location (e.g., client computer) and identifies the resource (e.g., application). The account management system determines whether an account has already been created for those credentials. If not, the account management system authenticates the user, creates a new account for those credentials (i.e., registration), and associates the identified resource with the account.
This application is a continuation of U.S. application Ser. No. 11/541,430 filed on Sep. 28, 2006, now issued as U.S. Pat. No. 9,171,308, which is a continuation of U.S. application Ser. No. 09/747,307 filed on Dec. 22, 2000, which claims the benefit of U.S. Provisional Patent Application No. 60/249,412 filed on Nov. 16, 2000. The foregoing applications are incorporated herein by reference in their entireties. To the extent the foregoing applications and/or any other materials incorporated herein by reference conflict with the present disclosure, the present disclosure controls.
TECHNICAL FIELDThe described technology relates generally to management of accounts; particularly, accounts for accessing computer resources from various nodes.
BACKGROUNDTechniques for accessing computer resources (e.g., application programs and computer data) require that the accessing user be authorized to access the computer resource. The authorization is typically verified using a logon procedure in which a user supplies their credentials (e.g., user identifier and password) to the system that controls access to the computer resource. When the system receives the credentials, it determines whether the user is authorized to access the resource (e.g., by checking capabilities associated with the user identifier). If so, then the system allows the user to access the computer resource. For example, a database program may require a user to supply their user identifier and password before accessing (e.g., reading and writing) the data in the database.
Such techniques for accessing computer resources are well adapted to environments in which the computer resources (e.g., data in a database) are provided by a single source. For example, a news service may require a user to logon before accessing any news stories during that logon session. The news service may then bill the user on a monthly basis for all the news stories accessed during the month. Each provider of computer resources typically develops their own logon procedures. A problem with such development is that each provider duplicates the efforts of other providers when developing their own logon procedures. Another problem with such development is that each provider may use different types of logon procedures which tends to confuse users. For example, one provider may require a password to be at least 8 characters while another provider may require that passwords be 5 to 7 characters. Thus, a user who accesses the computer resources of both providers needs to remember different passwords. Even if different providers were to use the same logon procedures, a problem would still exist in that a user would receive separate bills from each provider. This problem may not be significant if a user uses the computer resources of only a few providers, but it is significant when a user (e.g., an Internet user) accesses the computer resources of many different providers (e.g., different news organizations and associations).
These problems could be solved if a procedure was provided by a logon organization that is not related to providers. For example, a user would logon through a logon organization with a single set of credentials and then access the computer resources for different providers. Providers, however, typically find it undesirable to have their logon procedures provided by an unrelated source for several reasons. First, providers prefer to have the displays associated with the logon of their users to be integrated with the look and feel of the user interface provided by the developer. Second, providers may prefer to have provider accounts used when accessing the providers' services and resources. It would be desirable to have a technique that would combine the advantages of the logon organization to avoid these difficulties, and yet enable providers to use established accounts and provider-supplied logon elements.
A method and system for managing accounts that control access to resources of different providers is provided. In one embodiment, the account management system allows providers to use a common logon procedure through an account management server. The account management system dynamically creates accounts when users request to access resources. To access to a resource, a user provides their credentials (e.g., user identifier and password) through a certain location (e.g., client computer) and identifies the resource (e.g., application). The account management system determines whether an account has already been created for those credentials. If not, the account management system authenticates the user, creates a new account for those credentials (i.e., registration), and associates the identified resource with the account. If an account has already been created for those credentials, then the account management system associates the identified resource with that account. The account management system then notifies the provider that the user is authorized to access the resource. In this way, accounts are automatically created when a resource is accessed, and access to different resources using the same credentials automatically ties the resources to the same account. To access a different resource provided by a different provider, the user again provides their credentials and identifies the different resource. Since an account has already been created for those credentials, the account management system simply associates the different resource with the account if not already associated. Each provider can customize their logon procedures as long as the provider adheres to the procedures defined by the account management system for acceptable credentials. By customizing their logon procedures, a provider can use the account management system in such a way that their users are not even aware of the account management system. Because resources of two different providers are associated with a single account, the account management system can generate a single report (e.g., bills) for the user that reflects the user's access of both resources.
One aspect of the account management system provides a technique for identifying common accounts when a user provides different credentials for accessing different resources such as, for example, when the same user accesses one resource using one user identifier and then accesses another resource using another user identifier. In general, the account management system creates a separate account for each user, and the user may have multiple unique sets of credentials. The account management system associates accounts with nodes or locations. It tries to identify common accounts when a user accesses a resource from one node using credentials of an account associated with another node and the node from which the user is accessing the resource already has an account associated with it. When the account management system creates an account, it associates that account with the node (e.g., computer) through which the user has requested to access the resource. When the account management system receives a request from the user at that node to access a resource of another account associated with another node, it determines whether the account associated with the node and the account associated with the other node should be considered the same account. For example, a household may have two computers. One family member may have accessed a resource from one computer using their own identifier and another family member may have accessed another resource (or the same resource) from the other computer using their own identifier. The account management system would create two accounts and associate the accounts with the different computers. When one family member tries to access through the other computer a resource using their own identifier, the account management system detects that the account associated with the computer and the account associated with the other computer are possibly common accounts. The account management system may prompt the user to indicate whether the different user identifiers should really represent the same account. If so, then the account management system updates its records to reflect that the two user identifiers represent the same accounts. In such a case, the users will access each resource using their own user identifiers. Since the accessing of both resources is tied to a single account, information relating to such accessing (e.g., billings, notifications, and preferences) may be combined. The account management system similarly identifies common accounts when one user uses two different user identifiers. In an alternative embodiment, the account management system authorizes access to resources based on whether that pair of credentials has already been associated with that resource. If so, the account management system authorizes access to the resource. In this embodiment, the account management system may track combinations of credentials and resources. Thus, within one account, different sets of credentials (e.g., different user name and password) can be used to access different or even the same resource. To avoid user confusion, the account management system may, however, require each resource associated with an account to have only one authorized set of credentials, even though another resource of the account may be associated with a different set of credentials. Thus, the credentials of one family member cannot be used to access a resource of the common account when that resource is associated with the credentials of the other family member.
Another aspect of the account management system allows users to access their accounts from different nodes. When a user requests to access a resource using a node and the user's account is not currently associated with that node, then the account management system associates the account with that node. If the user specifies that access through the node is only on a temporary basis, for example, because the user is visiting that node, then all information relating to the access to the resource is removed from the node after access to the resource is complete. The use of a node on a temporary basis is commonly called “roaming.”
Initially, the node table, account table, and user table are empty; and the application table contains an entry for each available application (e.g., applications “O1,” “O2,” “O3,” and “O4”). When user “U1” requests to access application “O1,” the account management system first adds an entry to the registered node table for node “Home” with no associated account to effect registration of the node. The account management system then adds an entry to the account table for account “A1” that indicates the association with application “O1,” adds an entry to the user table for user “U1” that indicates the association with account “A1,” and updates the entry for the registered node table for node “Home” to associate it with account “A1” to effect the registration of the user. User “U1” may then request to access application “O2” from node “Home.” In response, the account management system notes that an entry for user “U1” is already in the user table, that the user is associated with account “A1,” and that the entry in the registered node table for node “Home” is already associated with account “A1.” The account management system then updates the entry in the account table for account “A1” to associate it with application “O2.” User “U1” then tries to access application “O3” from node “Work1.” Since the node “Work1” is not yet registered, the account management system adds an entry to the registered node table for node “Work1” without any association to an account. The account management system determines that the user table contains an entry for user “U1” and that the user is associated with account “A1.” The account management system then updates the entry in the registered node table for node “Work1” to associate it with account “A1” and updates the entry in the account table for account “A1” to associate it with application “O3.” User “U1” can then access applications “O1,” “O2,” and “O3” from the nodes “Home” and “Work1.” User “U2” then requests to access application “O1” from node “Home.” Since user “U2” is new, the account management system adds an entry to the account table for a new account “A2” associated with application “O1,” adds an entry to the user table for user “U2” associated with account “A2,” and updates the entry in the registered node table for node “Home” to associate it with account “A2” to effect the registration of the user. The person who used user identifier “U2” then requests to access application “O4” from node “Work2” using user identifier “U2′.” Since “U2” and “U2′” are not the same user identifiers, the account management system assumes the users are different. The account management system first adds an entry to the registered node table for node “Work2” without being associated to any account. The account management system then adds an entry to the account table for account “A3” and associates it with application “O4,” adds an entry to the user table for user “U2” to associate it with account “A3,” and updates the entry in the registered node table for node “Work2” to associate it with account “A3.” If the user then tries to access application “O1” from node “Work2” using user identifier “U2,” the account management system prompts the user to indicate whether account “A2” and account “A3” are common accounts. If the user responds affirmatively, then the account management system (not shown in the tables) updates the entry in the user table for user “U2” to associate it with account “A2” and disassociate it from account “A3,” updates the entry in the account table for account “A2” to associate it with application “O4,” and updates the entry in the register node table for node “Work2” to associate it with account “A2” rather than account “A3.” The account management system then deletes the entry in the account table for account “A3.”
From the above description, it will be appreciated that although specific embodiments of the technology have been described for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. In one embodiment, credentials other than user identifier and password pairs can be used. For example, each user may encrypt certain information with their private key of a public and private key pair. The server computer can use the public key to decrypt the information to ensure that it was encrypted with the correct private key. Also, the authentication can be performed by a separate authentication server with the results being sent back to the server computer or directly to the client computers. In another embodiment, each account can be identified by the user identifiers that are assigned to that account. Thus, an account may be considered a group of one or more user identifiers. Also, the resources need not be limited to computer resources. For example, the resources may include people, groups or communities, physical goods, communications service (e.g., phone, video), and so on. Accordingly, the claims are not limited except by the appended claims.
Claims
1.-18. (canceled)
19. A method in a computer system for authorizing access to applications, each application having an application identifier, the method comprising:
- receiving a plurality of user identifier and application identifier pairs;
- for each pair received, storing the user identifier in association with the application identifier;
- receiving a request to access an application, the request including a user identifier and application identifier pair, the application identifier identifying the application to be accessed; and
- when the user identifier and application identifier pair of the request match a stored user identifier and application identifier pair, indicating that access to the application is authorized.
20. The method of claim 19 wherein the requested access is execution of the application.
21. The method of claim 19 wherein the plurality of user identifier and application identifier pairs are received in requests to access the application identified by the application identifier of the pair.
22. The method of claim 19 including when the user identifier and application identifier pair of the request does not match a stored user identifier and application identifier pair, indicating that access to the application is not authorized.
23. The method of claim 19 wherein access is authorized for applications developed by different application developers.
24. The method of claim 19 wherein the request is received and the authorization is indicated before starting execution of the requested application.
25. The method of claim 19 wherein received requests are sent by a plurality of client computers.
26. The method of claim 19 wherein each application identifier and user identifier pair includes a password and indicating that access to the application is authorized only when the request includes a password that matches the password for the application identifier and user identifier pair of the plurality of application identifier and user identifier pairs.
27. A method in a computer system for authorizing access to different applications, each application having an application identifier, the method comprising:
- receiving a plurality of user identifier and application identifier pairs; and
- for each pair received, sending the received user identifier and application identifier pair to an authorization system; receiving from the authorization system an indication whether access to the application identified by the application identifier is authorized.
28. The method of claim 27 wherein the authorization system maintains user identifier and application identifier pairs that indicate the user identified by the user identifier is authorized to access the application identified by the application identifier.
29. The method of claim 27 wherein the receiving includes receiving a password that is sent to the authorization system wherein authorization is indicated only when the sent password matches a password stored at the authorization system for the sent user identifier and application identifier pair.
30. A method in a computer system for authorizing access to a resource, each resource having a resource identifier, the method comprising:
- providing a plurality of user identifier and resource identifier pairs, each user identifier and resource identifier pair indicating that the identified user is authorized to access the identified resource;
- receiving a request to access a resource, the request including a user identifier and resource identifier pair, the resource identifier identifying the resource to be accessed; and
- when the user identifier and resource identifier pair of the received request match a provided user identifier and resource identifier pair, indicating that access to the resource is authorized.
31. The method of claim 30 wherein the resource is computer data.
32. The method of claim 30 wherein the resource is a communications channel.
33. The method of claim 30 wherein the indicating that access to the resource is authorized occurs after performing authentication for the identified user.
34. The method of claim 33 wherein the authentication includes comparing a received password with a password associated with the matched user identifier and resource identifier pair.
35. A method in a computer system for managing accounts, the method comprising:
- assigning an account to a node;
- receiving from the node a request to access a computer resource that is associated with an account that is not assigned to the node; and
- in response to receiving the request, assigning the account associated with the computer resource to the node so that the computer resource can be accessed from the node.
36. The method of claim 35 wherein the computer resource is an application.
37. The method of claim 35 including after access to the computer resource is complete, un-assigning the account associated with the computer resource from the node.
38. The method of claim 35 wherein the accounts associated with the node represent accounts of different users.
39. The method of claim 35 wherein the nodes are computers.
40. The method of claim 35 wherein the computer resource is computer data.
41. The method of claim 35 wherein the computer resource is a user.
42. The method of claim 35 wherein the computer resource is a communications channel.
43. A method in a computer system accessing a computer resource, the method comprising:
- assigning a different account to each of a plurality of nodes;
- receiving from a node a notification that a user has requested to access a computer resource that is associated with an account that is assigned to another node; and
- in response to receiving the notification, temporarily assigning the account associated with the computer resource to the node so that the user can access the computer resource from the node.
44. The method of claim 43 wherein after access to the computer resource is complete, all information relating to the temporarily assigned account is removed from the node.
45. The method of claim 43 wherein after access to the computer resource is complete, un-assigning the account from the node.
46. A method in a computer system for tracking use of applications, the method comprising:
- receiving from a client computer a request to access an application, the requests including an application identifier and user identifier;
- determining whether the user identifier is associated with an account;
- when the user identifier is associated with an account, sending to an authorization computer a request to authorize access to the application, the request including the user identifier; and upon receiving a response indicating that access is authorized, sending to the client computer a response indicating that access is authorized.
47. The method of claim 46 wherein the request received from the client computer includes a password that is sent to the authorization system.
48. The method of claim 46 including sending the application identifier to the authorization system.
49. A method in a computer system for managing account, the method comprising:
- receiving a plurality of user identifiers;
- associating the user identifiers with a single account;
- receiving attributes when a user is logged on with one of the user identifiers associated with the single account; and
- providing those received attributes when a user is logged on with another of the user identifiers associated with the single account.
50. The method of claim 49 wherein the attributes includes preferences relating to access to an application.
51. The method of claim 51 whereby the attributes are associated with the single account rather than an single user identifier.
52-63. (canceled)
64. A computer-readable medium containing instructions for controlling a computer system to authorize access to different applications, each application having an application identifier, by a method comprising:
- receiving a plurality of user identifier and application identifier pairs; and
- for each pair received, sending the received user identifier and application identifier pair to an authorization system; receiving from the authorization system an indication whether access to the application identified by the application identifier is authorized.
65. The computer-readable medium of claim 64 wherein the authorization system maintains user identifier and application identifier pairs that indicate the user identified by the user identifier is authorized to access the application identified by the application identifier.
66. The computer-readable medium of claim 64 wherein the receiving includes receiving a password that is sent to the authorization system wherein authorization is indicated only when the sent password matches a password stored at the authorization system for the sent user identifier and application identifier pair.
67. A computer-readable medium for controlling a computer system to authorize access to a resource, each resource having a resource identifier, by a method comprising:
- providing a plurality of user identifier and resource identifier pairs, each user identifier and resource identifier pair indicating that the identified user is authorized to access the identified resource;
- receiving a request to access a resource, the request including a user identifier and resource identifier pair, the resource identifier identifying the resource to be accessed; and
- when the user identifier and resource identifier pair of the received request match a provided user identifier and resource identifier pair, indicating that access to the resource is authorized.
68. The computer-readable medium of claim 67 wherein the resource is computer data.
69. The computer-readable medium of claim 67 wherein the resource is a communications channel.
70. The computer-readable medium of claim 67 wherein the indicating that access to the resource is authorized occurs after performing authentication for the identified user.
71. The computer-readable medium of claim 67 wherein the authentication includes comparing a received password with a password associated with the matched user identifier and resource identifier pair.
72. A method in a client computer for coordinating registration of a user with a server computer, comprising:
- receiving a user identifier and an indication that the user is a new user;
- when the client computer has previously cached that user identifier, prompting the user to indicate whether the user is the same as the user associated with the previously cached user identifier; when the user indicates that the user is not the same, allowing the user to enter a new user identifier; and when the user indicates that the user is the same user, coordinating log on of the user; and
- when the client computer has not previously cached that user identifier, registering the user; when the registration is successful, caching the user identifier and coordinating log on of the user.
73. (canceled)
Type: Application
Filed: Oct 23, 2015
Publication Date: Apr 28, 2016
Inventors: Steve Bush (Redmond, WA), Edward Jung (Bellevue, WA), Holly Knight (Woodinville, WA)
Application Number: 14/921,967