Déployer le connecteur Microsoft SharePoint On-Prem

Vous pouvez configurer Google Cloud Search afin qu'il renvoie les résultats du contenu Sharepoint On-Prem de votre organisation, en plus de votre contenu Google Workspace. Vous utilisez le connecteur Google Cloud Search SharePoint On-Prem et configurez-le pour accéder à une source de données SharePoint spécifique.

Remarques importantes

Paramètres SharePoint respectés

Le connecteur Cloud Search SharePoint On-Prem respecte toujours le paramètre Visibilité de recherche défini dans SharePoint, qui ne peut pas être ignoré. Pour les documents provisoires, les autorisations du compte utilisateur (permettant au connecteur d'accéder à SharePoint Online) contrôlent quels documents provisoires sont indexés et renvoyés. Si le compte dispose uniquement de l'autorisation "Lecture totale", le connecteur respecte les paramètres de visibilité des éléments de brouillon définis dans SharePoint.

Vous pouvez également configurer le connecteur pour limiter les résultats en fonction de l'accès au compte utilisateur. Vous pouvez utiliser des comptes principaux Google et externes pour définir des LCA. Pour appliquer un filtrage de sécurité au contenu SharePoint, synchronisez les identités externes suivantes avec l'annuaire Google:

  • Utilisateurs Active Directory
  • Groupes Active Directory
  • Groupes locaux SharePoint (avec des utilisateurs et des groupes Active Directory en tant que membres)

Pour synchroniser les utilisateurs et les groupes AD, vous pouvez utiliser Google Cloud Directory Sync, qui active les groupes avec mappage d'identité. Pour synchroniser des groupes locaux SharePoint, utilisez le connecteur d'identité SharePoint.

Le connecteur doit également effectuer une recherche avec AD pour récupérer des informations supplémentaires en vue de synchroniser les comptes principaux. Par exemple, la recherche avec AD permet au connecteur d'effectuer les opérations suivantes:

  • Associer l'identificateur de sécurité (SID) d'un groupe de domaines au sAMAccountName correspondant.
  • Associer le nom sAMAccountName d'un utilisateur à l'adresse e-mail des membres du groupe local SharePoint.

Optimisation du référencement

Vous pouvez améliorer l'expérience de vos utilisateurs en configurant le connecteur afin qu'il renvoie des résultats de recherche plus pertinents.

Pour utiliser l'API, définissez des valeurs pour les paramètres de génération HTML dans le fichier de configuration du connecteur SharePoint Online. Ces paramètres vous permettent de définir les champs qui ont un impact plus ou moins important sur les correspondances.

Si vous souhaitez configurer un schéma, suivez les instructions de la section Créer et enregistrer un schéma. Lorsque vous configurez un schéma:

  • Pour associer les noms des types de contenu SharePoint aux définitions d'objets correspondantes, le connecteur normalise ces noms en excluant les caractères non acceptés. Pour les définitions d'objets, l'API Cloud Search accepte uniquement les caractères A à Z, a à z et 0 à 9. Par exemple, le type de contenu "Annonces" correspond à la définition d'objet "Annonces". Le type de contenu "Article d'actualités" correspond à "ArticleActualités" (sans espace).

  • Lorsque le connecteur ne parvient pas à faire correspondre deux définitions d'objets, il utilise le type d'objet de remplacement (itemMetadata.objectType). En savoir plus sur les paramètres de configuration des métadonnées

  • Pour associer les noms des propriétés SharePoint aux définitions de propriétés, le connecteur normalise ces noms en décodant les caractères encodés en hexadécimal et en supprimant les préfixes "ows_", puis en excluant les caractères non compatibles (tous les caractères autres que A à Z, a à z et 0 à 9).

Gestion des messages Microsoft Outlook

Lorsque le connecteur rencontre des fichiers .msg Microsoft Outlook lors de l'indexation du contenu, il remplace le type de contenu des fichiers et les indexe en tant que application/vnd.ms-outlook..

Configurations multitenancy

Si votre SharePoint est un déploiement mutualisé, dans lequel plusieurs sites clients sont hébergés sur la même application Web, vous devez configurer le mode Collection de sites dans le fichier de configuration. Dans les déploiements multi-locataires, vous n'obtenez des autorisations que pour votre collection de sites et vous ne pouvez pas obtenir d'autorisations Lecture totale, comme l'exige le connecteur SharePoint On-Prem.

Pour activer le mode Collection de sites:

  • Attribuez au compte utilisateur du connecteur l'autorisation d'administrateur sur la collection de sites.
  • Dans le fichier de configuration du connecteur, définissez sharepoint.server sur l'URL de la collection de sites, telle que http://sharepoint.example.com/sites/sitecollection. L'URL ne doit pas nécessairement être identique à celle utilisée dans SharePoint.
  • Dans le fichier de configuration du connecteur, définissez sharepoint.siteCollectionOnly sur true.

Pour indexer plusieurs collections de sites dans un environnement multi-tenant, vous devez configurer une instance de connecteur pour chacune des collections de sites.

Limitations connues du connecteur

  • Le temps nécessaire au connecteur pour détecter les modifications apportées aux éléments des bases de données augmente avec le nombre de bases de données surveillées par ledit connecteur.
  • La consommation de mémoire augmente avec le nombre d'utilisateurs et de groupes uniques utilisés dans les LCA de chaque collection de sites.
  • Vous ne pouvez configurer le connecteur qu'avec des identités provenant d'un seul domaine Active Directory.
  • Certains comptes principaux Active Directory et Windows courants, tels que Everyone, BUILTIN\Users et All Authenticated Users, ne sont pas compatibles.
  • Les notifications de suppression ne sont pas instantanées et il peut s'écouler plus de quatre heures avant qu'un connecteur reconnaisse qu'un utilisateur a supprimé du contenu du dépôt source.

Configuration requise

Configuration requise
Système d'exploitation
  • Windows Server 2016
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bits)
Logiciel
  • Serveur SharePoint
    • SharePoint Server 2016
    • SharePoint Server 2013
  • Java JRE 1.8 installé sur l'ordinateur qui exécute le connecteur Google Cloud Search SharePoint On-Prem
Authentification
  • NTLM
  • Kerberos
  • HTTP Basic
  • ADFS

Déployer le connecteur

Prérequis

  1. Créez une clé privée Google Workspace qui contient l'ID de votre compte de service. Pour savoir comment obtenir une clé privée, consultez Configurer l'accès à l'API Google Cloud Search.

  2. Votre administrateur Google Workspace doit ajouter une source de données pour la recherche. Notez l'ID de la source de données.

  3. Si le connecteur renvoie des résultats basés sur des LCA (résultats non publics), votre administrateur Google Workspace doit créer deux sources d'identité et vous fournir leur ID:

    • une source d'identité pour la synchronisation des utilisateurs et des groupes Active Directory ;
    • une source d'identité pour les groupes locaux SharePoint.

    L'administrateur doit également obtenir le numéro client Google Workspace de votre organisation et vous le communiquer.

    Découvrez comment obtenir ces valeurs dans la section Associer des identités d'utilisateurs dans Cloud Search.

  4. Dans la règle relative aux utilisateurs, configurez un compte utilisateur pour le connecteur disposant des autorisations Lecture complète dans l'application Web SharePoint.

  5. Si cette application ne possède pas de collection de sites racine, créez-en une.

  6. Si des collections de sites sont verrouillées en écriture, connectez-vous au serveur SharePoint à l'aide d'un compte disposant de droits d'administrateur, puis exécutez le script PrepareWriteLockedSites.ps1.

  7. Pour collecter des métriques de source de données utiles à la configuration du connecteur, connectez-vous au serveur SharePoint à l'aide d'un compte disposant de droits d'administration de batterie de serveurs, puis exécutez la commande diagnose_sp.ps1.

    Le résultat indique le nombre d'applications Web, de documents et d'appartenances à des groupes d'utilisateurs. Utilisez ces informations pour estimer le nombre d'instances de connecteur dont vous avez besoin, la mémoire requise et le nombre de documents.

Étape 1 : Installer le logiciel du connecteur Google Cloud Search SharePoint On-Prem

  1. Clonez le dépôt du connecteur depuis GitHub.

    $ git clone https://github.com/google-cloudsearch/sharepoint-connector.git
    $ cd sharepoint-connector
  2. Vérifiez la version souhaitée du connecteur:

    $ git checkout tags/latest_version

    latest_version correspond à une valeur telle que v1-0.0.5.

  3. Compilez le connecteur.

    $ mvn package

    Pour ignorer les tests lorsque vous créez le connecteur, exécutez mvn package -DskipTests au lieu de mvn package.

  4. Copiez le fichier ZIP du connecteur dans votre répertoire d'installation 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

Étape 2 : Créer le fichier de configuration du connecteur SharePoint On-Prem

  1. Créez un fichier dans le même répertoire que les fichiers d'installation du connecteur. Google vous recommande de nommer ce fichier connector-config.properties pour pouvoir exécuter le connecteur via la ligne de commande sans aucun paramètre supplémentaire. Si vous prévoyez d'exécuter plusieurs instances de connecteur, ajoutez des détails au nom pour les distinguer.

  2. Ajoutez des paramètres sous forme de paires clé/valeur aux contenus des fichiers, comme dans l'exemple suivant:

    ### 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
    

    Pour obtenir une description détaillée de chaque paramètre, consultez le guide de référence des paramètres de configuration.

  3. (Facultatif) Configurez d'autres paramètres de connecteur, si nécessaire. Pour en savoir plus, consultez l'article Paramètres de connecteur fournis par Google.

Étape 3 : Ajouter SharePoint en tant qu'hôte approuvé pour HTTPS

Si SharePoint est configuré pour utiliser HTTPS, obtenez un certificat SharePoint pour l'ajouter en tant qu'hôte approuvé pour le connecteur.

  1. Sur l'ordinateur qui exécutera le connecteur, ouvrez un navigateur et accédez à SharePoint.

  2. Sur la page d'avertissement qui s'affiche, cliquez sur Je comprends les risques, puis sur Ajouter une exception. Un message du type "Cette connexion n'est pas approuvée" s'affiche sur la page, car le certificat est autosigné et n'est pas signé par une autorité de certification approuvée.

  3. Cliquez sur le bouton Afficher dès qu'il est disponible.

  4. Accédez à l'onglet Détails, puis cliquez sur Exporter.

  5. Enregistrez le certificat dans le répertoire du connecteur sous le nom sharepoint.crt.

  6. Cliquez sur Fermer, puis sur Annuler pour fermer les fenêtres.

  7. Ouvrez une invite de commande et saisissez la commande suivante:

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

    À l'invite "Faire confiance à ce certificat ?", répondez oui.

Étape 4 : Configurer la journalisation

  1. Dans le répertoire contenant le binaire du connecteur, créez un dossier nommé logs.

  2. Dans ce même répertoire (et non dans logs), créez un fichier encodé en Latin1 nommé logging.properties.

  3. Ajoutez le texte suivant à 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
    

Étape 5 : Configurer le connecteur d'identité SharePoint On-Prem

Cette étape est nécessaire pour appliquer aux résultats de recherche les LCA basées sur l'identité de SharePoint On-Prem. Si vous configurez le connecteur avec des LCA publiques, vous pouvez ignorer cette étape.

  1. Dans le même répertoire que celui de l'installation du connecteur SharePoint Online, créez un fichier nommé sharepoint-onprem-identity-connector.config.

  2. Ajoutez des paramètres sous forme de paires clé/valeur aux contenus des fichiers, comme dans l'exemple suivant:

    ### 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
    

    Les valeurs sont presque les mêmes que pour le connecteur SharePoint On-Prem, sauf que le paramètre est api.customerId au lieu de api.sourceId. La valeur de api.customerId correspond au numéro client que vous avez obtenu auprès de votre administrateur Google Workspace.

Étape 6 : Lancer le connecteur SharePoint On-Prem

Dans les étapes suivantes, vous allez associer les comptes principaux figurant dans Active Directory sur site et dans la collection de sites SharePoint aux identités du service Cloud Identity. Cette synchronisation s'effectue avec Google Cloud Directory Sync (GCDS) et le connecteur d'identité SharePoint On-Prem.

Une fois les utilisateurs et les groupes synchronisés par GCDS, exécutez le connecteur d'identité SharePoint On-Prem pour synchroniser les groupes de la collection de sites SharePoint. Enfin, exécutez le connecteur SharePoint On-Prem pour indexer et fournir les résultats à vos utilisateurs Cloud Search.

  1. Si vous ne l'avez pas déjà fait, configurez et exécutez GCDS. Assurez-vous d'activer les groupes de mappage d'identité.

  2. Exécutez le connecteur d'identité 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. Exécutez le connecteur SharePoint On-Prem. Utilisez la syntaxe de commande pour la sécurité de votre site SharePoint:

    • HTTP (aucun hôte approuvé requis):

      $ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar
    • HTTPS (ajoutez SharePoint en tant qu'hôte approuvé):

      $ 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

Guide de référence des paramètres de configuration

Accès à la source de données

Paramètre Paramètre
ID de la source de données api.sourceId=1234567890abcdef

Obligatoire. ID de la source de données Google Cloud Search configuré par l'administrateur Google Workspace.

Chemin d'accès au fichier contenant la clé privée du compte de service api.serviceAccountPrivateKeyFile=PrivateKey.json

Obligatoire. Chemin d'accès au fichier de clé du compte de service Google Cloud Search.

Accès sur site à SharePoint

Paramètre Paramètre
URL du serveur SharePoint sharepoint.server=http://yoursharepoint.example.com/

Obligatoire. URL du serveur SharePoint en tant que nom d'hôte complet, par exemple http://yoursharepoint.example.com/. Si le nom d'hôte n'est pas complet, vous devez définir le remplacement DNS sur l'hôte du connecteur.

Nom d'utilisateur SharePoint sharepoint.username=YOURDOMAIN\\ConnectorUser

Obligatoire lorsque vous exécutez le connecteur sous Linux ou sur une machine Windows n'appartenant pas au domaine Active Directory SharePoint Server.

Mot de passe SharePoint sharepoint.password=user_password

Obligatoire lorsque vous exécutez le connecteur sous Linux ou sur une machine Windows n'appartenant pas au domaine Active Directory SharePoint Server.

Utiliser Live Authentication pour la connexion à SharePoint sharepoint.username=AdaptorUser Live Authentication Id

sharepoint.password uS3R_passWoRD

sharepoint.formsAuthenticationMode=LIVE

Utiliser l'authentification ADFS pour la connexion à 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 ou https://yoursharepoint.example.com/_trust

sharepoint.formsAuthenticationMode=ADFS

Indexation de la collection de sites

Paramètre Paramètre
Type d'index sharepoint.siteCollectionOnly=boolean

Facultatif, sauf pour les déploiements SharePoint mutualisés (en savoir plus). Définissez la valeur sur "true" pour que le connecteur indexe sharepoint.server en tant que collection de sites et non en tant que serveur virtuel. La valeur par défaut est "null" (détectée automatiquement).

Mappage d'identité SharePoint

Paramètre Paramètre
ID de la source d'identité api.identitySourceId=1234567890abcdef

Obligatoire. ID de la source d'identité pour la synchronisation des groupes locaux SharePoint.ID de la source Google Cloud Search configuré par l'administrateur Google Workspace, comme décrit dans Ajouter une source de données pour la recherche.

Sources d'identité de référence api.referenceIdentitySources=CONTOSO,contoso

Liste des sources d'identité de référence séparées par une virgule pour les comptes principaux Active Directory. La valeur correspond au nom NETBIOS Active Directory des comptes principaux Active Directory de référence.

ID de source d'identité de référence api.referenceIdentitySource.DOMAIN.id=identity-source-id

Obligatoire. ID de la source d'identité pour la synchronisation des comptes principaux Active Directory.

Recherche Active Directory

Paramètre Paramètre
Hôte Active Directory adLookup.host=host

Obligatoire. Nom d'hôte Active Directory, par exemple dc.contoso.com, ou adresse IP.

Port de recherche Active Directory adLookup.port=port

Facultatif. La valeur par défaut est 389. Utilisez la valeur 686 pour SSL.

Méthode de recherche Active Directory adLookup.method=value

Facultatif. La valeur par défaut est "standard". Pour les connexions HTTPS, définissez la valeur sur "ssl".

Utilisateur de recherche Active Directory adLookup.username=CONTOSO\user1

Obligatoire. Utilisateur autorisé à effectuer des recherches Active Directory.

Mot de passe de recherche Active Directory adLookup.password=password123

Obligatoire. Mot de passe de l'utilisateur spécifié par adLookup.user.

Génération de contenu HTML

Paramètre Paramètre
Champ de titre du modèle HTML contentTemplate.sharePointItem.title=Title

Champ SharePoint à utiliser comme titre du modèle HTML pour le code HTML généré.

Champs de qualité de recherche de contenu HTML élevée contentTemplate.sharePointItem.quality.high=highField1[,highField2,...]

Liste de champs séparés par une virgule à inclure dans le code HTML généré en tant que champs de qualité élevée. Lorsque les termes de la requête de recherche correspondent à ces champs, les résultats sont mieux classés.

Champs de qualité de recherche moyenne du contenu HTML contentTemplate.sharePointItem.quality.medium=mediumField1[,mediumField2,...]

Liste de champs séparés par une virgule à inclure dans le code HTML généré en tant que champs de qualité moyenne.

Champs de qualité de recherche de contenu HTML faible contentTemplate.sharePointItem.quality.low=lowField1[,lowField2,...]

Liste de champs séparés par une virgule à inclure dans le code HTML généré en tant que champs de faible qualité.

Colonnes non mappées de contenu HTML contentTemplate.sharepointItem.unmappedColumnsMode=APPEND

Façon dont le connecteur gère les colonnes non mappées. La valeur de ce paramètre est APPEND (par défaut) ou IGNORE.

  • APPEND : le connecteur génère du contenu HTML avec tous les champs, y compris des champs dont le niveau de qualité n'est pas défini (élevé, moyen ou faible).
  • IGNORER : le connecteur génère du contenu HTML avec uniquement des champs mappés.