OAuth 2.0 Prise en main de l'API Coupa

Revised: 18 August 2022

Introduction

Cet exemple de procédure de démarrage 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 DU CLIENT 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 ça marche

Se connecter à Coupa en tant qu'administrateur des intégrations a permis de créer un client OAuth2/OIDC avec des informations d'identification client de type subvention. Une fois configurées, les valeurs d'ID client et de 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 des clients Oauth2/OpenID Connect>. Vous pouvez taper « oauth » dans la zone de recherche pour le trouver rapidement.

  2. Cliquez sur Créer. Pour le type d'autorisation, sélectionnez : Références du client. Spécifiez un nom pour le client, la connexion, les informations de contact et l'e-mail de contact.

  3. Sélectionnez les étendues que vous souhaitez inclure dans cette configuration d'API. Les étendues sont comme un ensemble d'autorisations définies sur la clé API.  Afin de mettre en œuvre des autorisations d'API avec OIDC, nous avons créé plusieurs nouvelles étendues qui donnent accès à des fonctionnalités spécifiques pour l'API. Les scopes Coupa prennent la forme de service.object.right. Par exemple, core.accounting.read ou core.accounting.write. Vous trouverez la liste des étendues et leurs autorisations Coupa sous-jacentes en accédant à la page Gestion des étendues à l'adresse/oauth2/scopes. Lorsque vous explorez une portée, vous pouvez voir les autorisations API spécifiques associées à cette portée. 
    Les portées sont disponibles pour examen sur https ://{your_instance_address}/oauth2/scopes.

    Pour sélectionner toutes les étendues disponibles à la fois, ce document fournit les étapes.

  4. Cliquez sur Enregistrer.  L'enregistrement du client vous donne les valeurs de l'identifiant et du secret du client qui sont nécessaires pour avoir accès aux étendues d'API que vous avez définies pour lui.  
    Cliquez sur Afficher/Masquer
    pour afficher et copier le Secret

    Remarque

    Les adresses des instances Coupa se présentent sous la forme https ://{organization_name} .coupahost.com (pour les instances clients) ou https ://{organization_name} .coupacloud.com(pour les instances partenaires et de démonstration).

    OIDConnect Client Coupa context.png

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 avoir l'appel POST dans le cadre du script à exécuter 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 la PUBLICATION.
  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é d'en-tête pour Content-Type = application/x-www-form-urlencoded 

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

    1. client_id = <Your client Identifier value from step 4 above>

    2. grant_type = client_credentials

    3. scope = <Copy/paste all the scopes that you selected in client credentials setup without the comma.>

    4. client_secret = <Copy/paste the Coupa Client Secret value created in Step 4 above>

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

  5. Cliquez sur Envoyer et la réponse POST a le access_token qui a été généré pour autoriser les appels API dans la portée définie pour les 24 prochaines heures (expire_dans 86399 secondes). 

    La réponse au MESSAGE a 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 la réponse et utilisez-la comme valeur de jeton dans les en-têtes d'autorisation pour vos appels d'API Coupa dans la portée que vous avez définie pour cette connexion client. 

  7. Créez un nouvel onglet pour effectuer des appels API pour OBTENIR, PUBLIER ou METTRE, etc. et dans la partie Autorisation du générateur de demandes, définissez le ‘TYPE’ = OAuth 2.0

  8. Collez access_token comme valeur de champ de jeton.   

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

  9. Allez dans En-têtes et pour la touche Accepter, entrez une valeur de : application/xml ou application/json.
    Vous devrez définir et définir les autres paramètres de la demande en fonction de l'appel et de l'interface que vous tentez d'utiliser. Dans les exemples illustrés, vous pouvez voir un appel d'API GET à l'API Invoices.

    Entrez une valeur d'acceptation comme : application/xml  ou application/json

  10. Cliquez sur Envoyer et si la demande est faite correctement, vous devriez obtenir une réponse comme celle indiquée ci-dessous.

    Poste avec une facture retournée sous forme de réponse XML.

Avec cet access_token défini dans l'en-tête Authorization, vous pouvez effectuer des appels GET, PUT ou POST aux étendues client que vous avez définies pour cette connexion.

Ressources supplémentaires

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

Une partie ou la totalité de cette page peut avoir été traduite par machine. Toutes nos excuses pour les inexactitudes.