Forums » Discussions & Questions »
Erreur lors de l'obtention d'un token
Ajouté par sebastien R il y a presque 8 ans
Bonjour,
J'utilise actuellement XIVO - Version : 2016.04.03 "Five".
Je rencontre un problème lors de l'obtention d'un token avec l'api
Curl
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic c2ViOnNlYjkxNzAw' -d '{
"backend": "string",
"expiration": 0
}' 'https://mon_xivo:9497/0.1/token'
Request URL
https://mon_xivo:9497/0.1/token
Response Body
no content
Response Headers
{
"error": "no response from server"
}
Si je passe en SSH j'ai l'erreur suivante :
curl: (56) Recv failure: Connection reset by peer
et si je regarde dans la console google chrome j'ai l'erreur suivante :
XMLHttpRequest cannot load https://mon_xivo:9497/0.1/token. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
Avez-vous déjà rencontré le problème ?
L'objectif est de mettre en place un CTI avec un logiciel de télésecrétariat
merci par avance de votre aide
Cordialement,
Sébastien
Réponses (21)
RE: Erreur lors de l'obtention d'un token - Ajouté par Julien KLINGENMEYER il y a presque 8 ans
Bonjour Sébastien,
As-tu autorisé l'accès côté XiVO ?
Dans la webi, cela se fait dans Configuration > Accès aux Services Web.
Il faut créer une entrée avec ton IP distante, et dans l'onglet ACL, créer une ligne contenant '#' pour tout autoriser.
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
Bonjour,
L'ip distante je dois la mettre dans " Hôte " ?
merci pour votre réactivité
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
bon maintenant j'ai l'erreur suivante si je test avec la commande Curl
curl -I "https://mon_xivo:9497/0.1/api/api.json"
curl: (60) SSL certificate problem: self signed certificate
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
RE: Erreur lors de l'obtention d'un token - Ajouté par Grégory Esnaud il y a presque 8 ans
Bonjour,
As tu bien lu la doc? (https://documentation.xivo.solutions/en/2016.04.03/xivo/system/xivo-auth/xivo-auth.html#xivo-auth)
Tu semble utiliser un backend 'string'... or cela n'existe pas: https://documentation.xivo.solutions/en/2016.04.03/xivo/system/xivo-auth/stock_plugins.html#auth-backends.
Comme le dit Julien, le mieux est d'utiliser un backend "xivo_service".
- Crée, comme l'a dit Julien, un compte WS (Pas besoin de mettre d'ip distante) sur le XiVO.
- Demande le token (via curl par exemple, directement sur le xivo) (remplacer ton_user et ton_mdp par les bonnes valeurs)
curl -k -X POST -H 'Content-Type: application/json' -u 'ton_user:ton_mdp' "https://localhost:9497/0.1/token" -d '{"backend": "xivo_service", "expiration": 999999999}';echo
- Doit s'afficher le token.
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
j'ai l'impression que j'avance avec la commande suivante j'ai l'impression que cela fonctionne
curl -k -i -X POST -H 'Content-Type: application/json' -u "seb:seb91700" "https://mon_xivo:9497/0.1/token" -d '{"backend": "xivo_user"}'
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 938
Date: Wed, 22 Feb 2017 09:35:57 GMT
Server: xivo
{"data": {"xivo_user_uuid": "950416dd-20c1-4209-b312-383a208efe13", "expires_at": "2017-02-22T12:35:57.476487", "token": "2635d20c-f2ce-45e7-8a31-b2e680101832", "acls": ["confd.users.me.read", "confd.users.me.update", "confd.users.me.funckeys..", "confd.users.me.#.read", "confd.users.me.services..", "confd.users.me.forwards..", "ctid-ng.users.me.#", "ctid-ng.transfers..read", "ctid-ng.transfers..delete", "ctid-ng.transfers..complete.update", "dird.#.me.read", "dird.directories.favorites.#", "dird.directories.lookup..headers.read", "dird.directories.lookup..read", "dird.directories.personal..read", "dird.personal.#", "events.calls.me", "events.transfers.me", "events.chat.message..me", "events.statuses.", "events.switchboards", "events.config.users.me.services..", "events.config.users.me.forwards..", "websocketd"], "issued_at": "2017-02-22T10:35:57.476559", "auth_id": "950416dd-20c1-4209-b312-383a208efe13"}}
par contre si je passe par : http://mon_xivo/api/#!/token/createToken
j'ai toujours l'erreur : XMLHttpRequest cannot load https://mon_xivo:9497/0.1/token. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
Désolé Grégory Esnaud je n'avais pas vu ta réponse
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
Donc directement sur le xivo que ce soit avec un backend xivo_service et xivo_user cela semble fonctionner
il y a un bug sur l'interface web api ?
RE: Erreur lors de l'obtention d'un token - Ajouté par Julien KLINGENMEYER il y a presque 8 ans
Sébastien,
Dans ta requête curl il te manque aussi le paramètre --insecure, vu que tu es en https et que ton certificat est autosigné.
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
je peux modifier la requête dans /api/token ?
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
ai-je la possibilité de retirer le https ?
RE: Erreur lors de l'obtention d'un token - Ajouté par Julien KLINGENMEYER il y a presque 8 ans
Non, xivo-auth n'accepte que le HTTPS: https://documentation.xivo.solutions/en/latest/xivo/contributors/network.html
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a presque 8 ans
oki, je ne comprendre pas pourquoi j'arrive à créer un token avec la requete curl directement en ssh, alors que j'ai une erreur avec la page api........
et vous de votre côté vous n'avez aucun problème avec la page API ?
la requête curl est générée automatiquement sur la page API et je n'ai pas la possibilité de mettre les identifiants -u "id:mdp"
je suis désolé de vous poser autant de questions, je sèche complètement.
Cordialement,
Sébastien
RE: Erreur lors de l'obtention d'un token - Ajouté par Grégory Esnaud il y a plus de 7 ans
En fait c'est assez bien caché:
- Il faut d'abord accepter le certificat du service https://ton_xivo:9497 (mais ça je crois que tu l'as déjà fait)
- Ensuite cliquer sur xivo auth
- utiliser les champs en haut de la page:
The other way you can get a token is via Swagger UI (what else?). Choose the xivo-auth service in the list of REST API. Under tokens, choose POST /tokens.
** In the top-right text box of the page (left to the “Explore” button), fill “token” with the string username:password where those credentials come from the Web Services Access you created earlier.**
Go back to the POST /tokens section and click on the yellow box to the right of the body parameter. This will pre-fill the body parameter.
In the body parameter, set:
backend to xivo-service
expiration to the number of seconds for the token to be valid (e.g. 60 for one hour). After the expiration time, you will need to re-authenticate to get a new token.
Click “Try it out” at the end of the section
In the response, you should see a token attribute.
For more informations about the backends of xivo-auth, see xivo-auth plugins.
@+
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a plus de 7 ans
merci pour votre réponse, j'ai essayé mais en vains......
j'ai l'impression que la requete est rejeté dès lors que je passe pas par le serveur
dans le fichier /var/log/xivo-auth.log
2017-02-23 11:58:06,437 15746 (xivo-auth): (192.168.99.122) GET https://192.168.99.20:9497/0.1/api/api.json 200
2017-02-23 11:58:06,443 15746 (xivo-auth): (192.168.99.122) OPTIONS https://192.168.99.20:9497/0.1/api/api.json 200
2017-02-23 11:58:06,450 15746 (xivo-auth): (192.168.99.122) OPTIONS https://192.168.99.20:9497/0.1/api/api.json 200
2017-02-23 11:58:06,456 15746 (xivo-auth): (192.168.99.122) GET https://192.168.99.20:9497/0.1/api/api.json 200
2017-02-23 11:58:06,468 15746 (xivo-auth): (127.0.0.1) GET https://localhost:9497/0.1/backends 200
2017-02-23 11:58:26,784 15746 (xivo-auth): (192.168.99.122) OPTIONS https://192.168.99.20:9497/0.1/token 200
RE: Erreur lors de l'obtention d'un token - Ajouté par Grégory Esnaud il y a plus de 7 ans
Hello,
Le serveur te répond un 200 OK, cela semble correct.
Il s'agit de la requete pour obtneir un token? Il me semble que tu as réussi pourtant?
{"data": {"xivo_user_uuid": "950416dd-20c1-4209-b312-383a208efe13", "expires_at": "2017-02-22T12:35:57.476487", "token": "2635d20c-f2ce-45e7-8a31-b2e680101832", "acls": ["confd.users.me.read", "confd.users.me.update", "confd.users.me.funckeys..", "confd.users.me.#.read", "confd.users.me.services..", "confd.users.me.forwards..", "ctid-ng.users.me.#", "ctid-ng.transfers..read", "ctid-ng.transfers..delete", "ctid-ng.transfers..complete.update", "dird.#.me.read", "dird.directories.favorites.#", "dird.directories.lookup..headers.read", "dird.directories.lookup..read", "dird.directories.personal..read", "dird.personal.#", "events.calls.me", "events.transfers.me", "events.chat.message..me", "events.statuses.", "events.switchboards", "events.config.users.me.services..", "events.config.users.me.forwards..", "websocketd"], "issued_at": "2017-02-22T10:35:57.476559", "auth_id": "950416dd-20c1-4209-b312-383a208efe13"}}
Quel es ton problème maintenant?
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a plus de 7 ans
Hello,
si je passe par la commande curl en SSH j'arrive à récupérer un token, mais si je passe par l'adresse http://mon_xivo/api/ puis XIVO auth, j'ai une erreur :
Voir PJ ( token:token correspond aux identifiants dans webservices )
Tokenxivo2.PNG (14,7 ko) Tokenxivo2.PNG | |||
Tokenxivo1.PNG (67,6 ko) Tokenxivo1.PNG |
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a plus de 7 ans
Hmm je reste perplexe, je viens d'installer une version Wazo et ça marche du premier coup :( , je remarque que l'adresse en haut est différente
RE: Erreur lors de l'obtention d'un token - Ajouté par Grégory Esnaud il y a plus de 7 ans
Effectivement l'interface swagger ne semble pas vouloir interpréter la réponse du serveur...
Peut-être un bug!
Le contournement est donc de faire un copier coller du curl proposé dans swagger (en prenant soin d'ajouter -k pour faire confiance au certificat).
Cordialement,
RE: Erreur lors de l'obtention d'un token - Ajouté par Grégory Esnaud il y a plus de 7 ans
Pour la comparaison avec Wazo, je ne sais pas, il faudrait voir dans les realease notes s'il n'y a pas eu une correction depuis le fork... sommes nous dans des versions équivalentes?
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a plus de 7 ans
Wazo est en version : 17.03
Mon xivo est en version : 2016.04.03
Je vais essayer Xivo 2017.01 et voir si je rencontre le même problème
RE: Erreur lors de l'obtention d'un token - Ajouté par sebastien R il y a plus de 7 ans
bon même problème avec la version 2017.01......
hmm que faire dans cette situation, contacter directement avencall ?