Implementar el conector local de Microsoft SharePoint

Puede configurar Google Cloud Search para obtener resultados del contenido local de SharePoint de su organización además de su contenido de Google Workspace. Utiliza el conector local de SharePoint de Google Cloud Search y lo configura para acceder a una fuente de datos de SharePoint específica.

Consideraciones importantes

Configuración de SharePoint respetada

El conector local de SharePoint de Cloud Search siempre respeta la configuración de Visibilidad de búsqueda en SharePoint, que no se puede anular. Para los borradores de documentos, los permisos de la cuenta de usuario (que el conector usa para acceder a SharePoint Online) controlan qué borradores de documentos se indexan y devuelven. Si la cuenta solo tiene permisos de "Lectura completa", el conector respeta la configuración de "Visibilidad del elemento de borrador" en SharePoint.

También puede configurar el conector para limitar los resultados en función del acceso a la cuenta de usuario. Puede usar entidades principales de Google y externas para definir las ACL. Para aplicar el recorte de seguridad para el contenido de SharePoint, sincronice las siguientes identidades externas con el Directorio de Google:

  • Usuarios de directorio activo
  • Grupos de directorio activo
  • Grupos locales de SharePoint (con usuarios y grupos de Active Directory como miembros)

Para sincronizar usuarios y grupos de AD, utiliza Google Cloud Directory Sync , lo que habilita grupos asignados de identidad. Para sincronizar grupos locales de SharePoint, utilice el conector de identidad de SharePoint.

El conector también necesita realizar una búsqueda con AD para obtener información adicional para sincronizar los principales. Por ejemplo, la búsqueda con AD permite que el conector haga lo siguiente:

  • Asigne el SID de un grupo de dominio al sAMAccountName correspondiente.
  • Asigne un sAMAccountName de usuario a la dirección de correo electrónico para las pertenencias a grupos locales de SharePoint.

Optimización de búsqueda

Puede mejorar la experiencia de sus usuarios configurando el conector para obtener resultados de búsqueda más relevantes.

Para usar la API, establezca valores para los parámetros de generación de HTML en el archivo de configuración del conector de SharePoint Online. Estos parámetros le permiten establecer qué campos tienen mayor o menor impacto en las coincidencias.

Para configurar un esquema, siga las instrucciones en Crear y registrar un esquema . Cuando configura un esquema:

  • Para asignar los nombres de los tipos de contenido de SharePoint a las definiciones de objetos correspondientes, el conector normaliza los nombres de los tipos de contenido excluyendo los caracteres no admitidos. Para las definiciones de objetos, la API de Cloud Search solo admite AZ, az y 0-9 como caracteres válidos. Por ejemplo, el tipo de contenido "Anuncios" se asigna a la definición de objeto "Anuncios". El tipo de contenido "Artículo de noticias" se asigna a "Artículo de noticias" (sin espacio).

  • Cuando el conector no puede hacer coincidir una definición de objeto con una definición de objeto, el conector usa el tipo de objeto alternativo ( itemMetadata.objectType ). Obtenga más información sobre los parámetros de configuración de metadatos .

  • Para asignar nombres de propiedades de SharePoint a definiciones de propiedades, el conector normaliza los nombres de propiedades mediante la decodificación de caracteres codificados en hexadecimal y la eliminación de los prefijos "ows_", luego excluye los caracteres no admitidos (todos los caracteres excepto AZ, az y 0-9 como caracteres válidos).

Manejo de mensajes de Microsoft Outlook

Cuando el conector encuentra archivos .msg de Microsoft Outlook al indexar el contenido, anula el tipo de medio de los archivos y los indexa como application/vnd.ms-outlook.

Configuraciones multiinquilino

Si su SharePoint es una implementación multiusuario, donde varios sitios de clientes están alojados en la misma aplicación web, debe configurar el modo de colección de sitios en el archivo de configuración. En las implementaciones multiinquilino, obtiene permisos solo para su colección de sitios y no puede obtener permisos de lectura completa , según lo requiere el conector local de SharePoint.

Para habilitar el modo de colección de sitios:

  • Otorgue permisos de administrador de la colección de sitios de la cuenta de usuario del conector.
  • Establezca sharepoint.server en el archivo de configuración de su conector en la URL de la colección de sitios, como http://sharepoint.example.com/sites/sitecollection . La dirección URL no necesita usar exactamente el mismo caso que en SharePoint.
  • Establezca sharepoint.siteCollectionOnly en el archivo de configuración de su conector en true .

Si tiene varias colecciones de sitios para indexar en un entorno de múltiples inquilinos, debe configurar una instancia de conector para cada una de las colecciones de sitios.

Limitaciones conocidas del conector

  • El tiempo que tarda el conector en detectar cambios en los elementos de las bases de datos aumenta con el número de bases de datos que supervisa el conector.
  • El consumo de memoria aumenta con la cantidad de usuarios y grupos únicos que usa en las ACL para cada colección de sitios.
  • Puede configurar el conector con identidades de un solo dominio de Active Directory.
  • Algunas entidades principales comunes de Active Directory y Windows, como Everyone , BUILTIN\Users y All Authenticated Users , no son compatibles.
  • Las notificaciones de eliminación no son instantáneas y un conector puede tardar más de 4 horas en reconocer que un usuario eliminó contenido del repositorio de origen.

Requisitos del sistema

Requisitos del sistema
Sistema operativo
  • Servidor Windows 2016
  • ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bits)
Software
  • servidor de SharePoint
    • servidor de SharePoint 2016
    • servidor de SharePoint 2013
  • Java JRE 1.8 instalado en la computadora que ejecutará el conector local de SharePoint de Google Cloud Search
Autenticación
  • NTLM
  • Kerberos
  • HTTP básico
  • ADFS

Implementar el conector

requisitos previos

  1. Cree una clave privada de Google Workspace, que contenga su ID de cuenta de servicio. Para obtener información sobre cómo obtener una clave privada, vaya a Configurar el acceso a la API REST de Google Cloud Search .

  2. Su administrador de Google Workspace debe agregar una fuente de datos para buscar . Registre la identificación de la fuente de datos.

  3. Si el conector devuelve resultados basados ​​en LCA (los resultados no son públicos), su administrador de Google Workspace debe crear dos fuentes de identidad y proporcionarle sus ID:

    • Una fuente de identidad para sincronizar usuarios y grupos de Active Directory.
    • Una fuente de identidad para grupos locales de SharePoint

    El administrador también debe obtener el ID de cliente de Google Workspace de su organización y dárselo.

    Obtenga información sobre cómo obtener estos valores en Mapear identidades de usuarios en Cloud Search .

  4. Configure una cuenta de usuario para el conector que tenga permisos de lectura completa para la aplicación web de SharePoint en la directiva de usuario.

  5. Si la aplicación web de SharePoint no tiene una colección de sitios raíz, cree una.

  6. Si alguna colección de sitios está bloqueada contra escritura, inicie sesión en el servidor de SharePoint con una cuenta que tenga privilegios de administrador y ejecute el script PrepareWriteLockedSites.ps1 .

  7. Para obtener métricas de origen de datos para informar la configuración de su conector, inicie sesión en el servidor de SharePoint con una cuenta que tenga privilegios de administración de la granja y ejecute diagnose_sp.ps1 .

    La salida informa el número de aplicaciones web, documentos y membresías de grupos de usuarios. Utilice esta información para calcular cuántas instancias de conector necesita, los requisitos de memoria y el número de documentos.

Paso 1. Instale el software del conector local de SharePoint de Google Cloud Search.

  1. Clone el repositorio del conector de GitHub.

    $ git clone https://github.com/google-cloudsearch/sharepoint-connector.git
    $ cd sharepoint-connector
  2. Consulte la versión deseada del conector:

    $ git checkout tags/latest_version

    Donde: latest_version = un valor como v1-0.0.5

  3. Construya el conector.

    $ mvn package

    Para omitir las pruebas cuando crea el conector, ejecute mvn package -DskipTests en lugar de mvn package .

  4. Copie el archivo zip del conector en su directorio de instalación local:

    $ cp target/google-cloudsearch-sharepoint-connector-latest_version.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-sharepoint-connector-latest_version.zip
    $ cd google-cloudsearch-sharepoint-connector-latest_version

Paso 2. Cree el archivo de configuración del conector local de SharePoint

  1. En el mismo directorio que la instalación del conector, cree un archivo. Google recomienda que asigne al archivo el nombre connector-config.properties para que no se requieran parámetros de línea de comandos adicionales para ejecutar el conector. Si planea ejecutar muchas instancias de conector, agregue detalles al nombre para distinguirlo.

  2. Agregue parámetros como pares clave/valor al contenido del archivo, como en el siguiente ejemplo:

    ### Sharepoint On-Prem Connector configuration ###
    
    # Required parameters for data source access
    api.sourceId=08ef8becd116faa4546b8ca2c84b2879
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint on-premises access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    
    # Optional parameters for schema mapping
    contentTemplate.sharepointItem.title=Title
    contentTemplate.sharepointItem.unmappedColumnsMode=APPEND
    

    Para obtener descripciones detalladas de cada parámetro, vaya a la referencia de parámetros de configuración .

  3. (Opcional) Configure parámetros de conector adicionales, según sea necesario. Para obtener más información, vaya a Parámetros de conector proporcionados por Google .

Paso 3. Para HTTPS, agregue SharePoint como host de confianza

Si SharePoint está configurado para usar HTTPS, obtenga un certificado de SharePoint para agregarlo como host de confianza para el conector.

  1. En la computadora que ejecutará el conector, abra un navegador y vaya a SharePoint.

  2. En la página de advertencia que se abre, haga clic en Entiendo los riesgos y agrego una excepción . La página muestra un mensaje como "Esta conexión no es de confianza" porque el certificado está autofirmado y no está firmado por una autoridad de certificación de confianza.

  3. Una vez que el botón Ver esté disponible, haga clic en él.

  4. Vaya a la pestaña Detalles y haga clic en Exportar .

  5. Guarde el certificado en el directorio del conector con el nombre sharepoint.crt .

  6. Haga clic en Cerrar y luego en Cancelar para cerrar las ventanas.

  7. Abra un símbolo del sistema e ingrese el siguiente comando:

    $ keytool -importcert -keystore cacerts.jks -storepass changeit -file sharepoint.crt -alias sharepoint

    Cuando se le pregunte "¿Confiar en este certificado?", responda .

Paso 4. Configurar el registro

  1. En el directorio que contiene el binario del conector, cree una carpeta denominada logs .

  2. En el mismo directorio (no logs ), cree un archivo codificado en Latin1 llamado logging.properties .

  3. Agregue el siguiente texto a logging.properties :

    handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
    # Default log level
    .level = INFO
    # uncomment line below to increase logging level for SharePoint APIsa
    #com.google.enterprise.cloudsearch.sharepoint.level=FINE
    
    # uncomment line below to increase logging level to enable API trace
    #com.google.api.client.http.level = FINE
    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.FileHandler.pattern=logs/connector-sharepoint.%g.log
    java.util.logging.FileHandler.limit=10485760
    java.util.logging.FileHandler.count=10
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    

Paso 5. Configurar el conector de identidad local de SharePoint

Este paso es necesario para aplicar las ACL basadas en identidad de SharePoint On-Prem a los resultados de búsqueda. Si configura el conector con ACL públicas, puede omitir este paso.

  1. En el mismo directorio que la instalación del conector de SharePoint Online, cree un archivo y asígnele el nombre sharepoint-onprem-identity-connector.config .

  2. Agregue parámetros como pares clave/valor al contenido del archivo, como en el siguiente ejemplo:

    ### SharePoint On-prem identity connector configuration ###
    
    # Required parameters for data source access
    api.customerId=C05d3djk8
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    

    Los valores son casi los mismos que para el conector local de SharePoint, excepto que en lugar de api.sourceId , el parámetro es api.customerId . El valor de api.customerId es el ID de cliente que obtuvo de su administrador de Google Workspace.

Paso 6. Inicie el conector local de SharePoint

En los siguientes pasos, asigna las entidades principales tanto en Active Directory local como en la colección de sitios de SharePoint a identidades en el servicio Google Cloud Identity. Esta sincronización se realiza con Google Cloud Directory Sync (GCDS) y el conector de identidad local de SharePoint.

Después de que GCDS sincronice usuarios y grupos, para sincronizar los grupos de colecciones de sitios de SharePoint, ejecute el conector de identidad local de SharePoint. Por último, ejecute el conector SharePoing On-Prem para indexar y entregar resultados a sus usuarios de Cloud Search.

  1. Si aún no lo ha hecho, configure y ejecute GCDS . Asegúrese de habilitar los grupos asignados de identidad .

  2. Ejecute el conector de identidad local de SharePoint:

    $ java -Djava.util.logging.config.file=logging.properties -cp "google-cloudsearch-sharepoint-connector-version.jar" com.google.enterprise.cloudsearch.sharepoint.SharePointIdentityConnector -Dconfig=sharepoint-onprem-identity-connector.config
  3. Ejecute el conector local de SharePoint. Use la sintaxis del comando para la seguridad de su sitio de SharePoint:

    • HTTP (no se requiere host de confianza):

      $ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar
    • HTTPS (agregar SharePoint como host de confianza):

      $ java -Djavax.net.ssl.trustStore=cacerts.jks -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStorePassword=changeit -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar

Referencia de parámetros de configuración

Acceso a la fuente de datos

Entorno Parámetro
ID de la fuente de datos api.sourceId= 1234567890abcdef

Requerido. El ID de fuente de datos de Google Cloud Search configurado por el administrador de Google Workspace.

Ruta al archivo de clave privada de la cuenta de servicio api.serviceAccountPrivateKeyFile= PrivateKey.json

Requerido. La ruta al archivo de claves de la cuenta de servicio de Google Cloud Search.

Acceso local de SharePoint

Entorno Parámetro
URL del servidor de SharePoint sharepoint.server= http://yoursharepoint.example.com/

Requerido. La URL del servidor de SharePoint como un nombre de host completo, como http://yoursharepoint.example.com/. Si el nombre de host no está totalmente calificado, debe configurar la anulación de DNS en el host del conector.

Nombre de usuario de SharePoint sharepoint.username= YOURDOMAIN\\ConnectorUser

Requerido cuando ejecuta el conector en Linux o en una máquina con Windows que no forma parte del dominio AD de SharePoint Server.

Contraseña de SharePoint sharepoint.password= user_password

Requerido cuando ejecuta el conector en Linux o en una máquina con Windows que no forma parte del dominio AD de SharePoint Server.

Use la autenticación en vivo para conectarse a SharePoint sharepoint.username= AdaptorUser Live Authentication Id

sharepoint.password uS3R_passWoRD

sharepoint.formsAuthenticationMode=LIVE

Use la autenticación ADFS para conectarse a SharePoint sharepoint.username= AdaptorUser@yourdomain.com

sharepoint.password= uS3R_passWoRD

sharepoint.sts.endpoint= https://adfs.example.com/adfs/services/trust/2005/usernamemixed

sharepoint.sts.realm= urn:myserver:sharepoint o https://yoursharepoint.example.com/_trust

sharepoint.formsAuthenticationMode=ADFS

Indexación de colecciones de sitios

Entorno Parámetro
Tipo de índice sharepoint.siteCollectionOnly= boolean

Opcional, excepto para implementaciones de SharePoint de múltiples inquilinos ( más información ). Establézcalo en verdadero para que el índice del conector sea sharepoint.server como una colección de sitios en lugar de un servidor virtual. El valor predeterminado es nulo (detectado automáticamente).

Asignación de identidad de SharePoint

Entorno Parámetro
ID de fuente de identidad api.identitySourceId= 1234567890abcdef

Requerido. ID de fuente de identidad para sincronizar grupos locales de SharePoint. El ID de fuente de Google Cloud Search configurado por el administrador de Google Workspace, como se describe en Agregar una fuente de datos para buscar .

Fuentes de identidad de referencia api.referenceIdentitySources= CONTOSO,contoso

Una lista delimitada por comas de fuentes de identidad de referencia para los principales de Active Directory. El valor coincide con el nombre NETBIOS de Active Directory de los principales de Active Directory de referencia.

ID de fuente de identidad de referencia api.referenceIdentitySource. DOMAIN .id= identity-source-id

Requerido. El Id. de origen de identidad para sincronizar entidades principales de Active Directory.

Búsqueda de directorio activo

Entorno Parámetro
Servidor de directorio activo adLookup.host= host

Requerido. Nombre de host de Active Directory, como dc.contoso.com, o dirección IP.

Puerto de búsqueda de Active Directory adLookup.port= port

Opcional. El valor predeterminado es 389. Utilice 686 para SSL.

Método de búsqueda de Active Directory adLookup.method= value

Opcional. El valor predeterminado es `estándar`. Para conexiones HTTPS, configure en `ssl`.

Usuario de búsqueda de Active Directory adLookup.username= CONTOSO\user1

Requerido. Usuario autorizado para realizar búsquedas en el directorio activo.

Contraseña de búsqueda de Active Directory adLookup.password= password123

Requerido. Contraseña para el usuario especificado por adLookup.user .

Generación de contenido HTML

Entorno Parámetro
Campo de título de plantilla HTML contentTemplate.sharePointItem.title= Title

El campo de SharePoint que se usará como título de la plantilla HTML para el HTML generado.

Campos de alta calidad de búsqueda de contenido HTML contentTemplate.sharePointItem.quality.high= highField1 [, highField2 ,...]

Una lista de campos separados por comas para incluir en el HTML generado como campos de alta calidad. Cuando los términos de la consulta de búsqueda coinciden con estos campos, los resultados se clasifican más alto.

Campos de calidad de búsqueda del medio de contenido HTML contentTemplate.sharePointItem.quality.medium= mediumField1 [, mediumField2 ,...]

Una lista de campos separados por comas para incluir en el HTML generado como campos de calidad media.

Campos de baja calidad de búsqueda de contenido HTML contentTemplate.sharePointItem.quality.low= lowField1 [, lowField2 ,...]

Una lista de campos separados por comas para incluir en el HTML generado como campos de baja calidad.

Columnas sin asignar de contenido HTML contentTemplate.sharepointItem.unmappedColumnsMode= APPEND

Cómo maneja el conector las columnas no asignadas. El valor es AÑADIR (predeterminado) o IGNORAR.

  • ADJUNTAR: el conector genera contenido HTML con todos los campos, incluidos los campos que no están configurados con un nivel de calidad (alto, medio o bajo).
  • IGNORE: el conector genera contenido HTML solo con campos asignados.