Tutorial: uso del Optimizador de seguridad del Catálogo de datos profesionales para restringir los resultados de la búsqueda
Enterprise Search de Microsoft Office SharePoint Server 2007 realiza la restricción de seguridad de tiempo de consulta de los resultados de la búsqueda mediante el uso de la información de seguridad obtenida en el tiempo de rastreo. Sin embargo, puede haber situaciones en las que esta restricción quizás no sea suficiente. Por ejemplo, cuando las aplicaciones back-end no pueden proporcionar la información de seguridad en el momento de realizar el rastreo o cuando se necesita información de seguridad actualizada y no resulta conveniente volver a realizar el rastreo antes de la restricción. Para solucionar estas situaciones, el motor de procesamiento de consultas del motor de búsqueda Enterprise Search proporciona un marco de trabajo para conectar módulos de restricción de seguridad en tiempo de consulta dinámicos en los que se pueden restringir la seguridad de los resultados específicos de una consulta de un único usuario antes de que se muestren en Resultados de la búsqueda.
El Catálogo de datos profesionales implementa el método CheckAccess para proporcionar compatibilidad integrada con la restricción de seguridad por cada instancia de entidad y para garantizar la seguridad en el nivel de instancia de entidad.
El Optimizador de seguridad del Catálogo de datos profesionales permite la restricción de seguridad personalizada de instancias de entidad (documentos de búsqueda) que el Catálogo de datos profesionales haya indizado antes de ser devueltas al usuario. Se restringe el conjunto de resultados (que contiene las instancias de entidad) en tiempo de ejecución en función de los permisos del usuario actual sobre los datos back-end, mediante el uso de la lógica de la aplicación back-end para determinar los permisos del usuario. El Optimizador de seguridad del Catálogo de datos profesionales da por supuesto que la aplicación back-end real proporcionará un método público para comprobar los permisos del usuario actual para una o más instancias de entidad. Los parámetros de entrada del método deben aceptar los identificadores de los objetos EntityInstance que hay que comprobar y el parámetro de salida debe devolver los derechos de acceso para el usuario actual como una matriz correspondiente de enteros long (o algún valor que se pueda convertir en entero long).
Si este tipo de API está disponible, los autores de los metadatos del Catálogo de datos profesionales pueden definir un Type de MethodInstance denominado AccessChecker en el archivo de definición de aplicación y asignarlo a la API back-end en gran medida de la misma manera que para Finder, SpecificFinder y así sucesivamente. Después de que una instancia del método AccessChecker esté disponible, el Optimizador de seguridad del Catálogo de datos profesionales podrá usarla para determinar los permisos del usuario a través del método CheckAccess.
El Optimizador de seguridad del Catálogo de datos profesionales ejecuta el método CheckAccess cada vez que el motor de consultas devuelve los resultados de la búsqueda que coinciden con la regla de rastreo con la cual está relacionado el Optimizador de seguridad del Catálogo de datos profesionales. Cuando se llama al método Entity.CheckAccess, el Catálogo de datos profesionales ejecuta la API back-end descrita por la instancia del método AccessChecker registrada para esa entidad. La API back-end devuelve los derechos que el usuario actual tiene sobre esa instancia o instancias de la entidad. Esta información se transmite nuevamente al método Entity.CheckAccess y, finalmente, al Optimizador de seguridad, que usa dicha información para restringir los resultados antes de mostrárselos al usuario.
Este tutorial lo guía a través de los pasos necesarios para agregar una instancia del método AccessChecker al Ejemplo de SQL Server 2005 de AdventureWorksDW, registrar el Optimizador de seguridad del Catálogo de datos profesionales y agregar reglas de rastreo y orígenes de contenido para restringir la seguridad de los datos de línea de negocio (LOB).
Vea también
Otros recursos
Tutorial: Uso de un optimizador de seguridad personalizado para los resultados de la búsqueda
Ejemplos de AccessChecker