16. The system of claim 15 , wherein a number or type of objects required from the user identification information by a first identity management system in the plurality of identity management systems is different from a number or type of objects required from the user identification information by a second identity management system in the plurality of identity management systems.
15. A system comprising: one or more hardware processors; and one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to authenticate users in a secure search system for searching a plurality of secure data sources by configuring the one or more processors to: receive user identification information from a user in a secure enterprise system (SES); provide the user identification information to a plurality of identity management systems in the SES, wherein each of the plurality of identity management systems receives the user identification information through a respective Application Program Interface (API); validate the user against at least one identity management system in the plurality of identity management systems; crawl at least one secure data source in the plurality of secure data sources residing on a plurality of different computer systems that is associated with the at least one identity management system; build an index of documents from the at least one secure data source based on the crawling; receive a query from the user; call back at query time into the at least one identity management system to obtain security attribute values for the user; append the security attribute values for the user to the query and using the appended query to query the index of documents; and determine one or more documents from the index of documents in the plurality of secure data sources, that are responsive to the query and accessible to the user based on the security attribute values for the user and respective security attributes of the one or more documents.