API – Recherche de documents avec filtrage par utilisateur (droits d’accès)
-
Bonjour,
Dans le cadre d’un projet d’intégration, nous souhaiterions savoir s’il est possible, via les API de GoFast, d’effectuer une recherche de documents tout en limitant les résultats aux droits d’accès d’un utilisateur spécifique, que l’on passerait en paramètre.
Plus précisément, existe-t-il un mécanisme dans l’API permettant de simuler ou représenter les droits d’un utilisateur donné, faire une recherche full-text en respectant les ACLs de cet utilisateur (groupes, permissions sur les espaces collaboratifs, etc.) ?
Cordialement
-
Bonjour,
Dans le cadre d’un projet d’intégration, nous souhaiterions savoir s’il est possible, via les API de GoFast, d’effectuer une recherche de documents tout en limitant les résultats aux droits d’accès d’un utilisateur spécifique, que l’on passerait en paramètre.
Plus précisément, existe-t-il un mécanisme dans l’API permettant de simuler ou représenter les droits d’un utilisateur donné, faire une recherche full-text en respectant les ACLs de cet utilisateur (groupes, permissions sur les espaces collaboratifs, etc.) ?
Cordialement
Bonjour @pbelledent ,
Merci pour cette demande.
Nous ne pouvons pas proposer une API qui pourrait permettre à des utilisateurs de prendre l'identité d'un autre utilisateur et accéder à des contenus auxquels il ne devrait pas avoir accès.
Cela pourrait créer une faille de sécurité.Cordialement,
-
Bonjour,
Merci pour ces précisions.
Actuellement, l’accès à l’API se fait via un compte administrateur, ce qui ne permet pas de filtrer directement les résultats selon les droits d’un utilisateur spécifique.Nous souhaiterions justement pouvoir effectuer des recherches en passant un utilisateur en paramètre, afin que les résultats retournés tiennent compte de ses droits d’accès.
Est-ce que cette évolution est envisageable dans la roadmap, ou existe-t-il déjà un moyen de reproduire ce comportement via l’API actuelle ?
Merci d’avance pour votre retour,
-
Bonjour @pbelledent
Pourriez-vous s'il vous plait nous en dire un peu plus sur le cas d'usage (couplage avec un intranet, ..) ? Cela permettra potentiellement de vous trouver une solution plus adaptée au besoin.
Si il s'agit comme j'en fais la supposition d'un couplage avec un intranet ou les utilisateurs sont authentifiés pour pouvoir rechercher des documents, il y a effectivement plusieurs solutions à envisager selon le contexte d'utilisation.
A savoir que l'utilisation d'un compte de service étant dans tous les espaces, puis d'un filtrage à posteriori est une solution fonctionnelle mais qui n'est pas recommandée d'un point de vue sécurité, sauf si il n'y a que quelques espaces en particuliers que vous souhaitez cibler dans le cas de ce couplage avec des documents à destination non restreinte.
Dans le cas général ou vous souhaiteriez que tous les espaces de l'utilisateur soit ciblés et donc d'effectuer la recherche API comme si l'utilisateur la faisait directement sur GoFAST, le plus efficace serait alors d'effectuer la requête API avec la session de l'utilisateur.
Pour ce faire nous pourrions ouvrir l'API login/token à votre intranet, il s'agit néanmoins d'une opération donnant autorité à votre intranet à effectuer des actions API à la place des utilisateurs et donc soumis à validation de votre RSSI.
Une autre méthode connue et robuste consiste à utiliser la session GoFAST navigateur de l'utilisateur, et donc d'effectuer les requêtes de recherche en front et non en back. Cela nécessite néanmoins une configuration complémentaire (Autorisation CORS de votre intranet), et que l'utilisateur soit connecté à GoFAST avant d'accéder à l'intranet et donc dépends la aussi du cas d'usage.
En attente de votre retour je vous souhaite une bonne journée !
Cordialement,