Authentification du serveur

Conditions préalables

Ce guide suppose que vous ayez rempli les conditions suivantes :

  • La fonction "Network Features" est activée dans votre application Vonage. Suivez les instructions suivantes guide pour lire des informations détaillées sur la manière de procéder.
  • Vous disposez d'une JWT. Vous pouvez utiliser notre générateur en ligne pour créer un JWT à l'aide de votre clé privée et de l'identifiant de votre application Vonage, qui se trouvent tous deux dans le fichier tableau de bord du clientou suivre les instructions ici pour utiliser une autre méthode.

Référence de l'API Auth

La spécification OpenAPI pour les points de terminaison d'authentification de la fonctionnalité réseau est disponible. ici.

Flux d'authentification

L'appel d'une API se fait en trois étapes :

  1. L'application backend demande un identifiant d'autorisation.
  2. L'application dorsale utilise cet identifiant d'autorisation pour demander un jeton d'accès au CAMARA.
  3. Enfin, l'application dorsale utilise le jeton d'accès pour effectuer l'appel à l'API.
Vonage Communications PlatformBackend ApplicationVonage Communications PlatformBackend Application1. Make an OIDC RequestAuthorization Response2. Request a CAMARA access tokenCAMARA access token response3. Make the API callResult

Faire une demande auprès de l'OIDC

OpenID Connect (OIDC) est une couche d'identité construite au-dessus du protocole OAuth 2.0, qui permet de vérifier l'identité d'un utilisateur à l'aide du protocole JWT de l'argent.

POST
https://api-eu.vonage.com/oauth2/bc-authorize

curl -X POST https://api-eu.vonage.com/oauth2/bc-authorize \
  --header "Authorization: Bearer $JWT" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "login_hint=$PHONE_NUMBER" \
  --data-urlencode "scope=$SCOPE"

En-têtes

En-tête Description
Authorization Doit être réglé sur Bearer ainsi que la JWT généré à l'étape précédente. L'étape JWT doit correspondre à l'application approuvée pour l'utilisation des fonctionnalités du réseau.
Content-Type Doit être réglé sur application/x-www-form-urlencoded.

Paramètres du corps

Paramètres Description
login_hint (Obligatoire) Le numéro de téléphone (y compris l'indicatif du pays) que vous souhaitez vérifier, par exemple +447700900000
scope (Obligatoire) Champ d'application au format chaîne de caractères.

Si vous souhaitez effectuer un appel API vers un numéro de téléphone différent, vous devez générer un nouveau jeton d'accès pour ce numéro.

Réponse

En cas de succès, la réponse aura une valeur 200 OK et les données JSON suivantes dans le corps de la réponse :

{
  "auth_req_id": "$AUTH_REQ_ID",
  "expires_in": 120,
  "interval": 2
}
Paramètres Type Description
auth_req_id chaîne de caractères La chaîne d'identification de l'autorisation dont vous aurez besoin pour l'étape suivante.
expires_in int Nombre de secondes avant l'expiration du code d'authentification
interval int Nombre de secondes avant la prochaine demande

Demander un jeton d'accès au CAMARA

Pour demander un jeton d'accès CAMARA, envoyez une demande

POST
à https://api-eu.vonage.com/oauth2/token

curl -X POST https://api-eu.vonage.com/oauth2/token \
  --header "Authorization: Bearer $JWT" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "auth_req_id=$AUTH_REQ_ID" \
  --data-urlencode "grant_type=urn:openid:params:grant-type:ciba"

En-têtes

En-tête Description
Authorization Doit être réglé sur Bearer ainsi que la JWT généré à l'étape précédente. L'étape JWT doit correspondre à l'application approuvée pour l'utilisation des fonctionnalités du réseau.
Content-Type Doit être réglé sur application/x-www-form-urlencoded.

Paramètres du corps

Paramètres Description
auth_req_id (Obligatoire) Cette information est fournie dans la réponse à l'appel à propositions. étape précédente.
grant_type (Obligatoire) Doit être réglé sur urn:openid:params:grant-type:ciba.

Réponse

En cas de succès, la réponse aura une valeur 200 OK et les données JSON suivantes dans le corps de la réponse :

{
 "access_token": "$ACCESS_TOKEN",
 "token_type": "Bearer",
 "expires_in": 3600
}
Paramètres Type Description
access_token chaîne de caractères Le jeton d'accès qui sera utilisé lors des appels à l'API.
token_type chaîne de caractères Il est toujours fixé à Bearer.
expires_in int Période de temps (en secondes) pendant laquelle le jeton d'accès est valide.

Effectuer l'appel à l'API

Tous les appels de fonctionnalité réseau doivent contenir l'en-tête suivant :

En-tête Description
Authorization Doit être réglé sur Bearer ainsi que la access token généré dans le étape précédente.

Exemple de demande

L'exemple suivant montre comment effectuer un appel API à API d'échange de cartes SIM à l'aide du jeton d'accès :

curl -X POST https://api-eu.vonage.com/camara/sim-swap/v040/check \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data $'{
        "phoneNumber": "'$PHONE_NUMBER'",
        "maxAge": 240
}'

Exemple de réponse

En cas de succès, la réponse aura une valeur 200 OK et les données JSON suivantes dans le corps de la réponse :

{
   "swapped": true
}