In diesem Dokument wird erläutert, wie Fleet Engine den Informationsaustausch zwischen den drei Hauptumgebungen Ihres Fleet Engine-Systems sichert: Ihrem Backend-Server, Ihrem Fleet Engine-Server sowie Ihren Clientanwendungen und Websites.
Fleet Engine verwaltet die Sicherheit auf zwei grundlegende Arten, wobei das Prinzip der geringsten Berechtigung angewendet wird:
Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC): Für Umgebungen mit hohen Berechtigungen wie die Server-zu-Server-Kommunikation. Wird verwendet, wenn Ihr Backend-Server Fahrzeuge und Fahrten erstellt und in der Fleet Engine verwaltet. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen.
JSON-Web-Tokens (JWT): Für Umgebungen mit geringem Vertrauen, z. B. Clientanwendungen, die auf Smartphones und Browsern ausgeführt werden. Wird für Vorgänge mit niedrigeren Berechtigungen verwendet, z. B. für die Aktualisierung des Fahrzeugstandorts in der Fleet Engine.
Die für Umgebungen mit geringem Vertrauen erforderlichen JWTs werden von Ihrem Back-End-Server generiert und ausgegeben, um die geheimen Dienstkontoschlüssel zu schützen und zusätzliche Fleet Engine-spezifische Anforderungen hinzuzufügen. Weitere Informationen finden Sie unter JSON Web Tokens.
Wenn Sie beispielsweise eine Fahrer-App haben, greifen Fahrer über die App auf Daten aus der Fleet Engine zu. Die App wird mit JWTs authentifiziert, die sie von Ihrem Backend-Server erhält. Die enthaltenen JWT-Anforderungen bestimmen zusammen mit der Dienstkontorolle, auf welche Teile Ihres Systems die Treiber-App Zugriff hat und was sie tun kann. Bei diesem Ansatz wird der Zugriff auf die Daten beschränkt, die für die Durchführung der Fahrzuweisungen erforderlich sind.
Fleet Engine nutzt diese Sicherheitsansätze, um Folgendes zu ermöglichen:
Bei der Authentifizierung wird die Identität der Entität bestätigt, die die Anfrage stellt. Fleet Engine verwendet ADC für vertrauenswürdige Umgebungen und JWT für vertrauenswürdige Umgebungen.
Die Autorisierung gibt an, auf welche Ressourcen eine authentifizierte Entität Zugriff hat. Fleet Engine verwendet Dienstkonten mit Google Cloud IAM-Rollen sowie JWT-Anforderungen, um sicherzustellen, dass authentifizierte Entitäten die Berechtigungen zum Ansehen oder Ändern der von ihnen angeforderten Daten haben.
Server- und Clientsicherheit einrichten
Wenn Sie die Sicherheit mit Fleet Engine aktivieren möchten, richten Sie die erforderlichen Konten und Sicherheitsmaßnahmen auf Ihrem Backend-Server sowie in Ihren Clientanwendungen und auf Ihren Websites ein.
Das folgende Diagramm zeigt eine Übersicht über die Schritte zum Einrichten der Sicherheit auf Ihrem Backend-Server und Ihren Clientanwendungen.
Weitere Informationen finden Sie in den folgenden Abschnitten.
Sicherheitseinrichtung des Backend-Servers
Ein Flottenadministrator muss die folgenden Schritte ausführen:
Dienstkonten erstellen und konfigurieren:
Erstellen Sie in der Google Cloud Console Dienstkonten.
Weisen Sie den Dienstkonten bestimmte IAM-Rollen zu.
Konfigurieren Sie Ihren Backend-Server mit den erstellten Dienstkonten. Weitere Informationen finden Sie unter Dienstkontorollen.
Sichere Kommunikation mit der Fleet Engine (ADC) konfigurieren: Konfigurieren Sie Ihr Backend so, dass es mit der Fleet Engine-Instanz über die Standardanmeldedaten der Anwendung mit dem entsprechenden *Admin-Dienstkonto kommuniziert. Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen.
Sichere Kommunikation mit Client-Apps (JWT) konfigurieren: Erstellen Sie einen JSON Web Token-Generator, um JWTs mit geeigneten Ansprüchen für Clientanwendungen und Überwachungswebsites zu erstellen. Weitere Informationen finden Sie unter JSON Web Tokens ausstellen.
Einrichtung der Anwendungssicherheit
Anwendungsentwickler müssen eine Möglichkeit zum Abrufen von JSON-Webtokens einbinden, die von Ihrem Back-End-Server in Ihren Client-Apps oder auf Ihren Websites generiert werden, und diese zum sicheren Austausch mit der Fleet Engine verwenden. Weitere Informationen finden Sie in der Einrichtungsanleitung für die benötigten Anwendungen in der Dokumentation für die Fahreroberfläche oder die Nutzeroberfläche.
Sicherheitsablauf für Server- und Client-Apps
Das folgende Sequenzdiagramm veranschaulicht den Ablauf der Authentifizierung und Autorisierung von Server- und Client-Apps mit der Fleet Engine. Dabei wird ADC mit dem Backend-Server und JWTs mit den Clientanwendungen und Websites verwendet.
Ihr Back-End-Server erstellt Fahrzeuge und Fahrten oder Aufgaben in der Fleet Engine.
Ihr Backend sendet eine Fahrt oder Aufgabe an ein Fahrzeug: Wenn die Fahrer App aktiv ist, ruft sie die Aufgabe ab.
Ihr Backend-Server: Er signiert und gibt ein JWT für das jeweilige Dienstkonto mit der entsprechenden IAM-Rolle für die zugewiesene Aufgabe oder Fahrt aus.
Clientanwendung: Die Clientanwendung verwendet das empfangene JWT, um Fahrzeugstandortaktualisierungen an die Fleet Engine zu senden.