Authentification avec JCMS Open API client - Recherche multisites

Dylan Da Conceicao · le 20/05/19 à 11:42

Bonjour,

Nous rencontrons une difficulté lors du développement d'un plugin spécifique utilisant OpenAPI qui a pour objectif : Interroger et récupérer des publications d'une plateforme JCMS (B) depuis une plateforme JCMS (A) via une barre de recherche.

Inspiré de l'exemple fourni chapitre 5.3 dans la documentation OpenAPI ( Services Web RESTful avec JCMS Open API), nous remontons actuellement des éléments distants avec succès en utilisant l'implémentation search() de JcmsApp sans authentification.

Sachant que nos utilisateurs sont communs sur les deux plateformes via une connexion à notre LDAP, la problématique est la suivante :
Comment authentifier l'utilisateur courant de la plateforme JCMS (A) courante lors de la recherche sur la plateforme (B) afin de récupérer uniquement le contenu dont-il est lecteur ?

 

Merci,
Cordialement

5 pts
Benoît Dissert · le 20/05/19 à 12:04

Ce que vous essayez de faire s'appelle de l'authentification proxy.

Pour faire ça, il faut soit avoir un mécanisme d'authentification qui le permet, soit utiliser un mécanisme qui l'émule.

  • Si vous utilisez CAS pour réaliser votre authentification Jalios, alors c'est disponible nativement.
  • Si vous utilisez une authentification Windows (NTML, Kerberos Windows), alors vous avez un mécanisme que Microsoft appelle l'impersonnation, qui est proche de l'authentification proxy : à savoir le système A fait sa requête au système B, authentifié avec un compte administrateur, qui a le droit de faire passer son authentification pour celle de quelqu'un d'autre (et il indique qui dans sa requête) : ça s'apparente au "je m'identifie avec le compte d'untel".
  • Sinon, si vous etes avec Jalios 10, vous pouvez utiliser JWT pour fabriquer à la volée des jetons d'authentification au nom des personnes nécessaires.
  • Si vous n'étes pas dans un de ces cas là, il faut faire un développement spécifique, que je détaillerais si nécessaire.
#1

Bonjour,

N'est il pas envisageable de faire une authentification en tant qu'administrateur et de faire un developpement coté plateforme (B) pour filtrer les résultats de recherche en fonction des droits de l'utilisateur ?

Decorny Sébastien · le 20/05/19 à 13:57
#2

Si bien sûr, c'est possible, mais ça nécessite de toucher au code applicatif dans B (ce qui nuit fortement à la maintenabilité). Les mécanismes que je propose ne nécessitent que des mises en oeuvre sur les couches d'authentification (donc c'est de la tuyauterie).

Benoît Dissert · le 20/05/19 à 14:11
0 pt