Mit dem Firebase Admin SDK können Sie Ihre eigenen Server in Firebase Authentication einbinden. Mit dem Dreistrich-Menü Firebase Admin SDK können Sie Nutzer oder Authentifizierungstokens verwalten. Dafür gibt es eine Reihe von Gründen:
Nutzerverwaltung
Es ist nicht immer praktisch, die Firebase-Konsole zum Verwalten Ihrer Firebase-Nutzer zu verwenden. Die Admin User Management API bietet programmatischen Zugriff auf die gleichen Nutzer. Sie können damit sogar Aktionen ausführen, die mit der Firebase-Konsole nicht möglich sind, z. B. das Abrufen der vollständigen Daten eines Nutzers und das Ändern des Passworts, der E-Mail-Adresse oder der Telefonnummer eines Nutzers.
Benutzerdefinierte Authentifizierung
Sie können ein externes Nutzersystem in Firebase integrieren. Möglicherweise haben Sie bereits eine vorhandene Nutzerdatenbank oder möchten einen externen Identitätsanbieter vornehmen, der von Firebase Authentication nicht nativ unterstützt wird.
Dazu können Sie benutzerdefinierte Tokens mit beliebigen Anforderungen erstellen, die den Nutzer identifizieren. Mit diesen benutzerdefinierten Tokens können Sie sich dann in einer Clientanwendung im Firebase Authentication-Dienst anmelden und von der in den Anforderungen des Tokens beschriebenen Identität ausgehen. Diese Identität wird dann für den Zugriff auf andere Firebase-Dienste wie Cloud Storage verwendet.
Identitätsbestätigung
Firebase Authentication wird hauptsächlich verwendet, um Nutzer Ihrer App zu identifizieren, um den Zugriff auf andere Dienste wie Cloud Storage einzuschränken. Sie können den Dienst auch verwenden, um diese Nutzer auf Ihrem eigenen Server zu identifizieren. Auf diese Weise können Sie serverseitige Logik für Nutzer ausführen, die sich mit Firebase Authentication angemeldet haben.
Dazu können Sie ein ID-Token von einer in Firebase Authentication angemeldeten Client-Anwendung abrufen und das Token in eine Anfrage an Ihren Server aufnehmen. Ihr Server prüft dann das ID-Token und extrahiert die Anforderungen, die den Nutzer identifizieren (einschließlich seiner uid
, des Identitätsanbieters, mit dem er sich angemeldet hat usw.). Diese Identitätsdaten können dann von Ihrem Server verwendet werden, um Aktionen im Namen des Nutzers auszuführen.
Firebase Admin SDK bietet Methoden zur Durchführung der oben genannten Authentifizierungsaufgaben, mit denen Sie Ihre Nutzer verwalten, benutzerdefinierte Tokens generieren und ID-Tokens bestätigen können.
Benutzerdefinierte Nutzeranforderungen
In einigen Fällen möchten Sie möglicherweise eine detaillierte Zugriffssteuerung für Nutzer implementieren, die bereits mit einem der unterstützten FirebaseAuthentifizierungsanbieter wie E-Mail/Passwort, Google, Facebook oder Smartphone angemeldet sind. Diese Funktion wird durch eine Kombination aus benutzerdefinierten Nutzeranforderungen und Anwendungssicherheitsregeln bereitgestellt. Beispielsweise kann ein Nutzer, der mit der E-Mail-Adresse und dem Passwortanbieter von Firebase Authentication angemeldet ist, die Zugriffssteuerung mithilfe benutzerdefinierter Anforderungen definieren.
Nutzerverwaltung
Das Firebase Admin SDK bietet eine API zum Verwalten Ihrer Firebase-Nutzer mit erhöhten Berechtigungen. Mit der API für die Admin-Nutzerverwaltung können Sie Nutzer programmatisch abrufen, erstellen, aktualisieren und löschen, ohne vorhandene Anmeldedaten eines Nutzers zu benötigen und ohne sich um die clientseitige Ratenbegrenzung kümmern zu müssen.
Nutzer verwaltenBenutzerdefinierte Tokens erstellen
Das Erstellen von benutzerdefinierten Tokens besteht im Wesentlichen darin, Nutzern die Authentifizierung mit einem externen oder Legacy-Authentifizierungsmechanismus zu ermöglichen. Das könnte eine von Ihnen kontrollierte Person sein, z. B. Ihren LDAP-Server oder den OAuth-Anbieter eines Drittanbieters, der von Firebase nicht nativ unterstützt wird, z. B. Instagram oder LinkedIn.
Das Firebase Admin SDK verfügt über eine integrierte Methode zum Erstellen benutzerdefinierter Tokens. Mithilfe von JWT-Bibliotheken von Drittanbietern können Sie auch benutzerdefinierte Tokens in jeder Sprache programmatisch erstellen.
Ihr Server sollte ein benutzerdefiniertes Token mit einer eindeutigen Kennung (uid
) erstellen und es an eine Clientanwendung übergeben, die es zur Anmeldung bei Firebase verwendet. Unter Benutzerdefinierte Tokens erstellen finden Sie Codebeispiele und weitere Informationen zum Erstellen benutzerdefinierter Tokens.
Benutzerdefinierte Tokens erstellen
ID-Token-Verifizierung
Wenn die Firebase-Clientanwendung mit dem Back-End-Server kommuniziert, müssen Sie den derzeit angemeldeten Nutzer auf Ihrem Server möglicherweise identifizieren, damit Sie die serverseitige Logik für sie ausführen können. Dies ist sicher mithilfe von ID-Tokens möglich, die von Firebase erstellt werden, wenn sich ein Nutzer bei einer Firebase-App anmeldet. ID-Tokens entsprechen der OpenID Connect-Spezifikation und enthalten Daten zur Identifizierung eines Nutzers sowie andere Profil- und Authentifizierungsinformationen. Sie können diese Tokens von Ihren eigenen Back-Ends senden, prüfen und prüfen. Auf diese Weise können Sie den aktuell angemeldeten Nutzer sicher identifizieren und für Ihre eigenen Backend-Ressourcen autorisieren.
Das Firebase Admin SDK hat eine integrierte Methode zum Bestätigen von ID-Tokens. Sie können ID-Tokens auch in jeder Sprache mithilfe von JWT-Bibliotheken von Drittanbietern programmatisch bestätigen. Weitere Informationen und Codebeispiele zum Bestätigungsprozess von ID-Tokens finden Sie unter ID-Tokens bestätigen.
Benutzerdefinierte Nutzeranforderungen
Mit dem Firebase Admin SDK können Sie benutzerdefinierte Attribute für Nutzerkonten festlegen. Mit benutzerdefinierten Nutzeransprüchen können Sie Nutzern verschiedene Zugriffsebenen (Rollen) zuweisen, die dann in den Sicherheitsregeln einer Anwendung erzwungen werden.
Wenn benutzerdefinierte Anforderungen für einen Nutzer über das Firebase Admin SDK geändert wurden, werden sie über die zugehörigen ID-Tokens auf die Client-Seite übertragen. Das ID-Token ist ein vertrauenswürdiger Mechanismus zum Senden dieser benutzerdefinierten Anforderungen. Der authentifizierte Zugriff muss das ID-Token vor der Verarbeitung der zugehörigen Anfrage validieren.
Zugriff mit benutzerdefinierten Anforderungen steuern