1. A method for authenticating users in a secure search system, comprising: receiving, using one or more processors, user identification information from a user in a secure enterprise system; authenticating, using the one or more processors, the user to a plurality of secure data sources by providing the user identification information to a plurality of application program interfaces (APIs), with each API interfacing with a respective identity management computer system, and with each identity management computer system of a plurality of identity management computer systems managing identities for one or more secure data sources in the secure enterprise system, where each secure data source provides access to data by authenticated and authorized users, where a number or types of objects representing the user identification information required by a first identity management computer system is different from a number or types of objects representing the user identification information required by a second identity management computer system; crawling, using the one or more processors, a secure data source associated with the at least one identity management computer system and building an index of documents based on the crawling; receiving, using the one or more processors, a query from the user; calling, using the one or more processors, back into the at least one identity management computer system to obtain a security attribute value for the user in response to the query; appending, using the one or more processors, the security attribute value for the user to the query and using the appended query to query the index; and based on the appended query and security attributes of documents in the secure data source, determining, using the one or more processors, one or more documents from the index of documents, that are accessible to the user.