Embodiments of the present invention provide an open and interoperable single sign-on session in a heterogeneous communication network. The open and interoperable single sign-on system is configured by exchanging an entity identifier, an account mapping, an attribute mapping, a site attribute list, an action mapping and/or the like. The entity identifier, account mapping, attribute mapping, site attribute list, action mapping and the like for each partner entity is stored in a partner list accessable to the particular entity. Thereafter, the open and interoperable single sign-on session may be provided upon receipt of a saml request or assertion containing an entity identifier. The entity identifier contained in the saml request or assertion is looked-up in the partner list of the particular entity which received the saml request or assertion. A record containing a matching entity identifier provides the applicable account mapping, attribute mapping, site attribute list, and/or action mapping. The one or more mappings are then utilized to process the saml request or assertion.
|
7. A method of providing an open interoperable security assertion markup language (saml) session comprising:
receiving, by a first entity, a saml request from a second entity, comprising an entity identifier;
searching a partner list of said first entity for a record containing a matching entity identifier, wherein said record contains an account mapping and an attribute mapping, wherein said account mapping defines a mapping of an account of said second entity to an account of said first entity, and wherein said attribute mapping defines a mapping of an attribute of said second entity to an attribute of said first entity;
processing said saml request in accordance with said account mapping and said attribute mapping; and
sending a saml assertion in response to said saml request.
22. A computer readable medium comprising one or more instructions which, when executed by one or more processors, cause the one or more processors to implement a method comprising:
receiving, by a first entity, a security assertion markup language (saml) request from a second entity, wherein the saml request comprises an entity identifier;
searching a partner list for a record containing a matching entity identifier, wherein said record contains an account mapping and an attribute mapping, wherein said account mapping defines a mapping of an account of said second entity to an account of said first entity, and wherein said attribute mapping defines a mapping of an attribute of said second entity to an attribute of said first entity;
processing said saml request in accordance with said account mapping and said attribute mapping; and
sending a saml assertion in response to said saml request.
19. A system for providing an open and interoperable security assertion markup language (saml) session comprising:
a first entity comprising:
a first session module for generating and sending a saml request, said saml request comprising an entity identifier; and
a second entity, communicatively coupled to said first entity, comprising;
a second session module for receiving and processing said saml request; and
a partner list, accessible by said second session module, comprising a record that contains a matching entity identifier, said record further containing an account mapping and an attribute mapping, wherein said account mapping defines a mapping of an account of said second entity to an account of said first entity, and wherein said attribute mapping defines a mapping of an attribute of said second entity to an attribute of said first entity;
wherein said second session module searches for said record, processes said saml request in accordance with said account mapping and said attribute mapping, and sends a saml assertion in response to said saml request.
17. A system for configuring an open and interoperable security assertion markup language (saml) session comprising:
a first entity comprising:
a first administration module for receiving a first entity identifier of a second entity and a first account mapping between said second entity and said first entity; and
a first partner list, accessible by said first administration module, for storing said first entity identifier and said first account mapping; and
said second entity comprising:
a second administration module for receiving a second identifier of said first entity and a second account mapping between said first entity and said second entity; and
a second partner list, accessible by said second administration module, for storing said second entity identifier and said second account mapping; wherein
said first administration module receives a first action mapping between said second entity and said first entity;
said first partner list stores said first action mapping;
said second administration module receives a second action mapping between said first entity and said second entity; and
said second partner list stores said second action mapping.
13. A system for configuring an open and interoperable security assertion markup language (saml) session comprising:
a first entity comprising:
a first administration module for receiving a first entity identifier of a second entity and a first account mapping between said second entity and said first entity; and
a first partner list, accessible by said first administration module, for storing said first entity identifier and said first account mapping; and
said second entity comprising:
a second administration module for receiving a second identifier of said first entity and a second account mapping between said first entity and said second entity; and
a second partner list, accessible by said second administration module, for storing said second entity identifier and said second account mapping; wherein
said first administration module receives a first attribute mapping between said second entity and said first entity;
said first partner list stores said first attribute mapping;
said second administration module receives a second attribute mapping between said first entity and said second entity; and
said second partner list stores said second attribute mapping.
15. A system for configuring an open and interoperable security assertion markup language (saml) session comprising:
a first entity comprising:
a first administration module for receiving a first entity identifier of a second entity and a first account mapping between said second entity and said first entity; and
a first partner list, accessible by said first administration module, for storing said first entity identifier and said first account mapping; and
said second entity comprising:
a second administration module for receiving a second identifier of said first entity and a second account mapping between said first entity and said second entity; and
a second partner list, accessible by said second administration module, for storing said second entity identifier and said second account mapping; wherein
said first administration module receives a first site attribute list between said second entity and said first entity;
said first partner list stores said first site attribute list;
said second administration module receives a second site attribute list between said first entity and said second entity; and
said second partner list stores said second site attribute list.
6. A method of configuring an open interoperable security assertion markup language (saml) session comprising:
receiving a first entity identifier of a first entity by a second entity;
receiving a first account mapping between said first entity and said second entity by said second entity;
storing said first entity identifier and said first account mapping as a first record in a first partner list accessible to said second entity;
receiving a second entity identifier of said second entity by said first entity;
receiving a second account mapping between said second entity and said first entity by said first entity;
storing said second entity identifier and said second account mapping as a second record in a second partner list accessible to said first entity;
receiving a first client certificate of said first entity by said second entity;
receiving a first network address of said first entity by said second entity;
storing said first client certificate and said first network address as another part of said first record in said first partner list accessible to said second entity;
receiving a second client certificate of said second entity by said first entity;
receiving a second network address of said second entity by said first entity; and
storing said second client certificate and said second network address as another part of said second record in said second partner list accessible to said first entity.
1. A method of configuring an open interoperable security assertion markup language (saml) session comprising:
receiving a first entity identifier of a first entity by a second entity;
receiving a first account mapping between said first entity and said second entity by said second entity;
storing said first entity identifier and said first account mapping as a first record in a first partner list accessible to said second entity;
receiving a second entity identifier of said second entity by said first entity;
receiving a second account mapping between said second entity and said first entity by said first entity;
storing said second entity identifier and said second account mapping as a second record in a second partner list accessible to said first entity;
receiving one or more mappings between said first entity and said second entity by said second entity, wherein the mappings are selected from the group consisting of an attribute mapping, a site attribute list, an account mapping, and an action mapping;
storing said one or more mappings between said first entity and said second entity as a part of said first record in said first partner list accessible to said second entity;
receiving one or more mappings between said second entity and said first entity by said first entity, wherein the mappings are selected from the group consisting of an attribute mapping, a site attribute list, an account mapping, and an action mapping; and
storing said one or more mappings between said second entity and said first entity as part of said second record in said second partner list accessible to said first entity.
2. The method according to
3. The method according to
4. The method according to
5. The method according to
8. The method according to
9. The method according to
wherein said record further contains an action mapping, and wherein said saml request is processed in accordance with said account mapping, said attribute mapping, and said action mapping.
10. The method according to
11. The method according to
wherein said record further contains a site attribute list, and wherein said method further comprises:
generating said saml assertion in accordance with said site attribute list.
12. The method according to
14. The system according to
16. The system according to
18. The system according to
20. The system according to
21. The system according to
23. The computer readable medium of
24. The computer readable medium according to
25. The computer readable medium according to
generating said saml assertion in accordance with said site attribute list.
26. The computer readable medium according to
|
Embodiments of the present invention relate to network communication systems, and more particularly to an open and interoperable SAML session on a network.
Referring to
In the conventional art, the client 125 logs-on to a particular entity's server 170, wherein the user provides a username, password and/or the like. Based upon the username, password and the like, the server 170 authenticates the client 125 and determines the client's 125 authorization to access particular resources.
If the client 125 then tries to access resource on another server 172, establishing authentication and utilizing resources is problematic. The other servers 172–182 do not know that the client device 125 has been authenticated by a particular server 170. Furthermore, each organization 105–120 and/or server 170–182 may have a different login script, may require a different protocol, may utilize different information, may store the same information in differing structures, formats and/or the like. Therefore, the client typically has to sign onto each server 170–182 separately.
For example, a user may wish to access resources on various organizations 105–115 in the performance of their work, such as using the internet 190 to make travel arrangements. The user first logs-on to the company's (e.g., Widget Corp.) network server 170 utilizing a client device 125. The user may manually or via a script, enter their username (e.g, jdoe) and password in order to logon to the network server 170. The network server 170 provides an internet portal.
The user may then navigate using a browser to the website of an airline 115. The user will likely be required to enter their name, address and the like to book a flight. The user's address may be stored as a single field (e.g., address) in a record corresponding to the user's reservation. Similarly, the user may then navigate to a car rental agency 110 to reserve a rental car. Once again, the user may be requested to enter their name and address to reserve the car. The user's address may be stored as a plurality of fields (e.g., street address, city, state, zip code) in the record corresponding to the user's reservation. Similarly, the user may also navigate to a website of a hotel chain 120 to reserve a room. The user may be requested to enter a username (e.g, janed), password and the like to reserve the room using a corporate account.
Heterogeneous systems require various information. Some information may be common to each, while other information may be unique to one or more systems. Each system may also store the same information in various different formats. Thus, the interoperability of the various systems is problematic. Furthermore, the need to logon to each entity's server 170–172 and re-enter the same information (e.g., address, username) reduces the users satisfaction and productivity.
The need to logon multiple times is not limited to moving between multiple entities 105–120. For example, the user may login to their employer's network server 170 to access the finance server 180. The user may again be required to enter a username, password and the like in order to enter expenses, such as meals, entertainment and gas, incurred during their business travel. Along with entering a username, password and the like, the user may be required to enter their social security number, which is utilized to limit authorization to resources on the finance server 180. The financial server 180 may save the social security number in a field entitled “ssn.” The user may then wish to check their retirement account. Once again the user may be required to provide a username, password and the like to access the payroll server 182 in order to check their retirement account. Along with enter a username, password and the like, the user may be required to enter their social security number, which the server utilizes to limit authorization to utilize resources on the payroll server 182. The financial server 180 may save the social security number in a field entitled “social security.” Accordingly if different fields contain the same information, the interoperability of the systems may be limited even though the fields are substantially the same.
The Security Assertion Markup Language (SAML) specification is intended to provide a solution allowing single sign-on for secure authentication and authorization. SAML is an eXtensible Markup Language (XML) standard designed for business-to-business (B2B) and business-to-consumer (B2C) transactions.
Referring now to
Referring now to
Upon receipt, the HTTP header 250 is processed to provide routing and flow control. The SOAP header 255 is then processed to provide information concerning the content of the payload and how to process it. The SAML payload 260 may then be processed to provide security information.
Security Assertion Markup Language (SAML) for single sing-on functionality is intended to allow users to authenticate themselves in one domain and use the resources in another domain without re-authenticating themselves. SAML is intended to be an open and interoperable design for web-based single sign-on service functionality. However, differences in the organization and utilization of information limit the application of SAML in a heterogeneous network.
Embodiments of the present invention provide an open and interoperable single sign-on session in a heterogeneous communication network. Embodiments of the present invention advantageously enable interoperation of disparate security service systems. Embodiments of the present invention comprise mapping elements of a SAML request or assertion that related to the content and organization of information utilized by the present entity to the corresponding content and organization of information utilized by a partner entity.
Embodiments provide a method and system of configuring an open and interoperable single sign-on session. An administration module provides for receipt of an entity identifier of a partner entity, an account mapping between the partner entity and the present entity, an attribute mapping between the partner entity and the present entity, a site attribute list between the partner entity and the present entity, an action mapping between (e.g., authorization decision) the partner entity and the present entity, and/or the like. The entity identifier, account mapping, attribute mapping, site attribute list, action mapping and the like for each partner entity is stored in a trusted partner list accessable to the present entity.
Embodiments are directed to a method and system of providing an open and interoperation single sign-on session. Upon receipt of a SAML request or assertion containing an entity identifier, the entity identifier is looked-up in a trusted partner list of the present entity. A record containing a matching entity identifier provides the applicable account mapping, attribute mapping, site attribute list, and/or action mapping. The one or more mappings are then utilized to process or generate the SAML request or assertion.
Embodiments of the present invention provide a unique SAML configuration defining the mapping between heterogeneous partner sites. An account mapping defines how a subject between two entities are mapped. An attribute mapping defines how an attribute is mapped from a first entity to a second entity. A site attribute list defines an attribute that needs to be returned by said first entity to said second entity. An action mapping defines how an authorization decision of said first entity is mapped to and authorization decision of said second entity
The present invention is illustrated by way of example and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
Reference will now be made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with these embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it is understood that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Referring now to
The method may optionally comprise receiving an attribute mapping, a site attribute list, action mapping and/or the like, between the first entity and the second entity, by the second entity. The attribute mapping defines how an attribute and/or an attribute namespace between the first entity and the second entity are mapped. The site attribute list defines what attributes need to be exchanged between the first entity and second entity. The action mapping defines what authorization decision information are exchanged between the first entity and the second entity.
The entity identifier, client certificate, network address and/or the like of the first entity is stored as one or more fields of a corresponding record in a partner list accessable to a second entity, at step 330. The account mapping between the first entity and the second entity is stored as another field of the corresponding record in the partner list accessable to the second affiliated entity. Optionally, the attribute mapping, the site attribute list, action mapping and/or the like of the first entity to the second entity may be stored as additional fields of the corresponding record in the partner list accessible to the second affiliated entity.
The method further comprises receiving an entity identifier, a client certificate, network address and/or the like of the second entity by the first entity, at step 340. The method further comprises receiving an account mapping between the second entity and the first entity by the first entity, at step 350. The method may optional further comprise receiving an attribute mapping, a site attribute list, action mapping and/or the like, between the second entity and the first entity, by the first entity.
The entity identifier, certificate, network address and/or the like of the second affiliated entity is stored as one or more fields of a corresponding record in a partner list accessable to the first affiliated entity, at step 360. The account mapping, between the second entity and the first entity is stored as another field of the corresponding record in the partner list accessable to the first affiliated entity. Optionally, the attribute mapping, the site attribute list, action mapping and/or the like of the second entity to the first entity may be stored as additional fields of the corresponding record in the partner list accessible to the first entity.
The method may be repeated for each pair of entities in a network. Thus, the partner list of each entity may comprise a record, including an entity identifier and an account mapping, for each partner entity. Each record in an entity's partner list may further include a corresponding client certificate, network address, attribute mapping, site attribute list, account mapping, and/or the like.
Referring now to
For example, the partner list for server A may comprise entity identifiers for servers B and C, and account mappings of A to B and A to C. Additionally, the partner list for server A may further comprise certificates of B and C, network address (e.g., internet protocol addresses) of B and C, attribute mappings of A to B and A to C, site attribute lists of A to B and A to C, and action mappings of A to B and A to C.
Referring now to
Optionally, the administration module 530 of the first entity 510 may also receive a client certificate and/or network address of the second entity 520. The administration module 530 of the first entity 510 may also receive an attribute mapping, a site attribute list, an action mapping and/or the like between the second entity and the first entity. The administration module 530 of the first entity 510 stores the certificate, network address, attribute mapping, site attribute list, action mapping and/or the like in a plurality of additional fields of the corresponding record in the partner list 550 of the first entity 510.
Similarly, the administration module 540 of the second entity 520 receives an entity identifier and/or the like of the first entity 510 and stores it in a first field of a record in a partner list 560 of the second entity 520. The administration module 540 of the second entity 520 also receives a mapping between an account of the first entity 510 and an account of the second entity 520. The administration module 540 of the second entity 520 stores the account mapping in a second field of the corresponding record in the partner list 560 of the second entity 520.
Optionally, the administration module 540 of the second entity 520 may also receive a client certificate and/or network address of the first entity 510. The administration module 540 of the second entity 520 may also receive an attribute mapping, a site attribute list, an action mapping and/or the like between the first entity 510 and the second entity 520. The administration module 540 of the second entity 520 stores the certificate, network address, attribute mapping, site attribute list, action mapping and/or the like in a plurality of additional fields of the corresponding record in the trusted partner list 560 of the second entity 520.
The client certificate, network address, account mapping, attribute mapping, site attribute list, action mapping and/or the like may be provided to the first and second entities by an administrator or the like. In one implementation, the mappings are implemented as a java class. The account mapping defines how the subject between two sites (e.g., the first and second entities 510, 520) are mapped to each other. In one implementation, the account mapping between a partner source identifier and the implementation class are configured at the partner URLs field in a SAML service. The attribute mapping defines how attributes between two sites are mapped. In one implementation, the attribute mapping between the partner source identifier and the implementation class are configured at the partner site field in the SAML service. The site attribute list defines the list of attributes which will be returned as attribute statement elements as part of an assertion. In one implementation, the site attribute list between the partner source identifier and the implementation class are configured at the partner URLs field in the SAML service. The action mapping defines how the second entity's authorization decision is mapped to a policy decision of the first entity's policy decision. In one implementation, the action mapping between the partner source identifier and the implementation class are configured at the partner site field in the SAML service. Accordingly, the mappings may advantageously comprise straight mappings or mappings of any complexity.
Referring now to
Thereafter, the SAML request may be processed according to the account mapping, attribute mapping, site attribute list, action mapping and/or the like at step 630. In an exemplary implementation, a SAML request received at a local entity from a partner entity may indicate that a client (e.g., client 1A) is logged-on and has a username (e.g., jdoe). Therefore, the local entity (server B) may process the SAML request utilizing the account mapping provided in its partner list. The account mapping for example, may map the username of the partner entity to the username on the local entity (e.g., janed). The exemplary account mapping may comprise “if user (server A)=jdoe, then user (server B)=janed.”
In another exemplary implementation, a SAML request received at a local entity from a partner entity may indicate the client is logged-on and has an address (e.g., 101 First Ave., Anytown, Calif. 12121), wherein the address is passed as four fields (e.g, street, city, state, and zip). Therefore, the local entity may process the SAML request utilizing the attribute mapping provided in its partner list. The attribute mapping for example, may map the address of the partner entity, wherein the address is utilized as four fields, to the address on the local entity, wherein the address is utilized as a single field. In so doing the mapping may cause the four address fields to be concatenated to form a single address field.
In yet another exemplary implementation, a SAML request received at the local entity may indicate that the client is logged-on and only has permission to access records in a system (e.g., financial) corresponding to the particular client. Therefore, the local entity may process the SAML request utilizing the action mapping provided in its partner list. The action mapping for example may map the permission to access particular records associated with the client on the partner entity to the local entity (e.g., payroll). Thus, the access permission established on the partner entity is mapped to a corresponding access permission on the local entity. Alternatively, the SAML request may pass the social security number of the client, as a field “ssn”. The corresponding attribute mapping may then be utilized to map the “ssn” of the request to the “social security” namespace of the local entity. Thereafter the local entity could determine access permissions based upon the content of the “social security” namespace of the client.
Furthermore, at step 640, a SAML assertion may be sent in response to the SAML request. The SAML assertion may be sent to the second entity according to the account mapping, attribute mapping, site attribute list, action mapping and/or the like. In an exemplary implementation, the local site may utilize a corresponding record in its partner list, such as a site attribute list, to determine what information to return in a SAML assertion. Therefore, the SAML assertion will contain the information required by the second entity.
Referring now to
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.
Sun, Wei, Xu, Hong, Luo, Ping, Cheng, Qingwen, Bhatnagar, Bhavna, Bhat, Shivaram, Ranganathan, Aravindan
Patent | Priority | Assignee | Title |
10263955, | Dec 14 2015 | Bank of America Corporation | Multi-tiered protection platform |
11140548, | Feb 09 2009 | Workday, Inc. | System and method to support identity theft protection as part of a distributed service oriented ecosystem |
11595816, | Feb 09 2009 | WORKDAY, INC | System and method to support identity theft protection as part of a distributed service oriented ecosystem |
7467415, | Sep 30 2003 | Oracle International Corporation | Distributed dynamic security for document collaboration |
7552468, | Sep 30 2003 | Oracle International Corporation | Techniques for dynamically establishing and managing authentication and trust relationships |
7673327, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregation system |
7698734, | Aug 23 2004 | DROPBOX, INC | Single sign-on (SSO) for non-SSO-compliant applications |
7908647, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregation system |
8015301, | Sep 30 2003 | Oracle International Corporation | Policy and attribute based access to a resource |
8108460, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregation system |
8112476, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Cache and look ahead aggregation system |
8122080, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregation system |
8156183, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Mobile phone aggregation system |
8220035, | Feb 29 2008 | Adobe Inc | System and method for trusted embedded user interface for authentication |
8250633, | Oct 26 2007 | EMC IP HOLDING COMPANY LLC | Techniques for flexible resource authentication |
8353016, | Feb 29 2008 | Adobe Inc | Secure portable store for security skins and authentication information |
8555078, | Feb 29 2008 | Adobe Inc | Relying party specifiable format for assertion provider token |
8886817, | May 22 2008 | R2 SOLUTIONS LLC | Federation and interoperability between social networks |
8924545, | Jan 13 2012 | Microsoft Technology Licensing, LLC | Cross-property identity management |
8959156, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Peer-to-peer aggregation system |
8996654, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregator with managed content |
9357384, | Feb 09 2009 | WORKDAY, INC | System and method to support identity theft protection as part of a distributed service oriented ecosystem |
9397988, | Feb 29 2008 | Adobe Inc | Secure portable store for security skins and authentication information |
9832200, | Dec 14 2015 | Bank of America Corporation | Multi-tiered protection platform |
9832229, | Dec 14 2015 | Bank of America Corporation | Multi-tiered protection platform |
9984370, | Feb 09 2009 | International Business Machines Corporation | System and method to support identity theft protection as part of a distributed service oriented ecosystem |
9992163, | Dec 14 2015 | Bank of America Corporation | Multi-tiered protection platform |
Patent | Priority | Assignee | Title |
5898780, | May 21 1996 | CHANNEL IP B V | Method and apparatus for authorizing remote internet access |
5944824, | Apr 30 1997 | Verizon Patent and Licensing Inc | System and method for single sign-on to a plurality of network elements |
6161139, | Jul 10 1998 | ENTRUST, INC | Administrative roles that govern access to administrative functions |
6587124, | Mar 22 1999 | Virtual Access Technology Limited | Apparatus and method for generating configuration data for a device to access a service |
6807636, | Feb 13 2002 | Hitachi Computer Products (America), Inc. | Methods and apparatus for facilitating security in a network |
6892307, | Aug 05 1999 | Oracle America, Inc | Single sign-on framework with trust-level mapping to authentication requirements |
20030172127, | |||
20040001594, | |||
20040003139, | |||
20040003251, | |||
20040003268, | |||
20040003269, | |||
20040003270, | |||
20040117170, | |||
20040117460, | |||
EP1091274, | |||
EP1370963, | |||
GB2387991, | |||
WO60484, | |||
WO2058336, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 24 2003 | RANGANATHAN, ARAVINDAN | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | LUO, PING | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | CHENG, QINGWEN | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | BHATNAGAR, BHAVNA | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | XU, HONG | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | SUN, WEI | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jun 25 2003 | BHAT, SHIVARAM | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014285 | /0041 | |
Jul 14 2003 | Sun Microsystems, Inc. | (assignment on the face of the patent) | / | |||
Feb 12 2010 | ORACLE USA, INC | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0772 | |
Feb 12 2010 | Sun Microsystems, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0772 | |
Feb 12 2010 | Oracle America, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037302 | /0772 |
Date | Maintenance Fee Events |
Nov 24 2010 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 03 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 13 2018 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 26 2010 | 4 years fee payment window open |
Dec 26 2010 | 6 months grace period start (w surcharge) |
Jun 26 2011 | patent expiry (for year 4) |
Jun 26 2013 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 26 2014 | 8 years fee payment window open |
Dec 26 2014 | 6 months grace period start (w surcharge) |
Jun 26 2015 | patent expiry (for year 8) |
Jun 26 2017 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 26 2018 | 12 years fee payment window open |
Dec 26 2018 | 6 months grace period start (w surcharge) |
Jun 26 2019 | patent expiry (for year 12) |
Jun 26 2021 | 2 years to revive unintentionally abandoned end. (for year 12) |