The present disclosure relates in general to unified communications (UC) systems. In particular, the present disclosure relates to a system and method of federating a cloud-based communications service with a unified communications system.
A unified communications (UC) system generally refers to a system that provides users with an integration of communications services. A user typically connects to the UC system through a single client to access the integrated communications services. The integrated communications services may include real-time services, such as instant messaging (IM), presence notifications, telephony, and video conferencing, as well as non-real-time services, such as email, SMS, fax, and voicemail.
Organizations, such as corporations, businesses, educational institutions, and government entities, often employ UC systems to enable internal communication among its members in a uniform and generally cost-efficient manner. In addition, organizations may employ UC systems for communicating with trusted external entities. Currently, a number of third-party developers offer various UC applications for implementing UC systems. The various applications include Microsoft Office Communications Server (OCS), IBM Sametime (ST), Google Apps, and Cisco Jabber.
A user may also connect to a cloud-based communications service that provides a cloud-based subscription service for document processing applications. For example, Office365 is Microsoft's hosted or cloud-based subscription service for Microsoft's Office software suite. The cloud-based communications service further allows a user of an organization to access collaboration capabilities on the cloud, including presence, IM, audio/video calls, rich online meetings, and web conferencing capabilities without the need for an on-premise unified communications system.
Although a cloud-based communications service is based on and similar to an on-premise unified communications system, there is still difficulty in supporting federation between a cloud-based communications service and an on-premise unified communications system.
A system and method of federating a cloud-based communications service with a unified communications system is disclosed. According to one embodiment, a system includes a federation system that is connected to a first domain of a unified communications system and a second domain of a cloud-based communications service. The federation system assigns the second domain to a first network region via a first network card, provides a first request to a certification authority to issue a first digital certificate, where the first request includes an attribute of the first domain. The federation system further receives the first digital certificate from the certification authority, presents the first digital certificate to the first network region, and federates the first domain and the second domain based on the first digital certificate.
The above and other preferred features, including various novel details of implementation and combination of elements, will now be more particularly described with reference to the accompanying figures and pointed out in the claims. It will be understood that the particular systems and methods described herein are shown by way of illustration only and not as limitations. As will be understood by those skilled in the art, the principles and features described herein may be employed in various and numerous embodiments.
The accompanying figures, which are included as part of the present specification, illustrate the various embodiments of the present disclosed system and method and together with the general description given above and the detailed description of the preferred embodiments given below serve to explain and the teach the principles of the present disclosure.
It should be noted that the figures are not necessarily drawn to scale and elements of similar structures or functions are generally represented by like reference numerals for illustrative purposes throughout the figures. It also should be noted that the figures are only intended to facilitate the description of the various embodiments described herein. The figures do not describe every aspect of the teachings disclosed herein and do not limit the scope of the claims.
A system and method of federating a cloud-based communications service with a unified communications system is disclosed. According to one embodiment, a system includes a federation system that is connected to a first domain of a unified communications system and a second domain of a cloud-based communications service. The federation system assigns the second domain to a first network region via a first network card, provides a first request to a certification authority to issue a first digital certificate, where the first request includes an attribute of the first domain. The federation system further receives the first digital certificate from the certification authority, presents the first digital certificate to the first network region, and federates the first domain and the second domain based on the first digital certificate
Each of the features and teachings disclosed herein can be utilized separately or in conjunction with other features and teachings to provide a system and method of federating a cloud-based communications service with a unified communications system. Representative examples utilizing many of these additional features and teachings, both separately and in combination, are described in further detail with reference to the attached figures. This detailed description is merely intended to teach a person of skill in the art further details for practicing preferred aspects of the present teachings and is not intended to limit the scope of the claims. Therefore, combinations of features disclosed above in the detailed description may not be necessary to practice the teachings in the broadest sense, and are instead taught merely to describe particularly representative examples of the present teachings.
In the description below, for purposes of explanation only, specific nomenclature is set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to one skilled in the art that these specific details are not required to practice the teachings of the present disclosure.
Some portions of the detailed descriptions herein are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the below discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The methods or algorithms presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems, computer servers, or personal computers may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
Moreover, the various features of the representative examples and the dependent claims may be combined in ways that are not specifically and explicitly enumerated in order to provide additional useful embodiments of the present teachings. It is also expressly noted that all value ranges or indications of groups of entities disclose every possible intermediate value or intermediate entity for the purpose of original disclosure, as well as for the purpose of restricting the claimed subject matter. It is also expressly noted that the dimensions and the shapes of the components shown in the figures are designed to help to understand how the present teachings are practiced, but not intended to limit the dimensions and the shapes shown in the examples.
According to one embodiment, the present system provides a hub that provisions a domain of a cloud-based communications service. The present system further provides a hub that establishes a federation between a domain of a UC system and a domain of a cloud-based communications service. The present disclosure is related to co-pending U.S. patent application Ser. No. 13/077,710 entitled “Hub Based Clearing House for Interoperability of Distinct Unified Communications Systems” filed on Mar. 31, 2011, which is fully incorporated herein by reference.
Issues arise, for instance, when users in domain B 120 need to communicate with users in domain A 110 or users in domain C 130. Without a communications link between users in two different domains, the users in a domain can only communicate (through its UC system) with users in the same domain. Here, as
However, where the UC systems are not running the same UC application, as between UC system 111 and UC system 121, there is typically no federation link available because a third-party developer would only provide support for its own product. Historically, one way to provide a communications link between UC systems 111 and 121 is to build a custom link 102, as
Furthermore, custom links are not scalable. As
The hub 350 acts as a central station for translating incoming data from any supported UC system into a common language (CL) 355. Depending on the UC application that is implemented on the receiving UC system, the CL 355 is then translated into the language that is supported by the receiving UC system. For instance, a message that is transmitted by UC system 331 and intended for UC system 341 is first transmitted to the hub 350 via connector 353. The message is then translated by hub 350 into a CL 355. Because the message is intended for UC system 341, the CL 355 is then translated into the language that is recognized by the UC application denoted by “UCz” and transmitted to UC system 341 via connector 354.
Similarly, a message that is transmitted by UC system 321 and intended for UC system 341 is first transmitted to the hub 350 via connector 352 and then translated into a CL 355. Again, the CL 355 is then translated into the language that is recognized by the UC application denoted by “UCz” and transmitted to UC system 341 via connector 354. In the case in which two UC systems are running the same UC application, the hub may route a message sent from one UC system to the other without performing translations. As
The hub may also perform direct translation (e.g., from “UCy” type to “UCz” type) without first translating the message into a CL. Direct translation may be used to achieve higher efficiency and to maintain high fidelity communications.
Under the exemplary embodiment of
In addition to solving the scalability issues described above, the hub or clearing house system illustrated in
Consistent with one embodiment, the CL is a superset language that supports features (e.g., fields) of all supported UC language formats. For instance, the CL may contain some or all the fields of a supported UC language format. Also, the CL may be an evolving language wherein new syntax (headers) can be added to accommodate any new features that become available in supported UC systems. The new syntax may then be used by all the translators to translate a CL formatted message into a message of respective UC format that supports these new features. In one embodiment, an appropriate CL format is generic SIP.
The hub system also allows administrators to set and enforce policies by virtue of it being a hub for all inter-domain communication. When a UC system in one domain communicates directly (without going through a hub) with a UC system in another domain, administrators of each domain can only control incoming and outgoing messages locally. However, if the UC systems communicate with each other through a hub, the hub allows administrators of each UC system to access the part of the hub that applies to them so that they can administer policies that are not possible to administer locally. For instance, an administrator may administer one or more policies through the hub to allow a user in one domain to make his status appear as available to only certain members of another domain. Such granular control in setting policies is generally not available to administrators of domains interconnected using just federation and custom links.
Hub 400 includes an administration module implemented on computer 401. An administration module (AM) is a software program that allows hub system administrators to configure the hub to provide UC systems with access to the hub. There is typically one AM for each installation. The AM configures the hub by creating and updating a data store in a database (DB) implemented on computer 402. The data store contains the information that is used by the federation servers (FS's) to perform their functions. Each of the FS's may be implemented on separate computers 4041-n.
Some of the configurable parameters and desired settings of the AM are as follows:
Once the AM and the connected UC systems have been properly configured, individual users on a configured UC system can connect to other users on any other properly configured (remote or local) UC system.
As mentioned earlier, the AM configures the hub by creating and updating a data store in a database (DB) implemented on computer 402. In addition to storing configuration data received from the AM, the DB also stores data regarding local administrators (administrators of UC systems connected to the hub), local users (users in the domains of associated UC systems), and FS's. In general, because only the AM can directly manipulate data in the DB, local administrators who wish to update the DB data would have to log into the AM to do so. Local user information that may be stored in the DB include usage and audit logging information. The DB may be implemented as a relational data base.
A FS has two main components: (1) instances of connectors, and (2) the DP Application Logic (herein “engine”). A connector is an object that includes both a hardware aspect and a software aspect. The hardware aspect includes a physical network card connection that provides a physical pathway for data to flow into and out of a FS machine. The software aspect of a connector, in its basic form, is comprised of (1) a listening loop that listens on the physical connection and waits for incoming data, and (2) a function that can be called by the FS when data is ready to be sent out from a network card of the FS.
In order for UC systems to communicate with each other through a hub, the local domain administrators of the UC systems need to properly configure their systems so that communications traffic intended for a receiving UC system is directed to the hub. For instance, in a clearinghouse or hub implementation, a domain gateway is typically implemented. The domain gateway is a component that allows the UC system to communicate with the hub. In order for a UC system to communicate with the hub, both the domain gateway and the UC system need to be configured properly.
In order to route communications traffic that is intended for domain “y.com” (720) to the hub 730, the allow list 740, specifically the FQDN field in the entry for domain “y.com” (720), needs to include the address of the hub 730 (“hub_addr”). Furthermore, the hub 730 must also be properly configured by the hub administrator, who must add both domains (“x.com” and “y.com”) to the hub 730 through the AM 731. Once the hub administrator has configured the AM 731 and the AM 731 has updated the data store in the DB 732, the hub 730 is ready for use and all traffic to and from “x.com” to “y.com” will flow through the hub 730.
The routed traffic includes the message that was sent by 711. After being processed by the hub 730, the message is forwarded to domain gateway 723, then to UC system 722, and finally to user 721. As
SRV records enable a domain (e.g., foo.com) to become part of the hub without asking other domains to configure their gateways/allow lists to add the domain in order to direct traffic to the hub. Accordingly, using SRV records for multiple protocols along with the support for those multiple protocols in the hub enable a domain (e.g., foo.com) to appear as different UC systems. For instance, by publishing an SRV record for the respective protocol, foo.com may appear as an OCS system to other OCS partners, and at the same time, foo.com may appear as a XMPP system to XMPP partners.
The SRV record requirement varies among UC systems based on the UC protocol used by the UC system or even within that UC protocol a vendor may have a specialized SRV record requirement. A feature of the hub is that the administrator of a domain (e.g., “y.com”) can publish SRV records for all the UC system types that can federate (via the hub) with the domain (e.g., “y.com”). All these SRV records would point to the address for the hub (e.g., “hub.addr”). For instance, if “x.com” is an OCS UC system, then it would look up_sipfederationtls._tcp.y.com to federate with “y.com”. If “z.com” is a Jabber UC system, then it would look up_xmpp-server._tcp.y.com to federate with “y.com”. While “y.com” is a certain UC type (e.g., Sametime) but because of the SRV record publication and the hub, “y.com” appears as an OCS UC system to “x.com” and as a Jabber UC system to “z.com”.
According to one embodiment, the present system allows a domain (herein also referred to as a “cloud domain”) of a cloud-based communications service to federate with a domain (herein also referred to as an “on-premise domain”) associated with a UC system such as an on-premise UC system.
A cloud-based communications service 911 runs a cloud-based subscription service and is accessible (e.g., instant messaging, emailing, and video conferencing) on the cloud by users 912 and 913 in domain A 910. Domain A 910 has a domain name “dom_365.com” and domain B 920 has a domain name “dom_op.com”. A local administrator 924 for domain B 920 publishes an SRV record for domain B 920, as shown in SRV record publication 930. In one embodiment, a local administrator 914 for domain A 910 also publishes an SRV record for domain A 910, which points to domain A 910.
For example, the local administrator 924 publishes an exemplary SRV record for domain B 920 as follows:
Type: SRV
Service: _sipfederationtls
Protocol: _tcp
Port: 5061
Weight: 1
Priority: 100
TTL: 1 Hour
Name: dom_op.com
Target: sip.dom_op.com
The SRV record publication 930 for domain B “dom_op.com” 920 points to UC system 921 with the FQDN field set as “sip.dom_op.com”.
In one embodiment, if domain B 920 wants to federate with domain A 910 using a federation system, the federation system requests a digital certificate on behalf of domain B 920 from a publicly trusted certification authority (e.g., ENTRUST®, DIGICERT® and VERISIGN®) configured with “sip.dom_op.com” as a subject name (SN) or a subject alternate name (SAN). Once the request is received by the certification authority, the certification authority sends an approval request to the administrator 924 of the domain A 920 to allow issue of the digital certificate for domain B 920 to the federation system. This request is send directly to the domain B 920 administrator 924, so that the administrator 924 can independently receive the approval request. Once the certification authority receives the approval from the administrator 924, the certification authority issues the digital certificate for domain B 920 to the federation system. The federation system then presents the digital certificate to domain A 910 and federates domain B 920 and domain A 910 based on the digital certificate.
The hub 1050 allows domain A 1010, domain B 1020, domain C 1030, and domain D 1040 to federate with one another. For domain A 1010 to federate with domain B 1020, a local administrator 1022 for domain B 1020 publishes an SRV record for domain B 1020, as shown in SRV record publication 1070.
For example, the local administrator 1022 publishes an exemplary SRV record for domain B 1020 as follows:
Type: SRV
Service: _sipfederationtls
Protocol: _tcp
Port: 5061
Weight: 1
Priority: 100
TTL: 1 Hour
Name: dom_op.com
Target: sip.dom_op.com
An additional canonical name (CNAME) record or an address (A) record is created to ensure that “sip.dom_op.com” of domain B 1020 points to the hub 1050. CNAME record has an entry for sip.dom_op.com of domain B 1020 pointing to the hub_addr. CNAME record is an additional record besides the SIP SRV record that maps the sip.dom_op.com of domain B 1020 in the SIP SRV to a hub_addr.
The hub 1050 sends a request to a certification authority 1060 to issue a digital certificate that contains the string “sip.dom_op.com” as an SN or an SAN. The hub 1050 presents the digital certificate to domain A 1010 to establish federation between domain A 1010 and domain B 1020.
If domain C 1030 needs to federate with domain A 1010, a local administrator 1032 for domain C 1030 publishes an SRV record for domain C 1030, as shown in SRV record publication 1070. For example, the local administrator 1032 publishes an exemplary SRV record for domain C 1030 as follows:
Type: SRV
Service: _sipfederationtls
Protocol: _tcp
Port: 5061
Weight: 1
Priority: 100
TTL: 1 Hour
Name: dom_xmpp.com
Target: sip.dom_xmpp.com
If domain D 1040 needs to federate with domain A 1010, a local administrator 1042 for domain D 1040 publishes an SRV record for domain D 1040, as shown in SRV record publication 1070. For example, the local administrator 1042 publishes an exemplary SRV record for domain D 1040 as follows:
Type: SRV
Service: _sipfederationtls
Protocol: _tcp
Port: 5061
Weight: 1
Priority: 100
TTL: 1 Hour
Name: dom_sip.com
Target: sip.dom_sip.com
Additional CNAME records are created to ensure that “sip.dom_xmpp.com” and “sip.dom_sip.com” of respective domain C 1030 and domain D 1040 point to the hub 1050. However, domain A 1010 publishes DNS SIP SRV record to itself and does not point to the hub 1050. Accordingly, when the cloud-based communications service 1011 for domain A 1010 attempts to communicate with domain B 1020, domain C 1030, and domain D 1040, domain A 1010 thinks that it is connecting to three different on-premise UC systems. The hub 1050 sends a request to a certification authority 1060 to issue a digital certificate that contains the strings “sip.dom_op.com”, “sip.dom_xmpp.com” for and “sip.dom_sip.com” respectively for domain B, domain C and domain D, as an SN or an SAN. The hub 1050 presents the digital certificate to domain A 1010 to establish federation between domain A 1010 and domain B 1020, domain C 1030 and domain D 1040.
Therefore, when domain A 1010 (e.g. a O365 domain) is federated with domain B 1020, domain C1030 and domain C 1040 (e.g. multiple other O365 domains) through a hub 1015 (e.g. NextPlane® federation system), presenting the correct digital certificate and the DNS SRV records as per the requirements for the Open Federation may be critical to establish the federation connection.
The hub 1150 allows domain A 1110, domain B 1120, domain C 1130, and domain D 1140 to federate with one another. The hub 1150 assigns domain A 1110 to a realm 1180. The realm 1180 is a network region or network segment that is reachable through a particular network card. It is understood that the hub 1150 may assign any number of domains of a cloud-based communications service to the realm 1180 without deviating from the scope of the present disclosure. In one embodiment, the realm 1180 can be a part of the hub 1150 as well. The hub 1150 generates a certificate signing request (CSR) with a modified list attribute (e.g. Subject Alternative Name (SAN)) that includes domain B 1120, domain C 1130, and domain D 1140. The number of SANs that can be added to a CSR is limited. However, SAN can be spilt into multiple certificates on multiple realms to overcome such limitation.
The hub 1150 transmits the CSR to a certification authority 1160 (e.g., ENTRUST®, DIGICERT® and VERISIGN®) with SAN for domain B 1120, domain C 1130, and domain D 1140. Once the CSR is received by the certification authority 1160, the certification authority 1160 sends an approval request to the administrators 1122, 1132 and 1142 to allow issue of the digital certificates for domain B 1120, domain C 1130, and domain D 1140 to the hub 1150. This request is send directly to the administrators of domain B 1120, domain C 1130, and domain D 1140, so that the administrators 1122, 1132 and 1142 of the respective domain B 1120, domain C 1130, and domain D 1140, can independently receive the approval request. Once the certification authority 1160 receives the approval from the administrators 1122, 1132 and 1142 of the respective domain B 1120, domain C 1130, and domain D 1140, the certification authority issues the digital certificates for such domains to the hub 1150. The hub 1150 then presents the digital certificates of domain B 1120, domain C 1130, and domain D 1140 to domain A 1110 and federates domain B 1120, domain C 1130, and domain D 1140 and domain A 910 based on the digital certificates. In some cases, the digital certificates are stored in a database in the hub 1150.
The cloud-based communications service 1111 for domain A 1110 accepts the digital certificate for establishing federation with any of domain B 1120, domain C 1130, and domain D 1140. The local administrators 1122, 1132, and 1142 of respective domain B 1120, domain C 1130, and domain D 1140 publishes appropriate SRV records, as shown in SRV record publication 1170 to point to the realm 1180 so that communications traffic from domain A 1110 to any of domain B 1120, domain C 1130, and domain D 1140 passes through the realm 1180. In this exemplary case, the realm 1180 is a part of the hub 1150 to which the traffic is sent as per the SRV record.
The present system determines whether there is an additional on-premise domain that need to federate with the cloud domain (at 1204). If there is an additional on-premise domain, the present system continues to add the on-premise domain to the digital certificate XC (at 1203). If there are no more on-premise domains, the present system uses the digital certificate XC to establish federated communication between the on-premise domain(s) and the cloud domain(s) in the realm (at 1205). The present system presents the digital certificate XC to the realm. The cloud domain(s) in the realm accept the digital certificate XC for establishing federation with any of the on-premise domain(s). According to one embodiment, the digital certificate presented by the present system is a subject alternative name (SAN) certificate that represents all the on-premise domains that need to federate with the cloud domain(s) in the realm.
For example, if there are five on-premise domains D1, D2, D3, D4, and D5 that collectively need to federate with the cloud domain(s) in the realm, the digital certificate contains the five on-premise domains D1, D2, D3, D4, and D5 in its SAN list. Alternatively, the digital certificate contains the equivalent target string names of the five domains D1, D2, D3, D4, and D5 in its SAN list.
The present system further determines if there is a new on-premise domain that needs to federate with any cloud domain(s) in the realm (at 1206). If there are no new on-premise domains, the present system continues to use the digital certificate XC to establish federation (at 1205). If there is a new on-premise domain, the certification authority (e.g., ENTRUST®, DIGICERT® and VERISIGN®) issues a new certificate XC1, since they cannot append anything to existing certificate XC. In this case, XC1 is a brand new certificate issued with an added SAN domain which contains a new validity period and serial number. Next, the present system replaces the digital certificate XC with a new digital certificate XC1 (at 1207). The present system adds the new on-premise domain and the on-premise domains previously listed in the digital certificate XC to the digital certificate XC1 (at 1208).
According to one embodiment, the present system generates a subsequent CSR with a modified list attribute that includes the new on-premise domain for the new digital certificate XC1. The present system further transmits the CSR to a certification authority and have the administrator of the UC system for the new on-premise domain work with the certification authority to issue the digital certificate XC1. The new digital certificate XC1 includes the new on-premise domain and the on-premise domains previously listed in the digital certificate XC. Referring to the above example, if a new on-premise domain D6 needs to federate with any cloud domain(s) in the realm, the present system replaces a digital certificate XC with a new digital certificate XC1 so that the SAN list of the digital certificate XC1 includes D6 in addition to D1, D2, D3, D4, and D5.
The present system uses the digital certificate XC1 to establish federation between the on-premise(s) domains and the cloud domain(s) in the realm (at 1209). The present system further creates an appropriate SRV record to point to the realm so that a message that originates from any of the cloud domain(s) in the realm to an on-premise domain listed in the digital certificate passes through the realm. For example, following is two SRV records that points to the realm:
1> _sipfederationtls._tcp.foobar.com SRV service location:
priority=20
weight=20
port=5061
svr hostname=sip.foobar.com
2> sip.foobar.com canonical name=sip.foobar.com.ucfederation.com
According to one embodiment, the digital certificate has a maximum number of domains that can be listed. For example, the SAN certificate has a maximum number of SANs in the SAN list. The maximum number may be based on a vendor that issues the digital certificate. For example, the maximum number is 100. This means that the maximum number of on-premise domains that can federate with a cloud domain in a realm (e.g., realm X) is 100 (e.g., domains D1 to D100). If a 101th on-premise domain D101 needs to federate with the cloud domain in the realm, the present system provides a realm routing logic to select a realm to send a message to the cloud domain.
If there is an additional on-premise domain, the present system further determines whether the maximum number of on-premise domains in the digital certificate XC is reached (at 1306). If the maximum number of on-premise domains is not reached, the present system continues to add the additional on-premise domain to the digital certificate XC (at 1302). If the maximum number of on-premise domains is reached, the present system adds the additional on-premise domain to another digital certificate YC that corresponds to a realm Y (at 1307). According to one embodiment, the present system provides a user interface to allow a user (e.g., an administrator) to associate the additional on-premise domain with realm Y. The additional on-premise domain that is added to digital certificate YC is associated with realm Y. The present system generates a subsequent CSR with a modified list attribute that includes the additional on-premise domain for the digital certificate YC. The present system further transmits the CSR to a certification authority and have the administrator of the UC system for the additional on-premise domain work with the certification authority to issue the digital certificate YC.
For example, the maximum number of on-premise domains in digital certificate XC is 100. The present system associates domains D1 to D100 with realm X. If there is an additional on-premise domain D101, the present system associates D101 with realm Y.
The present system further assigns the cloud domain (that is also assigned to realm X) to realm Y (at 1308). The present system uses digital certificate YC to establish federation between the on-premise domain(s) associated with realm Y and the cloud domain in realm Y (at 1309). The present system further publishes an SRV record for the on-premise domain(s) associated with realm Y to point to realm Y (at 1310). This ensures that a message from the cloud domain in realm Y to one or more on-premise domains associated with realm Y comes via realm Y. According to one embodiment, if an on-premise domain is not associated with any realm, the present system specifies a default realm for the cloud domain.
It is noted that the on-premise domain to realm configuration setting is independent of the actual number of cloud domains that are present in a realm. For example, if there are two cloud domains (e.g., domain names “dom_365.com” and “dom1_365.com”) present in realm X, then the on-premise domains associated with realm X are independent of the cloud domains (e.g., domain names “dom_365.com” and “dom1_365.com”).
A data storage device 1405 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to architecture 1400 for storing information and instructions. Architecture 1400 can also be coupled to a second I/O bus 1406 via an I/O interface 1407. A plurality of I/O devices may be coupled to I/O bus 1406, including a display device 1408, an input device (e.g., an alphanumeric input device 1409 and/or a cursor control device 1410).
The communication device 1411 allows for access to other computers (e.g., servers or clients) via a network. The communication device 1411 may include one or more modems, network interface cards, wireless network interfaces or other interface devices, such as those used for coupling to Ethernet, token ring, or other types of networks.
The above example embodiments have been described hereinabove to illustrate various embodiments of implementing a system and method of federating a cloud-based communications service with a unified communications system. Various modifications and departures from the disclosed example embodiments will occur to those having ordinary skill in the art. The subject matter that is intended to be within the scope of the disclosure is set forth in the following claims.