Announcement

Collapse
No announcement yet.

API Rest retourne "Unauthorized"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • API Rest retourne "Unauthorized"

    Bonjour à tous !

    Je suis en train de développer une interface permettant aux utilisateurs d'accéder à l'état du SI.
    Pour cela, je dois récupérer les données relevées par Centreon.

    J'utilise donc (ou plutôt, j'essaye d'utiliser) l'API Rest de Centreon (https://documentation.centreon.com/d...est/index.html).


    Or, dès la première requête via mon navigateur (api.domain.tld/centreon/api/index.php?action=authenticate), on me retourne "Unauthorized", alors que j'ai bien les autorisations nécessaires pour effectuer la requête.

    Quelqu'un saurait quel est le problème ?

    Merci d'avance

    ps: Je n'ai pas accès en console au serveur, c'est pour ça que je passe par mon navigateur

  • #2
    Bonjour,

    Sur une installation toute fraîche depuis les dépôts, j'ai exactement le même soucis. Utilisateur autorisé à taper sur l'API, mais "Unauthorized" quand j'essaye d'y accéder :/

    J'ai trouvé cette issue : https://github.com/centreon/centreon/issues/4903 mais même en essayant des headers avec des "-" au lieu des "_" ça ne change rien.

    Une idée ?

    Comment


    • #3
      Je m'auto-réponds (impossible d'éditer mon post ?).

      Finalement, ça fonctionne. J'ai fini par essayer en local sur le serveur (bien via l'API Web, pas en CLI), ça fonctionnait, et depuis j'y arrive aussi depuis mon poste. Est-ce que c'est moi qui avait un compas dans l'oeil durant mes tests ou est-ce que ça a "décoincé" quelque chose côté Centreon, le mystère demeure

      Comment


      • #4
        Hello,

        Pas possible avec un simple GET via ton navigateur, si tu veux faire des tests il te faut utiliser un plugin du genre Restclient ou un soft plus complet comme Postman

        Car il faut au préalable faire un POST avec le header Content-Type:application/x-www-form-urlencoded et un body contenant les credentials du user ayant accès à la RestAPI (dans la conf du user, Reach API Realtime doit être coché)
        Ce premier POST te permettra de récupérer un authToken, exemple avec curl :
        Code:
        curl -s -d "username=<USER>&password=<PASSWORD>" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://api.domain.tld/centreon/api/index.php?action=authenticate
        Tu peux enfin, en réutilisant ton authToken, faire ce type de GET pour par exemple récupérer le statut des hosts :
        Code:
        curl -s -H 'Content-Type:application/json' -H 'centreon-auth-token:<authToken>' "http://api.domain.tld/centreon/api/index.php?action=list&object=centreon_realtime_hosts&fields=name,output"

        Comment

        Working...
        X