DISTRIBUTED AUTHENTICATION IN A PROTOCOL-BASED SPHERE OF TRUST IN WHICH A GIVEN EXTERNAL CONNECTION OUTSIDE THE SPHERE OF TRUST MAY CARRY COMMUNICATIONS FROM MULTIPLE SOURCES
A distributed authentication model that operates within a protocol-based sphere of trust. Rather than being able to communicate with any one of the computing systems internal to the sphere of trust, the amount of authentication is reduced by having the external computing systems initially communicate with a specific edge internal computing system. Many if not all of the internal computing systems then delegate the task of authentication to the edge computing system, and will rely on any authentication performed by the edge computing system. This allows the task of authentication to scale well for large protocol-based spheres of trust.
Latest Microsoft Patents:
1. The Field of the Invention
The present invention relates to network authentication technology. More specifically, the present invention relates to mechanisms in which authentication responsibility in a protocol-based sphere of trust is distributed and delegated throughout the sphere of trust.
2. Background and Related Art
Never before have so many had access to so much information, and never before have so many had the ability to readily communicate as they do now. This new era of highly advanced communication and information access is largely enabled by the advancement and proliferation of computer networks throughout the globe. Any individual having access to an Internet-enabled computing system may communicate with (or access resources from) any one of millions of other similarly-enabled computing systems (and potentially also their associated users). While this is certainly advantageous when behavior is appropriate, there is also the unfortunate opportunity to cause harm.
In order to mitigate harm caused in such a network environment, access to more highly sensitive network resources are controlled so that only certain computing systems or users may access that network resource. In order to identify a computing system to thereby make intelligent decisions on whether or not to grant access, it is necessary to determine the true identity of the computing system requesting access. Proper identification is accomplished in a common network process called “authentication”.
One environment in which authentication is implemented is when a computing system that is external to a common sphere of trust is to communicate with a computing system that is internal to the common sphere of trust. One type of sphere of trust is a protocol-based sphere of trust in which the internal computing systems within the sphere of trust each other with regards to communications that follow a particular protocol, but not necessarily with regards to other types of communications.
If there are a large number of computing systems within the sphere of trust, and a large number of external computing systems that may desire to communicate with any one of the internal computing systems, each internal computing system would need to be ready to authenticate a large number of external computing systems. In order to prevent repeated requests for credentials, the server maintains state. As the total number of users who send requests to the server increases, it can lead to a big increase in the amount of state maintained on the server. Even if certificate-based authentication were not employed, the sheer number of external computing systems that each internal computing system may need to authenticate may overwhelm the memory and processing resources of the internal computing system.
Accordingly, what would be advantageous is an authentication mechanism applicable to an protocol-based sphere of trust in which reliable authentication may occur while preserving the memory and processing resources of the internal and external computing systems
BRIEF SUMMARY OF THE INVENTIONThe foregoing problems with the prior state of the art are overcome by the principles of the present invention which are directed towards a distributed authentication model that operates within a protocol-based sphere of trust. The protocol-based sphere of trust includes a number of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol. There are also a number of external computing systems outside the protocol-based sphere of trust that may desire to communicate with and/or through the internal computing systems.
Rather than being able to communicate with any one of the internal computing systems, the amount of authentication is reduced by having the external computing systems initially communicate with a specific internal computing system which we will hereinafter refer to as an “edge” computing system. Furthermore, as described herein, the external computing system only authenticates once when communicating with any internal computing system, and need not separately authenticate to each internal computing system in the path. Accordingly, the external computing system may also preserve storage and processing resources since state and processing associated with only one authentication is needed.
The edge computing system establishes a connection with a first external computing system. Through that connection, the edge computing system receives communications from a number of sources routed through the first external computing system. The edge computing system performs the work intensive task of authentication by acquiring appropriate credentials from the source of each communication. Authentication is a two-tier process when it comes to authentication in a path of computing systems. Upon receiving a communication, the edge computing system first authenticates the first external computing system (i.e., the immediately prior computing system in the path). If that is not the source of the communication (i.e., the path extends further beyond the immediately prior computing system in the path), then the given computing system also authenticates the source of the communication. Once its source is properly authenticated, the edge computing systems transmits the communication to another internal computing system that is either the destination of the communication, or through which the communication is further routed on its way to a destination internal or external to the sphere of trust.
The next internal computing system receives the communication from the edge computing system using the particular protocol. The next internal computing system also has a two-tier authentication process. As in the above-described two-tier authentication process, the first tier involves authenticating the immediately prior computing system in the communication path. However, the second tier involves something quite unique in the context of protocol-based spheres of trust. Specifically, the next internal computing system does not immediately authenticate the source of the communication through storage and processor intensive credential exchange. Instead, the next internal computing system accesses a list of internal computing systems that the next internal computing system trusts to authenticate external computing systems without the next internal computing system separately authenticating the external computing systems. If the edge computing system is on the list, then the next internal computing system validates the identity of the source of the communication without separately authenticating the source through credential exchange.
If the next internal computing system is the destination of the communication, then the next internal computing system may take appropriate action relying on the authentication performed by the edge computing system. For example, the next internal computing system may grant access to a requested resource that the source is permitted to access, or else return an access denied message if the source is not so permitted. If the next internal computing system is not the destination of the communication, then the next internal computing system may forward the communication along, and may even delegate the list checking to a subsequent internal computing system.
Additional features and advantages of the invention will be set forth in the description that follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
The principles of the present invention relate to a distributed authentication model that operates within a protocol-based sphere of trust. Rather than being able to communicate with any one of the computing systems internal to the sphere of trust, the amount of authentication is reduced by having the external computing systems initially communicate with a specific internal computing system which we will hereinafter refer to as an “edge” computing system. Many, if not all, of the internal computing systems then delegate the task of authentication to the edge computing system, and will rely on any authentication performed by the edge computing system. This allows the task of authentication to scale well for large protocol-based spheres of trust.
Embodiments within the scope of the present invention include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media which can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise physical computer-readable media such as RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such a connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, any instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer-executable instruction may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by computers in network environments. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor 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 local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination of hardwired or wireless links) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
The system bus 123 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) 124 and random access memory (RAM) 125. A basic input/output system (BIOS) 126, containing the basic routines that help transfer information between elements within the computer 120, such as during start-up, may be stored in ROM 124.
The computer 120 may also include a magnetic hard disk drive 127 for reading from and writing to a magnetic hard disk 139, a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to removable optical disk 131 such as a CD-ROM or other optical media. The magnetic hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive-interface 133, and an optical drive interface 134, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules and other data for the computer 120. Although the exemplary environment described herein employs a magnetic hard disk 139, a removable magnetic disk 129 and a removable optical disk 131, other types of computer readable media for storing data can be used, including magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like.
Program code means comprising one or more program modules may be stored on the hard disk 139, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137, and program data 138. A user may enter commands and information into the computer 120 through keyboard 140, pointing device 142, or other input devices (not shown), such as a microphone, joy stick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 coupled to system bus 123. Alternatively, the input devices may be connected by other interfaces, such as a parallel port, a game port or a universal serial bus (USB). A monitor 147 or another display device is also connected to system bus 123 via an interface, such as video adapter 148. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as remote computers 149a and 149b. Remote computers 149a and 149b may each be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically include many or all of the elements described above relative to the computer 120, although only memory storage devices 150a and 150b and their associated application programs 136a and 136b have been illustrated in
When used in a LAN networking environment, the computer 120 is connected to the local network 151 through a network interface or adapter 153. When used in a WAN networking environment, the computer 120 may include a modem 154, a wireless link, or other means for establishing communications over the wide area network 152, such as the Internet. The modem 154, which may be internal or external, is connected to the system bus 123 via the serial port interface 146. In a networked environment, program modules depicted relative to the computer 120, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing communications over wide area network 152 may be used.
While
The number and interconnection of the computing systems in a protocol-based sphere of trust 210 may be enumerable. For illustrative purposes only, the protocol-based sphere of trust 210 is illustrated as including computing systems 211 through 214 and 221 through 226. Internal computing systems 211 through 214 are illustrated at the edge of the protocol-based sphere of trust 210 because they have been enabled to interface with external computing systems and perform authentication through credential exchange. Accordingly, internal computing systems 211 through 214 will also frequently be referred to herein as “edge” computing systems or “edge” internal computing systems. The protocol-based sphere of trust 210 may be within a common enterprise or domain or may span multiple enterprises and/or portions of the Internet.
The network environment also includes external computing systems 240 through 246 which may desire to communicate with or through a given internal computing systems. Any of the computing systems 211 through 214, 221 through 226, and 240 through 246 may be structured as described above for the computer 120. However, such computing systems may take any other form that fall within the definition of computing system set forth herein.
Some of the external computing systems 241 through 246 are capable of communicating with an internal computing system through the edge computing system 211. For example, external computing system 241 is capable of communicating with an internal computing system through the edge computing system 211 using a connection 250 between the external computing system 241 and the edge computing system 211. External computing systems 242 through 246 are also capable of communicating through the external computing system 241, through the connection 250, through the edge computing system 211, and to the internal computing systems. One protocol that allows for the common sharing of a single connection for multiple sources and multiple destinations is Session Initiation Protocol (SIP). In one embodiment, the protocol-based sphere of trust 210 is based on SIP as the trusted protocol.
The edge computing system first establishes a connection with an external computing system (act 301). For example, referring to
The edge computing system 211 then authenticates the source external computing system (act 303) and then forwards the communication, or a derivative thereof, to the next internal computing system (act 204). This authentication may be performed using any authentication mechanism including NTLM, Kerberos, Basic, Digest, IPSec over MTLS or the like. The next internal computing system may be the destination of the computing system. For example, the internal computing system 221 represents a potential next computing system 221 for the communication.
On the other hand, the next computing system may not be the destination of the communication, but merely a computing system through which the communication is routed. For example, the internal computing system 222 may be used to route the communication to another internal computing system or to an external computing system. For example, the next computing system 222 may be used as an intermediary computing system when communicating with any of internal computing systems 223, 224 and 225, or to an external computing system 240. The communication is communicated from computing system to computing system using the particular protocol upon which the sphere of trust 210 is based.
The next internal computing system then receives the communication from the edge computing system using the particular protocol (act 311). The next internal computing system then performs a first-tier of a two-tier authentication processes by authenticating the edge computing system using, for example, Mutually authenticated Transport Layer Protocol (MTLS), but does not authenticate the external computing system that originated the communication. If MTLS is used to authenticate, the connection between the various internal computing systems may even be over a public or untrusted network such as the Internet.
The next internal computing system then performs a functional result-oriented step for determining whether to trust the communication without separately authenticating the originating external computing system (step 312). This functional, result-oriented step may include any corresponding acts that accomplish the result. In the illustrated embodiment, the step 312 includes corresponding acts 313, 314 and 315.
The next internal computing system performs a second tier of the authentication process by validating the identity of the originating external computing system. Specifically, the next internal computing system accesses a list of internal computing systems that the next internal computing system trusts to authenticate external computing systems without the internal computing system separately authenticating the external computing systems. This list is illustrated in
For example, in one embodiment, the edge computing systems 211 through 214 are trusted by the other internal computing systems 221 through 226 to perform authentication of external computing systems. In another embodiment, groups of one or some of the edge computing systems may be trusted to authenticate external computing systems for a portion of the internal computing systems while other edge computing systems perform authentication of external computing systems for yet other internal computing systems.
The next internal computing system then determines that the edge computing system is on the list (act 314) and in response validates the identity of the originating external computing system by mere virtue of the edge computing system being on the list, and without separately authenticating the originating external computing system (act 315). In this description and in the claims, “authentication” means a process whereby one computing system obtains assurances through the receipt of credentials that the party providing the credentials is indeed who or what they purport to be. In this description and in the claims, “validation” means a process whereby one computing system obtains assurances that a party is who they purport to be, whether by receiving credentials of that party or by some other means.
If the next computing system is not the destination of the communication, the communication may be forwarded to a subsequent internal computing system and so on and so forth until the communication arrives at a destination within the sphere of trust 210, or until the communication reaches another edge computing system for delivery external to the sphere of trust 210. Each of the subsequent internal computing systems may perform the same process as described above for the next internal computing system. For example, if the communication is to be delivered from the originating external computing system 242 to the destination external computing system 240, each of the internal computing system 222, 223, 224 and 212 may perform the acts and step attributed above to the next internal computing system.
For instance, each of internal computing systems 222, 223, 224 and 212 may receive the communication, authenticate the previous internal computing system in the path (but not authenticate the originating external computing system), and use the list to determine that a previous internal computing system in the delivery chain is authorized to authenticate or validate the originating external computing system, and then themselves validate the originating external computing system without separately performing authentication of the originating external computing system through credential exchange.
Accordingly, the principles of the present invention allow for substantial simplification of authentication by allowing for relatively few edge computing system to perform the often memory and processor intensive task of authentication, while the other internal computing systems trust their authentication. This relieves those other internal computing systems from the authentication processes. Therefore, the principles of the present invention scale well for larger protocol-based spheres of trust.
The principles of the present invention work particularly well when a smaller number of connections are used to allow multiple external computing systems to communicate to or through an internal computing system via an edge computing system. In other words, any given connection (even if there are multiple connections) may be used to allow multiple external computing systems to communicate to or through an internal computing system via an edge computing system. The edge computing systems do not need to perform the complex tasks associated with establishing a single connection for each and every external computing system that it is to authenticate on behalf of other internal computing systems. Accordingly, fewer edge internal computing systems are needed in order to authenticate a given number of external computing systems. This further allows the present invention to scale well for larger networked protocol-based spheres of trust.
In one specific implementation, the communications between computing systems use SIP.
Referring to
In one embodiment, the internal computing systems communicate using SIP over MTLS. This communication process is represented by the data flow of
If the sphere of trust is within a common enterprise, the list may be established by using an identification of each computing systems in the enterprise as provided by the system administrator. New internal computing systems may also be added, and other deleted, by the system administrator. When outside of a strict enterprise environment, computing systems may be added by common consensus of the other internal computing systems.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes, which come within the meaning and range of equivalency of the claims, are to be embraced within their scope.
Claims
1. In a network environment including a protocol-based sphere of trust which includes a plurality of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol, the network environment further including a plurality of external computing systems that are external to the protocol-based sphere of trust, at least some of the plurality of external computing systems communicating with a first internal computing system over a single connection, a method for a second internal computing system validating the identity of an originating external computing system that originated a communication that is received by the second internal computing system via the first internal computing system through the single connection, the method comprising the following:
- an act of the second internal computing system receiving the communication from the first internal computing system using the particular protocol, the received communication being received either directly from the first internal computing system, or indirectly after having traveled a trusted chain leading using the particular protocol from the first internal computing system through one or more intermediary internal computing system, the communicating originating from an originating external computing system;
- an act of accessing a list of internal computing systems that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems;
- an act of determining that either the first internal computing system is on the list, or that at least one of the internal computing systems in the trusted chain is on the list; and
- an act of validating the identity of the originating external computing system by mere virtue of the act of determining and without separately authenticating the originating external computing system.
2. A method in accordance with claim 1,
- wherein the act of the second internal computing system receiving the communication from the first internal computing system using the particular protocol comprises an act of receiving the communication directly from the first internal computing system, and
- wherein the act of determining comprises an act of determining that the first internal computing system is on the list.
3. A method in accordance with claim 1,
- wherein the act of the second internal computing system receiving the communication from the first internal computing system using the particular protocol comprises an act of receiving the communication indirectly after having traveled a trusted chain leading from the first internal computing system through one or more intermediary internal computing system, and
- wherein the act of determining comprises an act of determining that at least one of the internal computing systems in the trusted chain is on the list.
4. A method in accordance with claim 1,
- wherein the act of determining that at least one of the internal computing systems in the trusted chain is on the list comprises an act of determining that the first internal computing system is on the list.
5. A method in accordance with claim 1,
- wherein the act of determining that at least one of the internal computing systems in the trusted chain is on the list comprises an act of determining that a most proximate internal computing system in the trusted chain is on the list.
6. A method in accordance with claim 1,
- wherein the particular protocol is Session Initiation Protocol (SIP).
7. A method in accordance with claim 1, wherein all of the plurality of internal computing systems in the protocol-based sphere of trust are within a common enterprise.
8. A method in accordance with claim 7, further comprising the following:
- an act of adding a computing system to the list.
9. A method in accordance with claim 8, wherein the act of adding a computing system to the list is in response to an instruction from a system administrator of the enterprise.
10. A method in accordance with claim 1, wherein the plurality of internal computing systems are not in a common enterprise.
11. A method in accordance with claim 1, further comprising the following:
- an act of adding a computing system to the list.
12. A computer program product for use in a network environment including a protocol-based sphere of trust which includes a plurality of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol, the network environment further including a plurality of external computing systems that are external to the protocol-based sphere of trust and that communicate with a first internal computing system over a single connection, the computer program product for implementing a method for a second internal computing system validating the identity of an originating external computing system that originated a communication that is received by the second internal computing system via the first internal computing system through the single connection, the computer program product comprising one or more computer-readable media having thereon the computer-executable instructions for performing the method, the method comprising the following:
- an act of the second internal computing system receiving the communication from the first internal computing system using the particular protocol, the received communication being received either directly from the first internal computing system, or indirectly after having traveled a trusted chain leading using the particular protocol from the first internal computing system through one or more intermediary internal computing system, the communicating originating from an originating external computing system;
- an act of accessing a list of internal computing systems that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems;
- an act of determining that either the first internal computing system is on the list, or that at least one of the internal computing systems in the trusted chain is on the list; and
- an act of validating the identity of the originating external computing system by mere virtue of the act of determining and without separately authenticating the originating external computing system.
13. A computer program product in accordance with claim 12, wherein the one or more computer-readable media are physical media.
14. A computer program product in accordance with claim 13, wherein the one or more computer-readable media is system memory.
15. A computer program product in accordance with claim 13, wherein the one or more computer-readable media is persistent memory.
16. In a network environment including a protocol-based sphere of trust which includes a plurality of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol, the network environment further including a plurality of external computing systems that are external to the protocol-based sphere of trust and that communicate with a first internal computing system over a single connection, a method for a second internal computing system validating the identity of an originating external computing system that originated a communication that is received by the second internal computing system via the first internal computing system through the single connection, the method comprising the following:
- an act of the second internal computing system receiving the communication from the first internal computing system using the particular protocol, the received communication being received either directly from the first internal computing system, or indirectly after having traveled a trusted chain leading using the particular protocol from the first internal computing system through one or more intermediary internal computing system, the communicating originating from an originating external computing system; and
- a step for determining whether to trust the communication without separately authenticating the originating external computing system.
17. A method in accordance with claim 16, wherein the step for determining whether to trust the communication without separately authenticating the originating external computing system comprises the following:
- an act of accessing a list of internal computing systems that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems;
- an act of determining that either the first internal computing system is on the list, or that at least one of the internal computing systems in the trusted chain is on the list; and
- an act of validating the identity of the originating external computing system by mere virtue of the act of determining and without separately authenticating the originating external computing system.
18. In a network environment including a protocol-based sphere of trust which includes a plurality of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol, the network environment further including a plurality of external computing systems that are external to the protocol-based sphere of trust and that communicate with a first internal computing system over a single connection, a method for the first internal computing system authenticating at least some of the plurality of external computing systems communicating on behalf of at least some of the plurality of internal computing systems, the method comprising the following:
- an act of the first internal computing system establishing a connection with a first external computing system;
- an act of receiving a communication from the first external computing system over the connection using the particular protocol, the first communication originating from a second external computing system that may be the same as or different than the first external computing system, the first communication destined for or at least to pass through a second internal computing system;
- an act of authenticating the second external computing system; and
- an act of forwarding the first communication, or a derivative thereof, to the second internal computing system using the particular protocol, wherein the second internal computing system has access to a list of internal computing systems including the first internal computing system that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems.
19. A method in accordance with claim 18, wherein the communication is a first communication, further comprising the following:
- an act of receiving a second communication from the first external computing system over the connection, the second communication originating from a third external computing system that is different than the second external computing system, the second communication destined for or at least to pass through a third internal computing system that may be the same as or different than the second internal computing system;
- an act of authenticating the third external computing system; and
- an act of forwarding the second communication, or a derivative thereof, to the third internal computing system, wherein the second internal computing system has access to a list of internal computing systems including the first internal computing system that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems.
20. A method in accordance with claim 19, wherein the second internal computing system and the third internal computing system is the same.
21. A method in accordance with claim 19, wherein the second internal computing system and the third internal computing system are different.
22. A method in accordance with claim 21, wherein the list accessible by the second internal computing system and the list accessible by the third internal computing system is the same list.
23. A method in accordance with claim 21, wherein the list accessible by the second internal computing system and the list accessible by the third internal computing system are different lists, though identical copies of each other.
24. A method in accordance with claim 21, wherein the list accessible by the second internal computing system and the list accessible by the third internal computing system are different lists, and not identical copies of each other.
25. A method in accordance with claim 18, wherein the second external computing system and the first external computing system are the same.
26. A method in accordance with claim 18, wherein the second external computing system is different than the first external computing system.
27. A method in accordance with claim 26, wherein the third external computing system is the same as the first external computing system.
28. A method in accordance with claim 26, wherein the third external computing system is different than the first external computing system.
29. A method in accordance with claim 18, wherein the particular protocol is Session Initiation Protocol (SIP).
30. A method in accordance with claim 29, wherein the act of authenticating the second external computing system is performed using Transport Layer Security (TLS).
31. A method in accordance with claim 18, wherein the communication is destined for the second internal computing system.
32. A method in accordance with claim 18, wherein the communication is to pass through the second internal computing system.
33. A method in accordance with claim 32, wherein the communication is destined for a third internal computing system.
34. A method in accordance with claim 32, wherein the communication is destined for a fourth external computing system.
35. A computer program product for use in a network environment including a protocol-based sphere of trust which includes a plurality of internal computing systems which trust communications between each other so long as the communications are in accordance with a particular protocol, but do not always trust communications between each other if the communication is not in accordance with the particular protocol, the network environment further including a plurality of external computing systems that are external to the protocol-based sphere of trust and that communicate with a first internal computing system over a single connection, the computer program product for implementing a method for the first internal computing system authenticating at least some of the plurality of external computing systems communicating on behalf of at least some of the plurality of internal computing systems, the computer program product comprising one or more computer-readable media having thereon the computer-executable instructions for performing the method, the method comprising the following:
- an act of the first internal computing system establishing a connection with a first external computing system;
- an act of receiving a communication from the first external computing system over the connection using the particular protocol, the first communication originating from a second external computing system that may be the same as or different than the first external computing system, the first communication destined for or at least to pass through a second internal computing system;
- an act of authenticating the second external computing system; and
- an act of forwarding the first communication, or a derivative thereof, to the second internal computing system using the particular protocol, wherein the second internal computing system has access to a list of internal computing systems including the first internal computing system that the second internal computing system trusts to authenticate external computing systems without the second internal computing system separately authenticating the external computing systems.
36. A computer program product in accordance with claim 35, wherein the one or more computer-readable media are physical media.
37. A computer program product in accordance with claim 36, wherein the one or more computer-readable media is system memory.
38. A computer program product in accordance with claim 36, wherein the one or more computer-readable media is persistent memory.
Type: Application
Filed: Apr 15, 2009
Publication Date: Aug 6, 2009
Applicant: Microsoft Corporation (Redmond, WA)
Inventors: Jeremy Buch (Redmond, WA), Robert Brown (Kirkland, WA), Vishwajith Kumbalimutt (Redmond, WA), Sean Olson (Duvall, WA), Srikanth Shoroff (Sammamish, WA)
Application Number: 12/424,448