IP Library Granted Patent US 9,130,923
Granted Patent B2
US 9,130,923 · App. 14/084,853 · Granted Sep 8, 2015

Credential provider that encapsulates other credential providers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,130,923
App. No.
14/084,853
Granted
Sep 8, 2015
Kind
B2
Abstract

Systems, methods, and computer readable media for encapsulating multiple Windows® based credential providers (CPs) within a single wrapping CP are described. In general, CP credentials and fields from two or more encapsulated or wrapped CPs may be enumerated and aggregated in such a way that the order of fields from each CP is preserved, fields that may be used only once are identified and appear only once, and fields are given a new unique field identifier. The union of all such fields (minus duplicates of any one-use-only fields) may be used to generate a mapping so that the wrapping CP and CP credential may “pass-through” calls from the operating system's logon interface to the correct wrapped CP and CP credential. The disclosed techniques may be used, for example, to provide single sign-on functionality where a plurality of sign-on credentials may be used (e.g., user name/password and smart card PIN).

Claims (66)

1. At least one non-transitory computer readable storage medium having instructions stored thereon that when the instructions are executed by one or more processors cause the one or more processors to:

receive a wrapped credential provider containing information from a plurality of original credential providers, wherein each original credential provider has a specified number of credentials, an ordered list of fields wherein each field has an original credential provider specific identifier and each field has a descriptor;

process the wrapped credential provider utilizing a map list from the ordered lists of fields from each original credential provider, wherein the order of fields from a single original credential provider is preserved in the map list and each subsequent instance of a one-use-only field in the map list contains a same unique identifier as was assigned to a first instance of the one-use-only field in the map list;

identify a unique provider index to each of the plurality of original credential providers; and

route requests from a logon interface process to a corresponding one of the plurality of original credential providers by translating a wrapping credential provider field identifier to an appropriate wrapped credential provider identifier.

2. The at least one computer readable storage medium of claim 1 , wherein the wrapped credential provider was created based on a static list of original credential providers.

3. The at least one computer readable storage medium of claim 1 , wherein the wrapped credential provider was created based on a run-time identification of original credential providers.

4. The at least one computer readable storage medium of claim 1 , further comprising instructions that when executed by the one or more processors cause the one or more processors to:

provide the logon interface process with a number of unique identifiers assigned to fields in the map list; and

provide the logon interface process with a total number of credentials.

5. The at least one computer readable storage medium of claim 1 , further comprising instructions that when executed by the one or more processors cause the one or more processors to provide the logon interface process with information sufficient for the logon interface process to display a plurality of tiles in a single window on a display device.

6. The at least one computer readable storage medium of claim 5 , further comprising instructions that when executed by the one or more processors cause the one or more processors to:

receive a request from the logon interface process for a field descriptor for a field having a specified index value;

identify an entry in the map list having a unique identifier equal to the specified index value;

obtain the field descriptor based on the entry in the map list; and

provide the logon interface process with the field descriptor.

7. The at least one computer readable storage medium of claim 5 , further comprising instructions that when executed by the one or more processors cause the one or more processors to:

receive a request from the logon interface process to update a field having a field identifier;

identify one of the plurality of original credential providers based on the request;

identify a credential provider specific identifier for the field identifier for the one original credential provider based on an entry in the map list; and

send, to the one original credential provider, a request to update a field in the one original credential provider identified by the credential provider specific identifier.

8. A method for controlling a computer logon environment comprising:

receiving a wrapped credential provider containing information from a plurality of original credential providers, wherein each original credential provider has a specified number of credentials, an ordered list of fields wherein each field has an original credential provider specific identifier and each field has a descriptor;

processing, by a processor of a computer system, the wrapped credential provider utilizing a map list from the ordered lists of fields from each original credential provider, wherein the order of fields from a single original credential provider is preserved in the map list and each subsequent instance of a one-use-only field in the map list contains a same unique identifier as was assigned to a first instance of the one-use-only field in the map list;

identifying, using the processor of the computer system, a unique provider index to each of the plurality of original credential providers; and

routing requests from a logon interface process to a corresponding one of the plurality of original credential providers by translating a wrapping credential provider field identifier to an appropriate wrapped credential provider identifier.

9. The method of claim 8 , wherein the wrapped credential provider was created based on a static list of original credential providers.

10. The method of claim 8 , wherein the wrapped credential provider was created based on a run-time identification of original credential providers.

11. The method of claim 8 , further comprising:

receiving, at the logon interface process, a number of unique identifiers assigned to fields in the map list; and

receiving, at the logon interface process, a total number of credentials.

12. The method of claim 8 , further comprising:

receiving, at the logon interface process, information sufficient for the logon interface process to display a plurality of tiles in a single window on a display device.

13. The method of claim 12 , further comprising:

receiving a request from the logon interface process for a field descriptor for a field having a specified index value;

identifying an entry in the map list having a unique identifier equal to the specified index value;

obtaining the field descriptor based on the entry in the map list; and

providing the logon interface process with the field descriptor.

14. The method of claim 12 , further comprising:

receiving a request from the logon interface process to update a field having a field identifier;

identifying one of the plurality of original credential providers based on the request;

identifying a credential provider specific identifier for the field identifier for the one original credential provider based on an entry in the map list; and

sending, to the one original credential provider, a request to update a field in the one original credential provider identified by the credential provider specific identifier.

15. A programmable processing device comprising:

one or more processors; and

memory communicatively coupled to the one or more processors, wherein the memory stores instructions that when executed by the one or more processors cause the one or more processors to:

receive a wrapped credential provider containing information from a plurality of original credential providers, wherein each original credential provider has a specified number of credentials, an ordered list of fields wherein each field has an original credential provider specific identifier and each field has a descriptor;

process the wrapped credential provider utilizing a map list from the ordered lists of fields from each original credential provider, wherein the order of fields from a single original credential provider is preserved in the map list and each subsequent instance of a one-use-only field in the map list contains a same unique identifier as was assigned to a first instance of the one-use-only field in the map list;

identify a unique provider index to each of the plurality of original credential providers; and

route requests from a logon interface process to a corresponding one of the plurality of original credential providers by translating a wrapping credential provider field identifier to an appropriate wrapped credential provider identifier.

16. The programmable processing device of claim 15 , wherein the wrapped credential provider was created based on a static list of original credential providers.

17. The programmable processing device of claim 15 , wherein the wrapped credential provider was created based on a run-time identification of original credential providers.

18. The programmable processing device of claim 15 , wherein the memory further stores instructions that when executed by the one or more processors cause the one or more processors to:

provide the logon interface process with a number of unique identifiers assigned to fields in the map list; and

provide the logon interface process with a total number of credentials.

19. The programmable processing device of claim 15 , wherein the memory further stores instructions that when executed by the one or more processors cause the one or more processors to provide the logon interface process with information sufficient for the logon interface process to display a plurality of tiles in a single window on a display device.

20. The programmable processing device of claim 19 , wherein the memory further stores instructions that when executed by the one or more processors cause the one or more processors to:

receive a request from the logon interface process for a field descriptor for a field having a specified index value;

identify an entry in the map list having a unique identifier equal to the specified index value;

obtain the field descriptor based on the entry in the map list; and

provide the logon interface process with the field descriptor.

21. The programmable processing device of claim 19 , wherein the memory further stores instructions that when executed by the one or more processors cause the one or more processors to:

receive a request from the logon interface process to update a field having a field identifier;

identify one of the plurality of original credential providers based on the request;

identify a credential provider specific identifier for the field identifier for the one original credential provider based on an entry in the map list; and

send, to the one original credential provider, a request to update a field in the one original credential provider identified by the credential provider specific identifier.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →