Zugriff auf Daten über API-Integration
Lernziele
- Beschreiben, wie OAuth 2.0 die API-Integration für verbundene Anwendungen ermöglicht
- Benennen der wichtigsten Anwendungsfälle bei der API-Integration für verbundene Anwendungen
OAuth 2.0-Autorisierungs-Flow für verbundene Anwendungen
Sie können eine verbundene Anwendung verwenden, um im Namen einer externen Anwendung Zugriff auf Salesforce-Daten anzufordern. Damit eine verbundene Anwendung Zugriff anfordern kann, muss sie mithilfe des OAuth 2.0-Protokolls in die Salesforce-API integriert werden. OAuth 2.0 ist ein offenes Protokoll, das die Autorisierung und den sicheren Datenaustausch zwischen Anwendungen über den Austausch von Token ermöglicht. Wenn Entwickler Ihre Anwendung in Salesforce integrieren möchten, verwenden sie OAuth-APIs. Diese OAuth-APIs ermöglichen einem Benutzer, in einer Anwendung zu arbeiten, aber die Daten aus einer anderen Anwendung zu betrachten.
Wenn Sie die mobile Salesforce-Anwendung öffnen, um auf Ihre Salesforce-Daten zuzugreifen, leiten Sie einen OAuth 2.0-Autorisierungs-Flow ein. Bei diesem Flow ist Ihre Salesforce-Organisation der Ressourcenserver und die mobile Salesforce-Anwendung der Client, der Zugriff anfordert. Sie autorisieren die mobile Salesforce-Anwendung, jederzeit über das Internet auf Ihre Salesforce-Daten zuzugreifen und diese zu verwalten.
Der Flow der Ereignisse bei der OAuth-Autorisierung hängt vom Status der Authentifizierung auf dem Gerät ab.
Flow bei der erstmaligen Autorisierung
- Sie öffnen die mobile Salesforce-Anwendung.
- Eine Authentifizierungsaufforderung wird angezeigt.
- Sie geben Ihren Benutzernamen und Ihr Kennwort ein.
- Die mobile Salesforce-Anwendung sendet Ihre Anmeldeinformationen an Salesforce und leitet den OAuth-Autorisierungs-Flow ein.
- Sie genehmigen die Anforderung und gewähren Zugriff auf die mobile Salesforce-Anwendung, wie in der Abbildung oben gezeigt.
- Salesforce sendet an die mobile Anwendung Zugriffs- und Aktualisierungs-Token als Bestätigung einer erfolgreichen Autorisierung.
- Die mobile Salesforce-Anwendung wird gestartet.
Laufende Autorisierung
- Sie öffnen die mobile Salesforce-Anwendung.
- Ist die Sitzung aktiv, wird die mobile Salesforce-Anwendung sofort gestartet. Ist die Sitzung inaktiv, verwendet die mobile Salesforce-Anwendung das Aktualisierungs-Token aus der ersten Autorisierung, um eine aktualisierte Sitzung zu erhalten.
- Die mobile Salesforce-Anwendung wird gestartet.
Integration von Webanwendungen (OAuth 2.0-Webserver-Flow)
Um eine externe Webanwendung mit der Salesforce-API zu integrieren, verwenden Sie den OAuth 2.0-Webserver-Flow. Bei diesem Flow muss der Server, der die Webanwendung hostet, in der Lage sein, die Identität der verbundenen Anwendung zu schützen, die durch die Client-ID und das Client-Geheimnis bestimmt wird.
Angenommen, Sie haben vor Kurzem eine Website entwickelt, die einen sicheren Zugriff auf den Status eines Kundenauftrags ermöglicht. Die Auftragsstatusdaten werden sicher auf Ihrer Salesforce CRM-Plattform gespeichert. Um Helpdesk-Benutzer zu autorisieren, den Auftragsstatus eines Kunden anzuzeigen, entwickeln Sie die Anwendung "Auftragsstatus" und konfigurieren sie als verbundene Anwendung mit dem Webserver-Flow.
- Ein Helpdesk-Benutzer klickt auf die Webanwendung "Auftragsstatus".
- Die verbundene Anwendung leitet den Benutzer an Salesforce weiter, um die Anwendung zu authentifizieren und ihr den Zugriff auf die Auftragsstatusdaten zu gestatten.
- Der Benutzer genehmigt, dass die Anwendung "Auftragsstatus" auf die Daten zugreift.
- Salesforce sendet an die Anwendung "Auftragsstatus" einen Rückruf mit einem Autorisierungscode.
- Die Anwendung "Auftragsstatus" übergibt den Autorisierungscode an den Endpunkt des Salesforce-Tokens und fordert ein Zugriffs-Token an.
- Salesforce bestätigt den Autorisierungscode und sendet ein Zugriffs-Token zurück, das die zugehörigen Berechtigungen in Form von Geltungsbereichen enthält.
- Die Anwendung "Auftragsstatus" sendet eine Anforderung zurück an Salesforce, um auf die Auftragsstatusdaten zuzugreifen. Ihre Anforderung umfasst das Zugriffs-Token mit den zugehörigen Geltungsbereichen.
- Salesforce bestätigt das Zugriffs-Token und die zugehörigen Geltungsbereiche.
- Die Anwendung "Auftragsstatus" kann auf die geschützten Daten zugreifen. Der Auftragsstatus des Kunden wird in der Anwendung angezeigt.
Integration mobiler Anwendungen (OAuth 2.0-Benutzeragenten-Flow)
Für die Verbindung zwischen einer mobilen Anwendung und Salesforce wird hauptsächlich eine verbundene Anwendung verwendet. Wenngleich nicht erforderlich, können Sie mit dem Salesforce Mobile SDK mobile Anwendungen als verbundene Anwendungen erstellen. Diese Anwendungen können auf Salesforce OAuth-Services zugreifen und Salesforce-REST-APIs aufrufen.
Angenommen, Sie nutzen das Salesforce Mobile SDK, um eine mobile Anwendung zu entwickeln, die Kundenkontaktdaten aus Ihrer Salesforce-Organisation abruft. Das Mobile SDK implementiert den OAuth 2.0-Benutzeragenten-Flow für Ihre verbundene Anwendung, integriert die mobile Anwendung in Ihre Salesforce-API und gewährt ihr autorisierten Zugriff auf die festgelegten Daten.
- Der Endbenutzer öffnet die mobile Anwendung.
- Die verbundene Anwendung leitet den Benutzer an Salesforce weiter, um die mobile Anwendung zu authentifizieren und zu autorisieren.
- Der Benutzer genehmigt den Zugriff für diesen Autorisierungs-Flow.
- Die Anwendung empfängt den Rückruf von Salesforce an den Umleitungs-URL, der die Zugriffs- und Aktualisierungs-Token extrahiert.
- Die verbundene Anwendung verwendet das Zugriffstoken, um im Namen des Endbenutzers auf Daten zuzugreifen.
Weitere Informationen zum Salesforce Mobile SDK finden Sie im Trailhead-Modul "Salesforce Mobile SDK – Grundlagen".
Integration zwischen Servern (OAuth 2.0-Flow für JWT Bearer)
In einigen Fällen müssen Sie Server autorisieren, ohne sich jedes Mal interaktiv anzumelden, wenn die Server Informationen austauschen müssen.
Um eine Autorisierung zwischen Servern zu ermöglichen, können Sie den Flow für OAuth 2.0 JWT Bearer (JSON Web Token) verwenden. Dieser Flow erfordert eine vorherige Genehmigung der Client-Anwendung.
- Der Berichtsservice beginnt seinen nächtlichen Batch-Bericht.
- Die verbundene Anwendung sendet das JWT, das den Austausch von Identitäts- und Sicherheitsinformationen zwischen den Sicherheitsdomänen ermöglicht, an den Salesforce-Token-Endpunkt.
- Salesforce bestätigt das JWT auf Grundlage einer Signatur unter Verwendung eines zuvor konfigurierten Zertifikats und zusätzlicher Parameter.
- Vorausgesetzt, dass das JWT gültig ist und die verbundene Anwendung eine vorherige Genehmigung erhalten hat, stellt Salesforce ein Zugriffs-Token aus. Die vorherige Genehmigung erfolgt auf eine dieser Arten.
- Wenn Ihre Richtlinie für verbundene Anwendungen auf "Vom Administrator autorisierte Benutzer sind vorab autorisiert" festgelegt ist, können Sie Profile und Berechtigungssätze verwenden.
- Wenn Ihre Richtlinie für verbundene Anwendungen auf "Alle Benutzer können sich selbst autorisieren" festgelegt ist, können Sie mit der Genehmigung durch den Endbenutzer und Ausstellung eines Aktualisierung-Tokens arbeiten. Der Client benötigt jedoch kein aktuelles oder gespeichertes Aktualisierungs-Token. Der Client muss auch kein Client-Geheimnis an den Token-Endpunkt übergeben.
- Die verbundene Anwendung verwendet das Zugriffs-Token, um auf die geschützten Daten auf dem Salesforce-Server zuzugreifen.
- Der Berichtsservice ruft die autorisierten Daten per Pull in seinen nächtlichen Bericht ab.
IoT-Integration (OAuth 2.0-Geräte-Flow)
Um Geräte mit eingeschränkten Eingabe- oder Anzeigemöglichkeiten, wie z. B. Smart TVs, zu integrieren, können Sie verbundene Anwendungen mit dem OAuth 2.0-Geräte-Flow konfigurieren.
Mit dem Geräte-Flow können Endbenutzer verbundene Anwendungen für den Zugriff auf Salesforce-Daten über einen Webbrowser autorisieren.
Ein Kunde nutzt beispielsweise Ihr Bluetooth-Gerät, um seine Hausbeleuchtung zu steuern, während er abends außer Haus ist. Sie können eine verbundene Anwendung für das Bluetooth-Gerät erstellen, um diesen Flow zu ermöglichen.
- Der Benutzer öffnet die Bluetooth-Anwendung auf seinem Mobilgerät und tippt auf "Lichter einschalten".
- Die verbundene Anwendung sendet eine Anforderung an den Salesforce-Autorisierungsendpunkt.
- Salesforce verifiziert die Anforderung und gibt einen vom Menschen lesbaren Benutzercode, einen Verifizierungs-URL und einen Gerätecode zurück.
- Die Bluetooth-Anwendung zeigt den Gerätecode an und weist den Benutzer an, ihn über den angegebenen Verifizierungs-URL einzugeben. Die Anwendung beginnt auch mit der Abfrage des Salesforce-Token-Endpunkts für die Autorisierung.
- Der Benutzer klickt auf den Link zum Verifizierungs-URL und gibt den Code ein.
- Der Benutzer autorisiert daraufhin die Anwendung, auf ihre geschützten Daten zuzugreifen, in diesem Fall auf den Standort ihres Hauses.
- Salesforce sendet ein Zugriffs- und Aktualisierungs-Token an die verbundene Anwendung.
- Die Bluetooth-Anwendung kann auf den Wohnort des Benutzers zugreifen und die Lichter einschalten.
Für die IoT-Integration können Sie auch den Datenbestands-Token-Flow verwenden. Dieser Flow verwendet ein JWT, das Benutzer und Gerät miteinander verbindet, um das Gerät zu autorisieren. Weitere Informationen zu diesem Flow finden Sie im Salesforce-Hilfeartikel: OAuth 2.0 – Datenbestands-Token-Flow.
Andere OAuth-API-Integrationsabläufe
Zusätzlich zu den oben genannten Beispielen können Sie auch die folgenden OAuth 2.0-Abläufe mit verbundenen Anwendungen verwenden.
Ablauf für Aktualisierungs-Token
Im Rahmen des Webserver- und Benutzeragentenablaufs kann eine verbundene Anwendung mit einem Aktualisierungs-Token ein neues Zugriffs-Token anfordern, nachdem das aktuelle Zugriffs-Token abgelaufen ist. Dieser Ablauf ist besonders hilfreich, wenn Sie keine Benutzereingriffe wünschen, nachdem eine Anwendung autorisiert wurde.
Flow für Client-Anmeldeinformationen
Wenn Sie Informationen direkt zwischen zwei Anwendungen freigeben möchten, ohne dass eine Benutzerinteraktion erforderlich ist, können Sie den OAuth 2.0-Flow für Client-Anmeldeinformationen verwenden. Bei diesem Flow tauscht die Client-Anwendung ihre in der verbundenen Anwendung definierten Client-Anmeldeinformationen – ihren Verbraucherschlüssel und ihr Verbrauchergeheimnis – gegen ein Zugriffstoken aus. Bei diesem Flow ist keine explizite Benutzerinteraktion erforderlich. Sie müssen jedoch einen Integrationsbenutzer angeben, um die Integration auszuführen. Sie können diesen Flow als eine sicherere Alternative zum OAuth 2.0-Flow für Benutzername und Kennwort verwenden.
Ablauf für SAML-Bearer-Assertionen
Eine verbundene Anwendung kann eine SAML-Assertion verwenden, um ein OAuth-Zugriffs-Token zum Aufrufen von Salesforce-APIs anzufordern.
Ablauf für SAML-Assertionen
Dieser Ablauf stellt eine Alternative für Organisationen dar, die derzeit SAML für den Zugriff auf Salesforce verwenden und auf die Web-Service-API auf die gleiche Weise zugreifen möchten.
Nächste Schritte
Nachdem Sie mehr darüber erfahren haben, wann Sie verbundene Anwendungen für den Zugriff auf Daten in Ihrer Salesforce-Organisation verwenden sollten, lassen Sie uns nun mit der Verwendung von verbundenen Anwendungen für Single Sign-On fortfahren.
Ressourcen
- Trailhead-Modul: Salesforce Identity – Grundlagen
- Salesforce-Hilfe: OAuth-Autorisierungs-Flows
- Salesforce-Hilfe: Autorisieren von Anwendungen mit OAuth-Flows