Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Verwendung von Salesforce REST-APIs mit Heroku

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Erläutern der Anwendungsfälle für den Einsatz von Salesforce REST-APIs.
  • Erklären der unterschiedlichen Arten von Authentifizierung.
  • Erläutern, wie Salesforce REST-APIs mit Anwendungen in Heroku verwendet werden.

Salesforce REST-APIs und Heroku

Die Salesforce REST-APIs stellen eine einfache Möglichkeit für die Integration mit Salesforce durch simple HTTP + JSON-Anforderungen dar. Es gibt REST-APIs für den Zugriff auf so ziemlich alles in Salesforce. Ihre benutzerspezifische Anwendung kann also so ziemlich alles mit den Daten, Prozessen und Metadaten in Salesforce 'anstellen'. Die REST-APIs nutzen OAuth für die Authentifizierung, also die Standardmethode für die Umsetzung der REST-Authentifizierung.

Abbildung, die eine Verbindung zwischen den Objekten in Salesforce und Heroku über eine REST-Schnittstelle zeigt

Während REST-APIs direkt genutzt werden können, sind APIs von zahlreichen Wrapper-Bibliotheken umgeben, die ihre Verwendung in Node.js, Python, Ruby, Java usw. erleichtern. Die Wrapper-Bibliotheken übernehmen grundlegende Aufgaben wie die Authentifizierung und die Anforderungs- und Antwortverarbeitung. Sie müssen also nicht manuell HTTP-Anforderungen wie die folgende erstellen (mit Node.js als Beispiel).....

var query = 'SELECT name Account'; var url = 'https://na1.salesforce.com/services/data/v20.0/query/?q=' + encodeURIComponent(query); request.get(url, { 'auth': { 'bearer': 'bearerToken' } }); 

....sondern können die Open Source nforce-Bibliothek für Node.js verwenden und einfach Folgendes angeben:

org.query({ query: 'SELECT name FROM Account' }); 

Im Endeffekt führt die nforce-Bibliothek hinter den Kulissen zwar dieselben Schritte durch, doch sie vereinfacht die API-Nutzung deutlich.

Sie können auf Grundlage der Salesforce REST-APIs Integrationslösungen zwischen Anwendungen und benutzerdefinierte Benutzeroberfläche erstellen. Der größte Unterschied besteht darin, wie die Authentifizierung durchgeführt wird. Bei einer Integration zwischen Anwendungen ist der Anwendung ein einziger Integrationsbenutzer bekannt, und alle Aufrufe an die REST-APIs werden als dieser Benutzer durchgeführt. Bei einer benutzerdefinierten Benutzeroberfläche authentifiziert sich der Benutzer nicht direkt bei der benutzerdefinierten Anwendung. Der Benutzer durchläuft den OAuth-Prozess, um die benutzerdefinierte Anwendung zu autorisieren, um in ihrem Namen API-Aufrufe durchführen zu können. Jede Anforderung an die REST-APIs erfolgt im Namen des benannten Benutzers, der die benutzerdefinierte Benutzeroberfläche verwendet.

Ein Anwendungsfall für eine Integration zwischen Anwendungen besteht darin, die Daten für ein anderes System umzuwandeln, zusammenzuführen und dann abzugleichen oder als Proxy bereitzustellen. Beispiel: Eine kundenorientierte Auftragsverwaltungsanwendung, die in Heroku ausgeführt wird, muss Kundeninformationen aus Salesforce abrufen. Bei dieser Konstellation kann ein einzelner Integrationsbenutzer verwendet werden, um alle notwendigen Informationen aus Salesforce abzurufen.

Gilt die Auftragsverwaltungsanwendung jedoch für das Back-Office, wo sich Benutzer über Salesforce anmelden, ist der Anwendungstyp eine benutzerdefinierte Benutzeroberfläche, die OAuth nutzt, um der Auftragsverwaltungsanwendung zu gestatten, API-Anforderungen im Namen des benannten Benutzers durchzuführen. In diesem Fall ist es hinsichtlich Sicherheit und Auditing wichtig zu wissen, welcher benannte Benutzer jeweils den REST-Aufruf durchführt.

Mit Heroku ist es ein Leichtes, die beiden Anwendungs- und Datennutzungstypen OAuth und Salesforce REST-APIs bereitzustellen.

Sie können direkt in die Dokumente über die Salesforce REST-API eintauchen, um bei Gelegenheit die grundlegenden APIs kennenzulernen. Eine komplette Kurzanleitung mit Bereitstellung in Heroku und einer grundlegenden Anwendung, die die REST-APIs nutzt, finden Sie in Quick Force Node (JavaScript) oder Quick Force Java.

REST-API-Authentisierung mit OAuth

Die Authentisierung ist der Schlüsselaspekt bei der Verwendung von REST-APIs, da jede Anforderung an die APIs ein Authentisierungstoken oder einen Authentisierungsschlüssel enthalten muss. Ganz gleich, ob Sie die Integration zwischen Anwendungen oder eine benutzerdefinierte Benutzeroberfläche verwenden: Ihre Anwendung benötigt eine verbundene Anwendung in Salesforce, damit Salesforce identifizieren kann, welche Anwendung die Anforderungen vorlegt, und Organisationsadministratoren den Zugriff auf die APIs verwalten können.

Einzelbenutzer

Bei einer Integration zwischen Anwendungen muss die Anwendung die Anmeldedaten eines einzigen Integrationsbenutzers kennen. Ist dies der Fall, kann eine REST-API für die Anmeldung mit den Anmeldedaten aufgerufen werden, wodurch das Authentisierungstoken zurückgegeben wird.

Benannte Benutzer

Beim Erstellen einer benutzerdefinierten Benutzeroberfläche empfängt die Anwendung gar nie konkrete Anmeldedaten. Stattdessen übermittelt der OAuth-Prozess einen Code an die Anwendung, um ein Authentisierungstoken zu erhalten. Da der Benutzer den Zugriff der Anwendung auf Salesforce manuell autorisiert, folgt der Ablauf diesen Schritten.

  1. Der Benutzer versucht eine Seite aufzurufen, die die Authentifizierung erfordert.
  2. Die Anwendung in Heroku leitet den Benutzer zur Salesforce OAuth-Seite um.
  3. Wurde die Anwendung zuvor noch nicht autorisiert, erhält der Benutzer eine entsprechende Eingabeaufforderung.

Screenshot des Dialogfelds 'Zugriff gewähren', in dem Sie gefragt werden, ob die Workbench autorisiert ist

  1. Nach der Autorisierung leitet Salesforce den Benutzer mit einem Code wieder zurück zur Anwendung.
  2. Die Anwendung verwendet den Autorisierungscode, um ein Zugriffs- und Aktualisierungstoken abzurufen.
  3. Die Anwendung nutzt das Zugriffstoken, um REST-API-Aufrufe an Salesforce durchzuführen.

In der Regel werden die Zugriffs- und Aktualisierungstoken verschlüsselt und in einer Art Sitzungsstatus oder Datenbank gespeichert, damit der Benutzer den Autorisierungsablauf nicht bei jeder Anforderung durchlaufen muss.

Denken Sie daran: Diese Token sind vertraulich und müssen mit größter Sorgfalt hinsichtlich der Sicherheit behandelt werden!

Ressourcen