Mise en route d'OAuth 2.0 avec l'API Coupa

Revised: 18 August 2022

Introduction

Cet exemple de procédure de mise en route utilise Coupa et Postman pour démontrer comment vous pouvez définir des valeurs de clé et une portée appropriées pour déverrouiller l'interface de vos commandes REST.

Bien que cet exemple utilise Postman, vous pouvez utiliser la plupart des outils clients REST pour obtenir et actualiser un jeton d'accès qui déverrouille l'accès à l'API Coupa à l'aide d'OAuth 2.0

Comment cela fonctionne

Connectez-vous à Coupa en tant qu'administrateur compatible avec les intégrations pour créer un client OAuth2/OIDC avec un type d'autorisation Identifiantsclient . Une fois configurées, les valeurs ID client et Secret client sont utilisées pour accéder à l'API Coupa.

  1. Pour configurer votre instance de test Coupa avec une nouvelle connexion, accédez à Configuration > Clients Oauth2/OpenID Connect. Vous pouvez taper « oauth » dans la zone de recherche pour le trouver rapidement.

  2. Cliquez sur Créer. Pour Type d'octroi, sélectionnez : Identifiants du client. Spécifiez un nom pour le client, la connexion, les coordonnées et l'adresse électronique du contact.

  3. Sélectionnez les étendues que vous souhaitez inclure dans cette configuration d'API. Les périmètres sont comme un ensemble d'autorisations définies sur la clé API.  Afin d'implémenter les autorisations API avec OIDC, nous avons créé plusieurs nouveaux périmètres qui donnent accès à des fonctionnalités spécifiques pour l'API. Les portées Coupa prennent la forme deservice.object.right. Par exemple,core.accounting.read ou core.accounting.write. Vous trouverez la liste des portées et de leurs autorisations Coupa sous-jacentes sur la pageGestiondes portées à l'adresse/oauth2/scopes. Lorsque vous hiérarchisez vers le bas une portée, vous pouvez voir les autorisations API spécifiques associées à cette portée. 
    Les périmètres sont disponibles pour examen le https://{your_instance_address}/oauth2/scopes.

    Pour sélectionner toutes les étendues disponibles à la fois, cette procédure est décrite dans ce document .

  4. Cliquez sur Enregistrer.  L'enregistrement du client vous donne les valeurs de l' Identifiant du client et du Secret, qui sont nécessaires pour accéder aux Portées API que vous avez définies pour lui.  
    Cliquez sur Afficher/Masquer
    pour afficher et copier le secret

    Remarque

    Les adresses des instances Coupa prennent la forme de https://{organization_name}.coupahost.com(pour les instances client) ou https://{organization_name}.coupacloud.com (pour les instances partenaire et de démonstration).

    Coupa context.png du client OIDConnect

Nous avons besoin d'un jeton d'accès pour pouvoir accéder aux API et il ne dure que 24 heures. La recommandation de Coupa est donc de renouveler le jeton toutes les 20 heures (comme un jeton d'actualisation). Si le jeton existant expire, un nouvel appel de jeton doit être effectué. Ce processus n'a pas besoin d'être manuel car l'intégration peut faire exécuter l'appel POST dans le cadre du script toutes les 20 heures.

Utilisez Postman ou un autre client REST pour configurer une connexion client OAuth2/OIDC afin d'utiliser l'API Coupa.

  1. Sélectionnez POST.
  2. Définissez l'URI sur le nom d'instance où vous avez défini le client ci-dessus, par exemple : https://{your_instance_address}/oauth2/token
  3. Définir la valeur de la clé des en-têtes pour Content-Type = application/x-www-form-urlencoded 

    À l'aide de Postman, définissez une clé d'en-tête appelée Content-Type sur : application  /x-www-form-urlencoded
  4. Dans le corps POST, définissez les valeurs suivantes :

    1. client_id =

    2. grant_type = client_credentials

    3. scope =

    4. client_secret =

      À l'aide de Postman, créez un corps POST avec des valeurs comme cet exemple.

  5. Cliquez sur Envoyer et la réponse POST a le jeton d'accès qui a été généré pour autoriser les appels API dans le périmètre défini pour les prochaines 24 heures (expire dans 86399 secondes). 

    La réponse au POST possède le jeton de réponse nécessaire pour une utilisation ultérieure de l'API.

  6.  Copiez votre valeur access_token à partir du corps de réponse et utilisez-la comme valeur Token dans les en-têtes d'autorisation pour vos appels d'API Coupa dans le périmètre que vous avez défini pour cette connexion client. 

  7. Créez un nouvel onglet pour lancer des appels API vers GET, POST, PUT etc. et dans la partie Autorisation du générateur de demandes, définissez le « TYPE » = OAuth 2.0

  8. Collez le jeton d'accès en tant que valeur du champ Token.   

    Utilisez votre jeton dans un nouvel appel API avec un jeton d'en-tête d'autorisation.

  9. Accédez à En-têtes et saisissez la valeur suivante pour la touche Accepter:application/xml ou application/json.
    Vous devrez définir et définir les autres paramètres de demande en fonction de l'appel et de l'interface que vous essayez d'utiliser. Dans les exemples illustrés, vous pouvez voir un appel API GET à l'API des factures.

    Entrez une valeur Accepter comme : application/xml  ou application/json

  10. Cliquez sur Envoyer [Send] et si la demande est faite correctement, vous devriez obtenir une réponse semblable à celle affichée ci-dessous.

    Facturateur avec une facture renvoyée en tant que réponse XML.

Avec ce jeton d'accès défini dans l'en-tête d'autorisation, vous pouvez effectuer des appels GET, PUT ou POST vers les portées du client que vous avez définies pour cette connexion.

Ressources supplémentaires

Voici d'autres sujets connexes qui pourraient vous intéresser :

Veuillez noter que certaines parties de ce contenu peuvent avoir été générées par traduction automatique.