Déployer le connecteur Microsoft SharePoint On-Prem

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

Remarques importantes

Paramètres Honored SharePoint

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 brouillons de documents, les autorisations du compte utilisateur (utilisé par le connecteur pour accéder à SharePoint Online) déterminent les brouillons de documents indexés et renvoyés. Si le compte ne dispose que d'une 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 devez utiliser Google Cloud Directory Sync, qui permet d'activer 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:

  • Mappez le SID d'un groupe de domaines avec le sAMAccountName correspondant.
  • Mappez le sAMAccountName d'un utilisateur à l'adresse e-mail des membres de groupes locaux SharePoint.

Optimisation du référencement

Vous pouvez améliorer l'expérience utilisateur 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 quels champs ont un impact plus ou moins important sur les correspondances.

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

  • Pour mapper les noms des types de contenu SharePoint avec les définitions d'objets correspondantes, le connecteur normalise ces noms en excluant les caractères non compatibles. Pour les définitions d'objet, l'API Cloud Search n'accepte que 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 à "Articled'Actualités" (sans espace).

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

  • Pour mapper les noms de propriétés SharePoint aux définitions de propriété, le connecteur normalise les noms de propriété 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 à l'exception des caractères 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 mutualisées

Si votre SharePoint est un déploiement mutualisé, où 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 mutualisés, vous obtenez des autorisations uniquement pour votre collection de sites et vous ne pouvez pas obtenir les autorisations Lecture totale, comme l'exige le connecteur SharePoint On-Prem.

Pour activer le mode Collection de sites:

  • Accordez au compte utilisateur du connecteur l'autorisation d'administrateur de collection de sites.
  • Dans le fichier de configuration du connecteur, définissez sharepoint.server sur l'URL de la collection de sites, par exemple http://sharepoint.example.com/sites/sitecollection. L'URL ne doit pas nécessairement respecter exactement la même casse que dans SharePoint.
  • Dans le fichier de configuration du connecteur, définissez sharepoint.siteCollectionOnly sur true.

Si vous devez indexer plusieurs collections de sites dans un environnement mutualisé, vous devez configurer une instance de connecteur pour chacune des collections de sites.

Limites connues concernant les connecteurs

  • Le temps nécessaire au connecteur pour détecter les modifications apportées aux éléments des bases de données augmente en fonction du nombre de bases de données qu'il surveille.
  • La consommation de mémoire augmente avec le nombre d'utilisateurs et de groupes uniques que vous utilisez dans les LCA pour 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. 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)
Logiciels
  • 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

Conditions préalables

  1. Créez une clé privée Google Workspace contenant 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 (les résultats ne sont pas publics), votre administrateur Google Workspace doit créer deux sources d'identité et vous fournir leurs ID:

    • Une source d'identité pour la synchronisation des utilisateurs et des groupes Active Directory.
    • 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.

    Pour savoir comment obtenir ces valeurs, consultez l'article Associer des identités d'utilisateur dans Cloud Search.

  4. Dans les règles relatives aux utilisateurs, configurez un compte utilisateur pour le connecteur disposant des autorisations Lecture totale sur l'application Web SharePoint.

  5. Si l'application Web SharePoint 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 et exécutez le script PrepareWriteLockedSites.ps1.

  7. Pour obtenir des métriques de source de données permettant de configurer votre connecteur, connectez-vous au serveur SharePoint à l'aide d'un compte disposant des droits d'administration de batterie de serveurs, puis exécutez 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 = une valeur comme v1-0.0.5

  3. Créez 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 afin qu'aucun paramètre de ligne de commande supplémentaire ne soit requis pour exécuter le connecteur. 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 la documentation de référence sur les paramètres de configuration.

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

Étape 3. Pour HTTPS, ajoutez SharePoint en tant qu'hôte approuvé

Si SharePoint est configuré pour utiliser HTTPS, obtenez un certificat SharePoint afin de 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 I Understanding the Risks (J'ai compris les risques) et Add Exception (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. Lorsque le bouton Afficher est disponible, cliquez dessus.

  4. Accédez à l'onglet Détails et 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

    Lorsque la question "Faire confiance à ce certificat ?" s'affiche, 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 le 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 répertoire d'installation du connecteur SharePoint Online, créez un fichier et nommez-le 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 mapper les comptes principaux d'Active Directory sur site et de la collection de sites SharePoint aux identités du service Cloud Identity. Cette synchronisation est effectuée 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 SharePoing sur site 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. Veillez à 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

Documentation de référence sur les paramètres de configuration

Accès à la source de données

Paramètre Paramètres
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 de clé privée du compte de service api.serviceAccountPrivateKeyFile=PrivateKey.json

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

Accès sur site à SharePoint

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

Obligatoire. URL du serveur SharePoint en tant que nom d'hôte complet, tel que 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 qui ne fait pas partie du domaine SharePoint Server AD.

Mot de passe SharePoint sharepoint.password=user_password

Obligatoire lorsque vous exécutez le connecteur sous Linux ou sur une machine Windows qui ne fait pas partie du domaine SharePoint Server AD.

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 se connecter à 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ètres
Type d'index sharepoint.siteCollectionOnly=boolean

Facultatif, sauf pour les déploiements SharePoint mutualisés (en savoir plus). Définissez ce paramètre sur "true" pour que le connecteur indexe sharepoint.server en tant que collection de sites plutôt qu'en tant que serveur virtuel. La valeur par défaut est "null" (détecté automatiquement).

Mappage d'identité SharePoint

Paramètre Paramètres
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 de sources d'identité de référence séparées par des virgules pour les comptes principaux Active Directory. La valeur correspond au nom NETBIOS Active Directory des comptes principaux Active Directory de référence.

ID des sources 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ètres
Hôte Active Directory adLookup.host=host

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

Port de recherche Active Directory adLookup.port=port

Facultatif. La valeur par défaut est 389. Utilisez 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ètres
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 contenu HTML offrant une qualité de recherche é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 haute qualité. 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 de 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 contenu HTML de faible qualité de recherche 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 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.