OAuth 2.0 für Callouts

Revised: 11 August 2021

1. Coupa konfigurieren

  1. Administratoren können Call Outs über Setup > Integrationen > Call Outs erstellen, anzeigen und bearbeitenaber sie können nur neue Endpunkte erstellen, wenn sie einen neuen Call Out erstellen. Wenn Sie einen neuen Call Out erstellen, kann Ihr Integrationsadministrator einen zuvor definierten Endpunkt verwenden oder den Link Neu erstellen verwenden, um einen neuen Endpunkt zu definieren.

  2. OAuth-Einstellungen sind in der Endpunktkonfiguration verfügbar. Stellen Sie im Abschnitt Endpunktdetails sicher, dass Sie HTTP verwenden und den Hostnamen, die Token-URL, die Client-ID und das Clientgeheimnis angeben.

  3. Link zur ausführlichen Dokumentation: https://success.coupa.com/Support/Releases/26/New_Features/BSM_Platform/Coupa_Platform/Call_Outs_Support_OAuth_2.0

2. Kundensystem/Middleware-Konfiguration

  1. Client-ID und Secret müssen als Auth-String konfiguriert werden:
    auth_string = Base64.urlsafe_encode64 ("#{client_id}:#{client_secret}")

  2. Länge des Tokens sollte kein Problem sein (Wir haben bis zu 1258 Zeichen erfolgreich getestet)

  3. Die Antwort, die das Zugriffstoken enthält, muss im folgenden Format sein:

    {
    
    		"access_token": "",
    
    		"token_type": "Inhaber",
    
    		"expires_in": 86399
    
    }
  4. Die Antwort, die das Zugriffstoken enthält, muss im folgenden Format sein:

    response = connection.post do |anfordern|
    
    			request.headers[:content_type] = (content_type || 'Anwendung/x-www-form-urlencoded')
    
    			request.headers[:cache_control] = 'kein-Cache'
    
    			request.headers[:Autorisierung] = "Basis #{auth_string}"
    
    			request.headers[:accept] = 'application/json'
    
    			if content_type == 'application/json'
    
    				request_body = { "grant_type" => "client_credentials" }
    
    				request_body.merge!(scope: scope) wenn scope.present?
    
    				request.body = request_body.to_json
    
    			else
    
    				request.body = "grant_type=client_credentials"
    
    				request.body +="&scope="+scope wenn scope.present?
    
    			ende

3. Umgang mit Fehlern

  1. Nur fehlgeschlagene Transaktionen erscheinen im Abschnitt Callout-Fehler,<customer_instance>/call_outs/<call out id>

  2. Fehler und was sie bedeuten

    • { "statusCode": 401, "message": "Nicht autorisiert. Der Zugriffstoken fehlt oder ist ungültig." }: Problem mit der Antwort, die das Token enthält, überprüfen Sie das Format
    • { "statusCode": 404, "message": "Ressource nicht gefunden" }: Problem bei der Buchung der Nutzlast in das externe System
    • {HTTP-Ausnahme aufgetreten:Service::Oauth::AuthenticationManager::AuthenticationError}: Konfigurationsproblem innerhalb der Middleware, Zugriff auf Token nicht möglich.
  3. Wenn Sie keine Herausforderungen in Test-/Sandbox-Instanzen haben, sondern in der Produktion oder umgekehrt, fordern Sie den Kunden auf, das Passwort neu zu generieren.

4. Muster-Nutzlast (POSTBOTE)

  1. Downloaden Sie die Postman-Nutzlastdatei.

  2. Verwenden Sie die Importoption in Postman, um die Sammlung zu importieren:
    postman-import.png

  3. Fügen Sie die URL, den Benutzernamen und das Kennwort hinzu:
    postman-02.png

Parts or all of this page might have been machine-translated. We apologize for any inaccuracies.