OAuth 2.0 Erste Schritte mit der Coupa-API

Revised: 18 August 2022

Einleitung

In diesem Beispiel für den Einstieg werden Coupa und Postman verwendet, um zu zeigen, wie Sie die richtigen Schlüsselwerte und den richtigen Umfang festlegen können, um die Schnittstelle für Ihre REST-BEFEHLE zu entsperren.

Während dieses Beispiel Postman verwendet, können Sie die meisten beliebigen REST-CLIENT-TOOLS verwenden, um ein Zugriffstoken abzurufen und zu aktualisieren, das den Zugriff auf die Coupa-API mit OAuth 2.0 freigibt

So funktioniert es

Melden Sie sich bei Coupa als integrationsfähiger Administrator an, um einen OAuth2/OIDC-Client mit einem Gewährungstyp Client-Anmeldeinformationen zu erstellen. Nach der Konfiguration werden die Werte der Client-ID und des Client-Geheimnisses verwendet, um Zugriff auf die Coupa-API zu erhalten.

  1. Um Ihre Coupa-Testinstanz mit einer neuen Verbindung einzurichten, gehen Sie zu Setup > Oauth2/OpenID Connect Clients. Sie können ‘oauth‘ in das Suchfeld eingeben, um es schnell zu finden.

  2. Klicken Sie auf Erstellen. Für Zuschuss-Typ wählen Sie: Client-Anmeldedaten. Geben Sie einen Namen für den Kunden, die Anmeldung, die Kontaktinformationen und die Kontakt-E-Mail-Adresse an.

  3. Wählen Sie die Bereiche aus, die Sie in dieses API-Setup aufnehmen möchten. Bereiche sind wie eine Reihe von Berechtigungen für den API-Schlüssel.  Um API-Berechtigungen mit OIDC zu implementieren, haben wir mehrere neue Bereiche erstellt, die den Zugriff auf bestimmte Funktionen für die API ermöglichen. Coupa-Umfänge nehmen die Form service.object.right an. Zum Beispiel core.accounting.read oder core.accounting.write. Die Liste der Bereiche und der ihnen zugrunde liegenden Coupa-Berechtigungen finden Sie auf der  Seite Scope-Verwaltung unter/oauth2/scopes. Wenn Sie einen Bereich aufschlüsseln, können Sie die spezifischen API-Berechtigungen sehen, die diesem Bereich zugeordnet sind. 
    Umfänge können unter https://{your_instance_address}/oauth2/scopes überprüft werden.

    Um alle gleichzeitig verfügbaren Bereiche auszuwählen, enthält dieses Dokument die Schritte.

  4. Speichern Sie den Vorgang.  Durch das Speichern des Clients erhalten Sie Werte der Client-ID und des Geheimnisses, die benötigt werden, um Zugang zu den von Ihnen definierten API-Umfängen zu erhalten.  
    Klicken Sie auf Ein-/Ausblenden
    , um das Geheimnis anzuzeigen und zu kopieren

    Hinweis

    Coupa-Instanzadressen haben die Form https://{organization_name} .coupahost.com (für Kundeninstanzen) oder https://{organization_name}.coupacloud.com (für Partner- und Demo-Instanzen).

    OIDConnect Client Coupa context.png

Wir benötigen ein Zugriffstoken, um auf APIs zugreifen zu können, und es dauert nur 24 Stunden. Daher empfiehlt Coupa, das Token alle 20 Stunden zu erneuern (wie ein Aktualisierungstoken). Wenn das vorhandene Token abläuft, muss ein neuer Token-Aufruf erfolgen. Dieser Prozess muss nicht manuell sein, da bei der Integration der POST-AUFRUF als Teil des Skripts alle 20 Stunden ausgeführt werden kann.

Verwenden Sie Postman oder einen ANDEREN REST-Client, um eine OAuth2/OIDC-Clientverbindung für die Verwendung der Coupa-API zu konfigurieren.

  1. Wählen Sie POST.
  2. Legen Sie den URI auf den Instanznamen fest, unter dem Sie den Client oben definiert haben, zum Beispiel: https://{your_instance_address}/oauth2/token
  3. Legen Sie den Header-Schlüsselwert für Content-Type = application/x-www-form-urlencoded fest 

    Setzen Sie mit Postman einen Header-Schlüssel namens Content-Type auf:  application/x-www-form-urlencoded
  4. Stellen Sie im POST Body die folgenden Werte ein:

    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>

      Mit Postman erstellen Sie einen Post-Body mit Werten wie diesem Beispiel.

  5. Klicken Sie auf Senden und die POST-Antwort  hat das access_token, das generiert wurde, um API-Aufrufe innerhalb des definierten Bereichs für die nächsten 24 Stunden zu autorisieren (expires_in 86399 Sekunden). 

    Die Antwort auf den BEITRAG hat das Antwort-Token, das für die weitere Verwendung der API benötigt wird.

  6.  Kopieren Sie den Wert access_token aus dem Antworttext und verwenden Sie ihn als Token-Wert in den Autorisierungsheadern für Ihre Coupa-API-Aufrufe innerhalb des Bereichs, den Sie für diese Clientverbindung definiert haben. 

  7. Erstellen Sie einen neuen Tab, um API-Aufrufe zum ABRUFEN, POSTEN oder SETZEN usw. durchzuführen, und definieren Sie im Autorisierungsteil des Request Builders den ‘TYP’ = OAuth 2.0

  8. Fügen Sie das access_token als Token-Feldwert ein.   

    Verwenden Sie Ihr Token in einem neuen API-Aufruf mit einem Autorisierungs-Header-Token.

  9. Gehen Sie zu Kopfzeilen und geben Sie für die Accept-Taste einen Wert von: application/xml oder application/json ein.
    Sie müssen die anderen Anforderungsparameter entsprechend dem Aufruf und der Schnittstelle, die Sie verwenden möchten, festlegen und definieren. In den abgebildeten Beispielen sehen Sie einen GET-API-Aufruf an die Invoices-API.

    Geben Sie einen Accept-Wert wie: application/xml  oder application/json ein

  10. Klicken Sie auf Senden und wenn die Anfrage ordnungsgemäß gestellt wird, sollten Sie eine Antwort wie die unten gezeigte erhalten.

    Postbote mit einer als XML-Antwort zurückgesandten Rechnung.

Mit diesem access_token, das im Autorisierungsheader festgelegt ist, können Sie GET, PUT oder Post-Anrufe AN die Client-Bereiche tätigen, die Sie für diese Verbindung definiert haben.

Zusätzliche Ressourcen

Hier sind einige andere verwandte Themen, die Sie interessieren könnten:

Hinweis: Einige Inhalte wurden maschinell übersetzt.