Implementa el conector de Microsoft SharePoint On-Prem

Puedes configurar Google Cloud Search para que muestre resultados del contenido local de SharePoint de tu organización, además del contenido de Google Workspace. Usa el conector de SharePoint On-Prem de Google Cloud Search y configúralo para acceder a una fuente de datos específica de SharePoint.

Consideraciones importantes

Configuración de SharePoint reconocida

El conector de SharePoint On-Prem de Cloud Search siempre respeta la configuración de Visibilidad de búsqueda en SharePoint, que no se puede anular. En el caso de los documentos en borrador, los permisos de la cuenta de usuario (que el conector usa para acceder a SharePoint Online) controlan qué documentos en borrador se indexan y se muestran. Si la cuenta solo tiene permisos de “lectura completa”, el conector respeta la configuración de “visibilidad de elementos en borrador” en SharePoint.

También puedes configurar el conector para limitar los resultados según el acceso a la cuenta de usuario. Puedes usar los principales de Google y los principales externos para definir las LCA. Si deseas aplicar el recorte de seguridad para el contenido de SharePoint, sincroniza las siguientes identidades externas con el directorio de Google:

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

Para sincronizar los grupos y usuarios de AD, debes usar Google Cloud Directory Sync, lo que habilita los grupos de identidad asignados. Para sincronizar los grupos locales de SharePoint, usa el conector de identidad de SharePoint.

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

  • Asigna el SID de un grupo de dominios al sAMAccountName correspondiente.
  • Asigna un usuario sAMAccountName a la dirección de correo electrónico para las membresías del grupo local de SharePoint.

Optimización de la búsqueda

Puedes mejorar la experiencia de los usuarios configurando el conector para que muestre resultados de la búsqueda más relevantes.

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

Para configurar un esquema, sigue las instrucciones en Crea y registra un esquema. Cuando configuras un esquema, sucede lo siguiente:

  • 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 compatibles. Para las definiciones de objetos, la API de Cloud Search solo admite A-Z, a-z y 0-9 como caracteres válidos. Por ejemplo, el tipo de contenido “Avisos” se asigna a la definición del 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 de resguardo (itemMetadata.objectType). Obtén más información sobre los parámetros de configuración de metadatos.

  • Para asignar nombres de propiedades de SharePoint a las definiciones de propiedades, el conector normaliza los nombres de propiedades decodificando los caracteres codificados en hexadecimales y quitando los prefijos "ows_". Luego, excluye los caracteres no compatibles (todos los caracteres excepto A-Z, a-z y 0-9 como caracteres válidos).

Administración de mensajes de Microsoft Outlook

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

Configuraciones multiusuario

Si tu SharePoint es una implementación multiusuario, en la que los sitios de varios clientes se alojan en la misma aplicación web, debes configurar el modo de colección de sitios en el archivo de configuración. En implementaciones multiusuario, obtienes permisos solo para tu colección de sitios y no puedes obtener permisos de lectura completa, como lo requiere el conector de SharePoint On-Prem.

Para habilitar el modo de colección de sitios, haz lo siguiente:

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

Si tienes varias colecciones de sitios para indexar en un entorno multiusuario, debes configurar una instancia del 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 usas en las LCA para cada colección de sitios.
  • Puedes configurar el conector con identidades de un solo dominio de Active Directory.
  • Algunas 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 borró contenido del repositorio de código fuente.

Requisitos del sistema

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

Implementa el conector

Requisitos previos

  1. Crea una clave privada de Google Workspace que contenga el ID de tu cuenta de servicio. Si deseas aprender a obtener una clave privada, consulta Cómo configurar el acceso a la API de Google Cloud Search.

  2. Tu administrador de Google Workspace debe agregar una fuente de datos para realizar la búsqueda. Registra el ID de la fuente de datos.

  3. Si el conector muestra resultados basados en LCA (los resultados no son públicos), tu administrador de Google Workspace debe crear dos fuentes de identidad y proporcionarte sus IDs:

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

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

    Descubre cómo obtener estos valores en Asigna identidades de usuario en Cloud Search.

  4. Configura una cuenta de usuario para el conector que tiene permisos de lectura completa para la aplicación web de SharePoint en la política de usuario.

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

  6. Si alguna colección de sitios está bloqueada para la escritura, accede al servidor de SharePoint con una cuenta que tenga privilegios de administrador y ejecuta la secuencia de comandos PrepareWriteLockedSites.ps1.

  7. Para obtener métricas de la fuente de datos que informen la configuración de tu conector, accede al servidor de SharePoint con una cuenta que tenga privilegios de administrador de granja y ejecuta diagnose_sp.ps1.

    El resultado informa la cantidad de aplicaciones web, documentos y membresías de grupos de usuarios. Usa esta información para calcular cuántas instancias del conector necesitas, los requisitos de memoria y la cantidad de documentos.

Paso 1. Instala el software del conector de SharePoint On-Prem de Google Cloud Search

  1. Clona el repositorio del conector desde GitHub.

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

    $ git checkout tags/latest_version

    Donde latest_version = un valor como v1-0.0.5

  3. Compila el conector.

    $ mvn package

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

  4. Copia el archivo ZIP del conector en el 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: Crea el archivo de configuración del conector de SharePoint On-Prem

  1. Crea un archivo en el mismo directorio que la instalación del conector. Google recomienda que asignes el nombre connector-config.properties al archivo para que no se necesiten parámetros de línea de comandos adicionales para ejecutar el conector. Si planeas ejecutar muchas instancias del conector, agrega detalles al nombre para distinguirlo.

  2. Agrega 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, consulta la referencia de los parámetros de configuración.

  3. (Opcional) Configura los parámetros adicionales del conector según sea necesario. Para obtener más información, consulta los parámetros de conectores proporcionados por Google.

Paso 3: Para HTTPS, agrega SharePoint como un host de confianza

Si SharePoint está configurado para usar HTTPS, obtén un certificado de SharePoint para agregarlo como un host confiable para el conector.

  1. En la computadora en la que se ejecutará el conector, abre un navegador y ve a SharePoint.

  2. En la página de advertencia que se abre, haz clic en Comprendo los riesgos y Agregar 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 certificadora de confianza.

  3. Cuando esté disponible el botón Ver, haz clic en él.

  4. Ve a la pestaña Detalles y haz clic en Exportar.

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

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

  7. Abre un símbolo del sistema y, luego, ingresa el siguiente comando:

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

    Cuando se te pregunte “¿Quieres confiar en este certificado?”, responde yes.

Paso 4: Configura el registro

  1. En el directorio que contiene el objeto binario del conector, crea una carpeta llamada logs.

  2. En el mismo directorio (no en logs), crea un archivo con codificación latina 1 llamado logging.properties.

  3. Agrega 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: Configura el conector de identidad de SharePoint On-Prem

Este paso es obligatorio para aplicar LCA basadas en la identidad de SharePoint On-Prem a los resultados de la búsqueda. Si configuraste el conector con LCA públicas, puedes omitir este paso.

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

  2. Agrega 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 de SharePoint On-Prem, excepto que, en lugar de api.sourceId, el parámetro es api.customerId. El valor de api.customerId es el ID de cliente que le proporcionó su administrador de Google Workspace.

Paso 6. Inicia el conector de SharePoint On-Prem

En los siguientes pasos, asignarás las principales de la colección de sitios de SharePoint y Active Directory local a las identidades en el servicio de Cloud Identity. Esta sincronización se realiza con Google Cloud Directory Sync (GCDS) y el conector de identidad de SharePoint On-Prem.

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

  1. Si aún no lo has hecho, configura y ejecuta GCDS. Asegúrate de habilitar los grupos de identidad asignados.

  2. Ejecuta el conector de identidad de SharePoint On-Prem:

    $ 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. Ejecuta el conector de SharePoint On-Prem. Usa la sintaxis del comando para la seguridad del sitio de SharePoint:

    • HTTP (no se requiere un host de confianza):

      $ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar
    • HTTPS (agrega 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 los parámetros de configuración

Acceso a la fuente de datos

Parámetro de configuración Parámetro
ID de la fuente de datos api.sourceId=1234567890abcdef

Obligatorio. El ID de la fuente de datos de Google Cloud Search que configura el administrador de Google Workspace.

Ruta de acceso al archivo de claves privadas de la cuenta de servicio api.serviceAccountPrivateKeyFile=PrivateKey.json

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

Acceso local de SharePoint

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

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

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

Es obligatorio cuando ejecutas el conector en Linux o en una máquina de Windows que no forma parte del dominio AD de SharePoint Server.

Contraseña de SharePoint sharepoint.password=user_password

Es obligatorio cuando ejecutas el conector en Linux o en una máquina de Windows que no forma parte del dominio AD de SharePoint Server.

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

sharepoint.password uS3R_passWoRD

sharepoint.formsAuthenticationMode=LIVE

Usa la autenticación de ADFS para conectarte 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

Parámetro de configuración Parámetro
Tipo de índice sharepoint.siteCollectionOnly=boolean

Opcional, excepto para las implementaciones multiusuario de SharePoint (más información). Se establece como verdadero para que el índice del conector sharepoint.server sea 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

Parámetro de configuración Parámetro
ID de la fuente de identidad api.identitySourceId=1234567890abcdef

Obligatorio. ID de la fuente de identidad para sincronizar los grupos locales de SharePoint.El ID de la fuente de Google Cloud Search que configura el administrador de Google Workspace, como se describe en Agrega una fuente de datos en la que se 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 de NETBIOS de Active Directory de los principales de Active Directory de referencia.

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

Obligatorio. El ID de fuente de identidad para sincronizar los principales de Active Directory.

Búsqueda de Active Directory

Parámetro de configuración Parámetro
Host de Active Directory adLookup.host=host

Obligatorio. 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. Usar 686 para SSL.

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

Opcional. El valor predeterminado es "standard". Para las conexiones HTTPS, se establece como "ssl".

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

Obligatorio. Usuario autorizado para realizar búsquedas de Active Directory

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

Obligatorio. Contraseña para usuario especificada por adLookup.user.

Generación de contenido HTML

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

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

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

Una lista de campos separados por comas que se incluirán en el HTML generado como campos de alta calidad. Cuando los términos de búsqueda coinciden con estos campos, los resultados se clasifican en una posición superior.

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

Una lista de campos separados por comas que se incluirán en el HTML generado como campos de calidad media.

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

Una lista de campos separados por comas que se incluirán en el HTML generado como campos de baja calidad.

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

Cómo controla el conector las columnas sin asignar. El valor es APPEND (predeterminado) o IGNORE.

  • ADJUNTO: El conector genera contenido HTML con todos los campos, incluidos aquellos que no se establecen con un nivel de calidad (alto, medio o bajo).
  • IGNORE: el conector genera contenido HTML con solo campos asignados.