1. A computer-implemented method comprising: storing, by a computer system, multiple, separate data sets for a single user where each data set is associated with a service provider, and where each data set is related to an access code that is based on a combination of data identifying the user and data identifying the service provider, with the data identifying the user being the same for each of the access codes, wherein the data identifying the user comprises a user ID identifying the user and the data identifying the service provider comprises a service provider ID identifying the service provider; providing, by the computer system, access to data in a particular data set of the multiple data sets by: obtaining the data identifying the user by authenticating the user based on the presence of a token; generating the access code for the particular data set based on a combination of the data identifying the user and data identifying the service provider associated with the particular data set, wherein generating the access code comprises: receiving, by an authentication system, the user ID and the service provider ID; and deriving the access code using a one way function based on the user ID and the service provider ID; and identifying storage locations for the particular data set based on the access code.