API REST : URL et fonctionnement?

Bonjour,

Contexte : 
  •  PMB 8.0.1.3
  •  PHP 7.4
  • MySQL 8

Nous aimerions pouvoir connecter PMB à une autre source via l'API mise à disposition.

Néanmoins, lorsque je crée un connecteur sortant et que j'accès à l'URL fournit, j'obtiens uniquement la réponse suivante.

{
"serviceType": "JSON-RPC",
"methods": []
}

J'ai pourtant exportés l'ensemble des fonctions (pour tester).

Est-ce normal? une configuration manquante de mon côté? ou un bug?

Si je fais la même chose en SOAP, j'obtiens bien un WSL détaillé avec les endPoints à contacter.

Question bonus :
En terme de droit pour accéder à un service dédié, il faut :
1/ Que le connecteur l'expose?
2/ Que l'utilisateur ait le droit d'accéder à cette fonction via la gestion de droits?

Merci !

TiBz0u

Réponses

  • Bonjour,

    Le tableau methods vide, ça ressemble assez à un problème de configuration.
    Si je me rappelle bien, pour depuis l'extérieur faire des opérations sous Pmb , il faut  une association à  un utilisateur local Pmb.
    C'est la définition de groupe , il y a un groupe anonyme par défaut , pour un connecteur donné on peut l'associer à un utilisateur :
    Le user admin a tous les droits par défaut je pense, mais on peut aussi créer un utilisateur à associer au groupe anonyme avec des droits plus restreints.

    Pour la configuration des droits , des associations groupe/user,... :
    admin.php?categ=external_services

    Pour choisir le connecteur sortant : 
    admin.php?categ=connecteurs&sub=out


  • Bonjour,

    Merci pour votre retour.

    J'ai finalement du analysé le code pour trouver comment me connecter et calculer le hash pour faire un appel via REST API.

    Seul les endPoints autorisés pour l'utilisateur admin sont affichés dans les méthodes accessibles.

    De plus, seuls les endPoints autorisés pour l'utilisateur admin ainsi que l'utilisateur lié au groupe externe répondront.

    Si je désactive la méthode X sur l'admin, malgré que mon utilisateur ait accès à cette méthode, la méthode X ne sera pas accessible. Dès que je la repositionne sur l'admin, cela marche.

    Je n'ai pas su aller au bout de l'analyse mais il y a un problème dans ce calcul des droits et du fichier proxy.

    Au niveau des API, il n'y a aucune API pour récupérer la liste des lecteurs d'un groupe. Est-ce que cela parle à quelqu'un? Ou peut-on encoder une feature request?

    En activant les API roboto, j'accès à la liste des lecteurs mais je n'ai aucune information sur leur groupe.

    Bien à vous,

    TiBz0u
  • Bonjour,

    Intéressant, et plus encore si vous pouviez partager le code :-)

    Sans doute, la condition pour un simple utilisateur d'avoir moins de droits qu'admin est pour la sécurité.

    Sinon pour les lecteurs : les méthodes empr_list et fetch_empr devraient permettre d'accéder aux groupes .
    Voir le code dans pmb/external_services/pmbesEmpr/
Connectez-vous ou Inscrivez-vous pour répondre.