Doc produitsMenu

Plateforme Coveo 7.0 >
Aide à l'administrateur > Intégration Coveo > Intégration Microsoft SharePoint > Configuration d'une authentification unique Claims pour l'interface de recherche

Configuration d'une authentification unique Claims à l'interface de recherche pour SharePoint sur place

Une interface de recherche Coveo qui réside à l'extérieur de SharePoint doit connaître l'identité de l'utilisateur final de la recherche afin de ne retourner que des résultats de recherche renfermant des documents SharePoint auxquels l'utilisateur final a l'accès en lecture dans SharePoint.

Cette rubrique décrit la procédure pour configurer votre serveur SharePoint et votre Coveo .NET Front-End afin de fournir une solution d'authentification unique et authentifier automatiquement les utilisateurs finaux de Claims dans une interface de recherche Coveo qui se trouve à l'extérieur de SharePoint.

Vous pouvez fournir cette expérience homogène aux utilisateurs finaux qui recherchent du contenu sécurisé, indexé à partir d'applications web SharePoint activées par Claims à l'aide de l'authentification Windows (NTLM) même si votre environnement SharePoint n'utilise pas Windows Identity Foundation (WIF).

Comment ça marche

La solution d'authentification unique de Coveo utilise des redirections de navigateur identiques à ce que Windows Identity Foundation fait pour authentifier les utilisateurs avec des applications web prenant en charge Claims :

  • Un utilisateur accède à l'interface de recherche Coveo .NET avec un navigateur.

  • Si le cookie SharePoint Claims de Coveo n'est pas disponible ou est expiré, l'app web de l'interface de recherche Coveo redirige le navigateur vers une page web spécifique déployée par Coveo, dans le serveur SharePoint.

  • Cette page web SharePoint utilise NTLM ou Kerberos afin qu'elle puisse récupérer les identités Claims complètes de l'utilisateur ou, autrement, invite l'utilisateur à se connecter à SharePoint.

  • La page web SharePoint chiffre, met en boîte et renvoie Claims à l'app web de l'interface de recherche Coveo.

  • L'app web de l'interface de recherche Coveo reçoit le colis Claims de l'utilisateur, crée le cookie, et recharge la page de l'interface de recherche Coveo.

  • L'utilisateur a maintenant les identités Claims complètes pour effectuer ses requêtes.

  • L'aller-retour peut être remarqué ou non, selon votre environnement.

HTTPS Versus HTTP

Vous pouvez configurer l'authentification unique Claims pour les connexions sécurisées (HTTPS) et non sécurisées (HTTP). S'il est possible d'accéder à une page de recherche Coveo ou à une application web SharePoint de l'extérieur d'un pare-feu (Internet), HTTPS est recommandé. Si des serveurs Coveo et SharePoint ne peuvent être accessibles que par des ordinateurs de client exécutés derrière le même pare-feu, HTTP et HTTPS sont tous les deux des bonnes options. Les exemples présentés dans cette rubrique affichent arbitrairement des connexions HTTPS.

Si l'authentification Claims est activée entre un serveur d'interface Coveo et une application web SharePoint, des tickets sont échangés entre les deux serveurs. Un ticket contient, en général, l'identité d'utilisateur, mais ne contient jamais de mots de passe ou d'autres informations délicates. Les tickets sont encodés, compressés et signés afin d'empêcher un pirate potentiel de les modifier et de les utiliser illégalement.

Note : Pour les versions 12.0.614 à 12.0.844 de Coveo .NET Front-End (février à juin 2014) inclusivement, l'authentification unique Claims ne peut être configurée que pour des connexions sécurisées (HTTPS).

Exigences

  • SharePoint 2013/2010 sur place

  • Application web du serveur SharePoint configurée dans Windows Claims (NTLM ou Kerberos)

  • Version 12.0.614+ de Coveo .NET Front-End (février 2014)

Configuration du serveur SharePoint

Note : Si vous avez plus d'un serveur d'interface SharePoint dans votre batterie de serveurs, vous devez effectuer la procédure suivante pour chaque serveur d'interface SharePoint.

  1. À l'aide d'un compte d'administrateur, connectez-vous au système opérationnel de votre serveur d'interface SharePoint.

  2. Si ce n'est pas déjà fait, déployez l'intégration Coveo dans votre application web SharePoint afin de veiller à ce qu'au moins l'option Service Web SharePoint soit installée (voir Installation du service Web Coveo, de la boîte de recherche et de l'interface de recherche dans SharePoint).

  3. Dans le premier serveur d'interface de votre batterie SharePoint, créez deux fichiers vides qui seront remplis avec les clés de signature des communications privées et publiques.

    Note : Les clés privées et publiques sont générées par le serveur d'interface à la première installation. Vous pouvez facilement régénérer de nouvelles clés en supprimant tout simplement les fichiers de clés originaux et en recréant ces deux fichiers vides.

    Dans d'autres serveurs d'interface de votre batterie SharePoint, collez plutôt une copie de ces fichiers remplis (ne copiez pas les fichiers vides) pour veiller à ce que tous les serveurs d'interface utilisent les mêmes fichiers de clés privées et publiques.

    Exemple : Les fichiers pourraient être :

    • C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPublicKey.bin

    • C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPrivateKey.bin

    Important : Protégez votre fichier de clé publique une fois qu'il est créé. Ce fichier ne devrait jamais être partagé ou envoyé par courriel. Toute personne ayant accès à cette clé peut l'utiliser pour créer son propre Claims et être en mesure d'avoir accès à tous les documents SharePoint de CES.

  4. Cliquez, avec le bouton droit de la souris, sur le dossier du fichier de clé, puis utilisez ses Propriétés pour veiller à ce que l'identité du pool d'applications qui exécute l'application web où Coveo est intégré ait des accès en lecture et en écriture aux fichiers de clés.

  5. À l'aide d'un éditeur de texte :

    1. Ouvrez le fichier web.config du site de l'application web SharePoint.

      Exemple : Le fichier est, typiquement :

      C:\inetpub\wwwroot\wss\VirtualDirectories\12345\web.config

    2. Sous coveoEnterpriseSearch, si elle n'est pas déjà présente, ajoutez une section claimsAuthentication, veillez à ce qu'elle contienne les attributs suivants, puis mettez à jour les valeurs des attributs selon votre installation :

      • identityReceiverUrl="https://YourCoveoFrontEnd/ClaimsIdentityReceiver.aspx"

      • identityProviderPrivateKeyPath="PathToPrivateKey"

      • identityProviderPublicKeyPath="PathToPublicKey"

      Exemple : La section claimsAuthentication ressemble à :

      <claimsAuthentication identityReceiverUrl="https://YourCoveoFrontEnd/ClaimsIdentityReceiver.aspx" identityProviderPrivateKeyPath="C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPrivateKey.bin" identityProviderPublicKeyPath="C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPublicKey.bin" />
    3. Si plus d'un serveur d'interface Coveo unique utilise cette application web SharePoint en tant que fournisseur d'identité, ou si le serveur d'interface Coveo unique peut être atteint à partir de plusieurs URL, dans la sous-section <identityReceivers>, configurez chacun pour leur permettre de retrouver le cookie.

      Exemple :

      <claimsAuthentication identityReceiverUrl="https://DefaultCoveoFrontEnd/ClaimsIdentityReceiver.aspx" identityProviderPrivateKeyPath="PathToPrivateKey" identityProviderPublicKeyPath="PathToPublicKey">
        <identityReceivers>
          <add domain="CoveoFrontEnd1" url="https://CoveoFrontEnd1/ClaimsIdentityReceiver.aspx" />
          <add domain="CoveoFrontEnd1DifferentUrl" url="https://CoveoFrontEnd1DifferentUrl/ClaimsIdentityReceiver.aspx" />
          <add domain="CoveoFrontEnd2" url="https://CoveoFrontEnd2/ClaimsIdentityReceiver.aspx" />
        </identityReceivers>
      </claimsAuthentication>

      Notes :

      • Coveo .NET Front-End 12.0.777+ (mai 2014) Soutien de la sous-section <identityProviders>.

      • Vous devriez également laisser une URL de réception de l'identité dans la section <claimsAuthentication>, qui sera utilisée si l'utilisateur provient d'un autre domaine.

    4. Enregistrez le fichier.

  6. À l'aide d'un navigateur, accédez à l'URL sous la forme suivante pour faire l'essai de votre installation :

    https://YourSharePointSite/_layouts/CES/ClaimsIdentityProvider.aspx?debug=1

    Vous devriez voir une page web qui contient diverses informations sur Claims. Vous ne devriez pas voir d'erreurs. Les fichiers de clés privées et publiques devraient maintenant être remplis avec les nouvelles données des clés.

  7. Ici, si vous le souhaitez, vous pouvez retirer l'accès en écriture de l'identité du pool d'applications web vers le chemin d'accès des fichiers de clés.

Configuration du serveur Coveo .NET Front-End

Note : Si vous avez plus d'un serveur d'interface Coveo dans votre déploiement de Coveo, vous devez effectuer la procédure suivante pour chaque serveur d'interface Coveo.

  1. À l'aide d'un compte d'administrateur, connectez-vous au système opérationnel de votre serveur Coveo .NET Front-End.

  2. Copiez le fichier de clé publique créé dans votre serveur d'interface SharePoint et collez-le dans le serveur d'interface Coveo.

    Exemple : Dans le serveur Coveo .NET Front-End, vous pouvez copier le fichier dans :

    C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPublicKey.bin

    Note : Le fichier de clé publique n'a pas à être sécurisé comme le fichier de clé privée. Il peut être partagé de façon sécuritaire dans un partage de fichiers ou envoyé par courriel.

  3. À l'aide d'un éditeur de texte :

    1. Ouvrez le fichier web.config de Coveo .NET Front-End.

      Exemple : Le fichier est, typiquement :

      C:\Program Files\Coveo .NET Front-End 12\Web\Web.config

    2. Sous coveoEnterpriseSearch, si elle n'est pas déjà présente, ajoutez une section claimsAuthentication, veillez à ce qu'elle contienne les attributs suivants, puis mettez à jour les valeurs des attributs selon votre installation :

      • identityProviderUrl="https://YourSharePointSite/_layouts/CES/ClaimsIdentityProvider.aspx"

      • identityValidatorPublicKeyPath="PathToPublicKey"

      Exemple : La section claimsAuthentication ressemble à :

      <claimsAuthentication identityProviderUrl="https://YourSharePointSite/_layouts/CES/ClaimsIdentityProvider.aspx" identityValidatorPublicKeyPath="C:\Program Files\Coveo .NET Front-End 12\Web\ClaimsAuthenticationKeys\ClaimsAuthenticationPublicKey.bin" />
    3. S'il n'est pas déjà présent, comme affiché dans l'extrait de fichier suivant, ajoutez l'espace de nom Coveo.CES.Web.Search.Security.

      <configuration>
        <system.web>
          <pages>
            <namespaces>
              ...
              <add namespace="Coveo.CES.Web.Search.Security" />
              ...
            </namespaces>
          </pages>
        </system.web>
      </configuration>

      Note : CES 7.0.6339– (janvier 2014) Vous avez besoin d'au moins deux mises à jour de CES subséquentes à CES 7.0.6424 (février 2014) ou d'une nouvelle installation de Coveo .NET Front-End pour voir l'espace de nom Coveo.CES.Web.Search.Security.

    4. Enregistrez le fichier.

  4. À l'aide d'un navigateur, accédez à votre interface de recherche Coveo à l'aide du véritable nom d'hôte du serveur, pas localhost.

    Exemple : L'URL de la page de l'interface de recherche Coveo .NET est, habituellement :

    https://YourCoveoFrontEndServer/

    La première fois que vous accédez à l'interface de recherche avec un certain navigateur, un cookie de sécurité est créé (voir Comment ça marche).

    Note : Si votre serveur SharePoint est configuré afin de demander un mot de passe aux utilisateurs, l'utilisateur devra taper son mot de passe SharePoint.

  5. Effectuez la première installation pour configurer Coveo .NET Front-End (voir Première installation de Coveo .NET Front-End).

  6. Dans l'interface de recherche Coveo, vérifiez si vous avez accès à tous vos documents SharePoint sécurisés. Si la portée de l'interface de recherche contient du contenu qui n'appartient pas à SharePoint, vérifiez également si vous avez accès à ce contenu.